為每個請求選擇 Auto、TokenLab Verified 或 Official,並預先顯示價格。查看最新動態

2026 年最佳 AI 圖像生成 API:選型框架

·2026年9月19日·約 8 分鐘閱讀·更新 2026年9月26日·2027 次瀏覽
#圖像生成#AI 圖像 API#模型#多模態
2026 年最佳 AI 圖像生成 API:選型框架

每張圖像的標題價格並不是一個好的首要篩選指標。費率名義上相同的兩個模型,在是否支援參考圖像、是否支援遮罩編輯、輸出尺寸如何選擇,以及按每次請求還是按 token 計費等方面可能截然不同。請先依能力篩選候選模型,再依您自己的 prompt 比較每個獲採納輸出的成本。

本文為圖像生成 API 的選型框架。文中僅涵蓋圖像生成,不包含影片。若工作流程兩者皆需,同樣適用相應的非同步與計費機制,但影片不在本文討論範圍之內。

步驟 1:比對支援的操作

第一輪篩選取決於操作類型。僅能從文字生成的端點無法進行遮罩編輯,而專為圖像修復(inpainting)打造的模型也不是通用的文字生圖主力。

在 TokenLab 上,生成與編輯通常是不同的端點:

需求 端點 說明
文字生成圖像 POST /v1/images/generations 請求僅從 prompt 開始
圖像生成圖像 / 參考圖驅動生成 POST /v1/images/generations 接受 operation: "image-to-image" 與參考圖 URL 的模型
遮罩或 multipart 編輯 POST /v1/images/edits 記載有編輯流程說明的模型
現有圖像的變化版本 POST /v1/images/variations 適用於已採用 variations 格式的整合
任務狀態 GET /v1/tasks/{id} 當建立請求的回應傳回 task_id、status: "pending" 或 poll_url 時

請參閱圖像生成指南以獲取決策對照表,並參閱 Create Image 與 Edit Image 參考文件以了解請求欄位。

有一項路由規則導致了不成比例的高失敗率:Nano Banana 的參考圖像請求(nano-banana-2、nano-banana-pro)應發送至 /v1/images/generations 並附帶 operation: "image-to-image" 與 image_urls,而非發送至 /v1/images/edits。相反地,gpt-image-2 的編輯則屬於 /v1/images/edits,它支援 multipart image 上傳、JSON image_url / image_urls,以及最多可包含 16 張來源圖像的 images[] 參考。

來自目前 TokenLab 目錄的實用分組:

  • 同時支援生成與編輯: flux-2-klein-4b、flux-2-klein-9b、flux-2-pro、flux-2-flex、flux-2-max、flux-kontext-pro、flux-kontext-max、gemini-3-pro-image、gemini-3.1-flash-image、nano-banana-2、nano-banana-2-lite、nano-banana-pro、gpt-image-2、gpt-image-2.5-flare、gpt-image-2.5-sunburst、grok-imagine-image、grok-imagine-image-quality、grok-imagine-image-2.0、qwen-image-2.0、qwen-image-2.0-pro、qwen-image-3.0、seedream-4.0、seedream-4.5、seedream-5.0、seedream-5.0-lite、seedream-5.0-pro、vidu-image-lite、vidu-image-pro。
  • 僅限文字生成圖像: flux-1-dev、flux-pro-1.1、flux-pro-1.1-ultra、sd3.5-medium、sd3.5-large、sd3.5-large-turbo、sd3.5-flash、stable-image-core、stable-image-ultra、z-image、z-image-turbo、kling-image、kling-omni-image、hy-image-lite。
  • 專用編輯工具: stability-inpaint、stability-control-sketch、stability-control-structure、stability-style-guide、stability-upscale-fast、stability-upscale-conservative、image-upscaler、image-background-remover、flux-pro-1.0-fill、qwen-image-edit。

請逐一驗證各個模型支援的操作,而非按系列概括。GET /v1/models?recommended_for=image 會傳回目前的推薦組合,而 Get a Model 參考文件說明了 supported_operations 欄位,該欄位會指出特定 ID 接受的操作。

步驟 2:確認模型如何接收參考圖像

參考圖像的處理往往是整合出錯的地方。這些欄位名稱不可混用:

  • image_url — 單張參考圖像。
  • image_urls — JSON 格式中的一張或多張參考圖像。
  • reference_image_urls — 額外參考圖像,適用於將主要輸入與參考圖像分開的模型。
  • image — multipart 檔案上傳,用於私有或具標頭保護的來源圖像。
  • 帶有 image_url 或 file_id 的 images[] — 編輯流程格式;/v1/images/generations 不予接受。

來自 API 參考文件、在架構設計時值得注意的限制:

  • 遠端參考圖必須是公開的 http/https URL,不得含有內嵌憑證或片段(fragment),且不得解析為 localhost、私有或保留 IP 範圍。每次重新導向都會重新檢查。
  • 透過 URL 擷取的圖像:每張圖像上限 50 MiB,每次請求總計上限 200 MiB(包含遮罩),擷取逾時為 30 秒,最多支援 3 次重新導向。擷取的內容必須是真實的 PNG、JPEG 或 WebP 格式。
  • 來源圖像數量上限各不相同:gpt-image-2 最多接受 16 張;文件記載的 3 張輸入圖像上限特別適用於 grok-imagine-image 與 grok-imagine-image-quality(超過 3 張將失敗並傳回 400 too_many_images),且未記載適用於 grok-imagine-image-2.0。
  • mask 必須是小於 50 MiB 且與來源圖像尺寸相同的 PNG 格式。

如果您的來源圖像是私有的,請規劃使用 multipart 上傳或 /v1/files 參考,而非傳遞具時效性的簽名 URL(signed URL)。在處理開始前就已過期的簽名 URL 會被視為無效輸入遭拒,而非生成失敗。

步驟 3:比較輸出控制項,而非僅看模型名稱

同一層級的兩個模型可能會提供截然不同的尺寸與品質控制項。在圍繞其構建 UI 之前,請先確認選擇器的約定(contract)。

控制項 檢查重點
size OpenAI 風格的模型系列接受 auto 或 WIDTHxHEIGHT。對於 gpt-image-2,尺寸必須為 16 的倍數,最長邊最多 3840px,長寬比最多 3:1,且總像素介於 655,360 到 8,294,400 之間
aspect_ratio Google 圖像系列與 Grok Imagine 使用 1:1、16:9、9:16、3:2、2:3 及類似數值
resolution gemini-3.1-flash-image、gemini-3-pro-image、nano-banana-2 與 nano-banana-pro 支援 1k、2k、4k,而 nano-banana-2-lite 僅支援 1k。Grok Imagine 支援 1k 與 2k
quality GPT Image 模型使用 auto、low、medium、high。其他模型可能會使用不同的數值
n 每次請求的圖像數量,視模型而定
response_format url 或 b64_json。非同步任務無論請求的格式為何,一律傳回 URL
background、output_format、output_compression 記載於 gpt-image-2 的文件;不支援 transparent
async 支援 gpt-image-2 及官方 FLUX/BFL 圖像模型

傳送未記載的欄位並非無害。舉例來說,input_fidelity 並非 gpt-image-2 目前支援欄位的一部分,會傳回 400 unsupported_parameter。其他模型上未受支援的欄位也會以類似方式失敗。完整欄位清單請參見 Create Image 參考文件。

步驟 4:在進行任何比較之前先確認計費單位

當把按 token 計費的模型與按圖像計費的模型當作相同單位來比較時,成本比較就會出現偏差。

  • gpt-image-2 是以 token 計費。TokenLab 遵循原廠對文字輸入、圖像輸入、回報的快取輸入以及圖像輸出 token 的用量明細進行計費;它並非以固定單張圖像計費的模型。
  • 大多數其他圖像模型則是按每次請求、每張圖像或模型頁面上顯示的其他單位計費。

實際的影響是:對於 gpt-image-2,相同的 prompt 在相同的名義設定下,成本可能會因解析度、品質及 prompt 本身而有所不同,因為輸出的 token 數量會發生變化。在確定路由規則之前請務必進行實際測量。

請在請求時讀取目前的計費單位與價格,而非寫死一張對照表:

  • 計費與定價說明了費用、估算與非同步預留額度(async reservation)的運作方式。
  • Get a Model 會傳回單一模型的 tokenlab.pricing 與 tokenlab.pricing_unit。
  • List Models 會傳回包含 tokenlab.pricing、tokenlab.capabilities 和 tokenlab.deliveryAvailability 的型錄清單。
  • 模型頁面顯示了相同的資訊供您瀏覽。

TokenLab 價格欄位中的破折號(-)表示該模型目前沒有可用的 TokenLab Verified 方案,並不代表該模型免費。具備 Official 供應的模型仍可透過 Official 或 Auto 傳輸選項(delivery option)存取。

步驟 5:決定採用同步還是基於任務的流程

高解析度圖像請求可能需要接近一分鐘或更長時間。對於同步呼叫,請將 HTTP 用戶端逾時設定為至少 120 秒,或者使用任務流程。

  • 在呼叫 gpt-image-2 或官方 FLUX/BFL 圖像模型時傳送 async: true,以取得 task_id 和 poll_url,而非直接取得已完成的圖像。
  • 不要將某個模型硬編碼為永遠同步或永遠非同步。請檢查建立請求的回應:如果其中包含 status: "pending"、task_id 或 poll_url,請跟隨傳回的 poll_url 進行輪詢。
  • 狀態包括 pending、processing、completed 及 failed。即使任務失敗,成功的狀態讀取仍會傳回 HTTP 200;請依據 status 欄位判斷,而非 HTTP 狀態碼。
  • 非同步圖像結果以 URL 形式傳回。如果您需要原始的 b64_json,請使用同步請求。
  • 每隔數秒輪詢一次,並在到達終態時停止。產生的圖像 HTTP(S) 結果 URL 可能會作為媒體複本保留 30 天;請檢查 media_retention.items 以確認每個項目的狀態與 expires_at。

詳細資訊請參閱非同步作業與輪詢指南以及 Get Image Status 參考文件。

重試不僅有延遲風險,還伴隨著計費風險。在逾時後重試的建立請求可能會產生第二個任務並被收取第二次費用。請儲存 request_id、task_id 及任何 billing_transaction_id,並在重試之前先檢查是否已建立了任務。

步驟 6:使用您自己的 prompt 集進行評估

本文未包含任何廠商中立的品質排名,亦不應採信任何行銷文案的宣傳。請根據您自己工作負載上的實際衡量來驗證選擇:

  1. 組合一組能反映您實際上線環境分佈的固定 prompt 集——即您實際收到的主題、風格及指示形式。一般的展示用 prompt 無法為您區分模型的優劣。
  2. 在相同的設定下,針對您的候選模型執行同一組 prompt 集,並記錄每次請求的生成時間(包含重試時間)。
  3. 使用固定的評分準則(rubric),透過自動化或人工評審團進行輸出評分,而非僅憑肉眼隨意瀏覽範例。
  4. 計算每個獲採納圖像的成本,而非每個生成圖像的成本。一個需要嘗試兩次才能產出可用成果的較便宜模型,實際上並不便宜。
  5. 如果您的產品對延遲敏感,請記錄百分位數(percentiles)而非平均值,因為長尾延遲才是使用者會在意的。
  6. 當您更換供應商或調整目標解析度時,請重新執行比較,因為計費單位與模型行為都可能發生變化。

每個獲採納圖像的成本,是唯一能解答對您的工作負載而言、較昂貴的模型是否物有所值的數據指標。

範例請求

以下是生成呼叫格式的說明範例,並非實測結果。範例中使用了一個提供 aspect_ratio 與 resolution 的模型。

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
    "aspect_ratio": "16:9",
    "resolution": "2k"
  }'

如果該回應傳回 status: "pending",請對傳回的 poll_url 進行輪詢,而不是將其視為失敗。

在不同的 API 格式之間,模型存取並非完全一致。TokenLab 支援 Chat Completions、Responses、Anthropic Messages 以及 Gemini 請求格式,而特定模型可能僅支援其中部分格式。在重複使用現有用戶端之前,請先檢查模型上的 tokenlab.accepted_request_formats——請參閱 API 格式。

本文的限制

  • 本文未包含任何圖像模型的獨立品質基準測試、延遲測量或輸送量數據。廠商宣傳中關於人體解剖結構、文字渲染或逼真寫實度的定位說法,均不作為事實重述。
  • 未列出具體價格。圖像模型的計費單位各不相同且會變動;請從模型頁面或透過 GET /v1/models/{model} 讀取最新數值。
  • 模型可用性因傳輸選項與工作區(workspace)而異。tokenlab.deliveryAvailability 描述了設定的支援情形;它並不保證即時可用性,即時可用性是在執行請求時進行檢查。
  • 適用公開區域限制。

相關閱讀

來源

相關模型

最近發布的模型

用本文涉及的模型開始構建

比較價格、測試路由,把文章研究直接變成可執行的 API 呼叫。