Claude Opus 5.5 已在 SeedRouter 上線
SeedRouter Docs

GPT Image 2

透過單一非同步影像端點生成影像、編輯參考影像並套用遮罩。

View Markdown

GPT Image 2 接受文字提示詞和選用的參考影像。提交一次,保留回傳的任務 ID,然後查詢該任務以取得生成完成的影像。它透過兩個通道提供,各有自己的模型 ID,參數完全相同。

模型 ID

模型 ID通道計費方式
gpt-image-2Standard每交付一張圖收一個固定價,與尺寸和品質無關
gpt-image-2-officialOfficial按每次渲染回報的 token 計費(文字輸入與影像輸出)

兩個 ID 接受相同的參數、支援所有模式,差別只在計費。目前價格見模型頁。下面的範例使用 gpt-image-2;想按 token 計費就換成 gpt-image-2-official。

快速範例

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "An amber glass bottle on a cream background, studio lighting",
    "size": "1024x1024",
    "quality": "low"
  }'

端點

POST https://api.seedrouter.ai/v1/images/generations
標頭值
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

生成、參考影像編輯和遮罩編輯都使用同一個端點。回應中包含的是任務 ID,而不是生成完成的影像。請把 API 金鑰保存在伺服器端程式碼中。

參數

名稱型別必填預設值說明
modelstring是—gpt-image-2 或 gpt-image-2-official
promptstring是—不可為空;最多 32,000 個字元。
imagesobject[]否—1–16 個形如 {"image_url":"https://..."} 的物件;傳入 images 即進入編輯模式。
maskobject否—{"image_url":"https://..."};必須與 images 一起使用。
sizestring否autoauto 或 WIDTHxHEIGHT,需符合下述規則。
qualityenum否autoauto、low、medium、high。
backgroundenum否autoauto、opaque、transparent。
output_formatenum否pngpng、jpeg。
output_compressioninteger否JPEG 為 1000–100;僅在 jpeg 下傳入。0 是合法值。
ninteger否11–10 張影像。
moderationenum否autoauto、low。
userstring否—選用的應用程式終端使用者識別碼。請勿填入個人資訊。

尺寸規則

常用取值為 1024x1024、1536x1024 和 1024x1536。自訂尺寸必須同時滿足以下全部規則:

  • 寬和高都是 16 的倍數。
  • 任一邊長都不超過 3840 像素。
  • 長寬比介於 1:3 到 3:1 之間。
  • 總面積介於 655,360 到 8,294,400 像素之間(含端點)。

auto 表示由模型決定輸出尺寸。不要把 16:9 這類長寬比作為 size 傳入。

Playground 提供 Auto、比例和自訂三種控制項。比例模式把長寬比與 1K、2K 或 4K 的像素預算預設組合起來,最終只提交換算後的 size。這些只是介面預設,不是獨立的 API 參數:不要傳 resolution 或 aspect_ratio。例如 16:9 + 4K 提交 size: "3840x2160";9:16 + 4K 提交 "2160x3840";1:1 + 2K 提交 "2048x2048"。取整和邊長上限可能使所選等級的實際像素數變少。提交前會顯示確切的尺寸。

OpenAI 將高於 2560×1440 的解析度描述為實驗性質。在上述限制範圍內它們會被接受;但更高的解析度並不保證更好的細節。

品質等級

草稿階段請使用 low,先比較結果再決定是否提高等級。auto 由模型自行選擇,它並不保證特定的等級或費用。

透明背景

GPT Image 2 的透明背景處於預覽階段。需要透明背景時,請設定 background: "transparent" 並使用 PNG。JPEG 不支援透明。壓縮僅對 JPEG 生效。

user 可用於 API 整合,但不會在 Playground 中顯示,也不會自動填入。

選用的純量設定(n、size、quality、background、output_format、output_compression、moderation)接受 null 表示省略。未知欄位會被拒絕。GPT Image 2 不支援設定 input_fidelity;參考影像輸入一律使用高保真度。style 和 response_format 屬於其他影像模型,此處不接受。

模式

沒有獨立的模式參數,也沒有另一個編輯端點需要選擇。

操作參數
文字生成影像prompt
參考影像編輯prompt + images
遮罩編輯prompt + images + mask

編輯參考影像

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Make the bottle blue. Preserve the composition and lighting.",
    "images": [{"image_url": "https://example.com/reference.png"}],
    "mask": {"image_url": "https://example.com/mask.png"},
    "output_format": "jpeg",
    "output_compression": 90
  }'

請把範例中的兩個 URL 換成你自己、可公開存取的影像。若不需要指定編輯區域,省略 mask 即為參考影像編輯。

媒體輸入

本 API 只接受 URL 參考。不接受 OpenAI Files ID、base64 data URL 和 multipart 上傳。Playground 會先把所選檔案上傳到儲存空間,再提交其 URL。

參考影像必須是可公開存取的 HTTP(S) URL,指向 PNG、JPEG 或 WebP 檔案,單一檔案小於 50 MB。遮罩必須是小於 4 MB 的 PNG,尺寸與第一張參考影像相同;其透明區域標記要編輯的部分。遮罩只是對模型的引導,並不保證像素級精確的邊界。傳入多張參考影像時,遮罩作用於第一張。URL 媒體在處理過程中才會驗證;無效或無法存取的媒體會導致任務失敗。

Playground 會上傳所選檔案並提交其 URL。API 請求使用 JSON 形式的 URL 物件:不要傳送檔案位元組、base64、data: URL、blob: URL 或 multipart 表單資料。

計費維度

目前費率請查看模型定價區段。gpt-image-2(Standard)每交付一張圖收一個固定價,與品質、尺寸和提示詞無關。gpt-image-2-official(Official)的最終費用取決於輸入和輸出的用量:品質、輸出尺寸、參考圖、提示詞長度和出圖數量都會影響它。

Playground 的預估以實測樣本和目前費率為基礎,不構成保證報價。最終扣款請在帳號的用量記錄中查看。失敗的任務不計費。

輸出結構

提交後會回傳一個任務參考:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "processing",
  "created_at": 1789970508
}

輪詢任務

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

請以較為節制的間隔輪詢,例如每三秒一次,直到 status 變為 completed 或 failed。輪詢過程中發生網路逾時,並不代表生成失敗:請保留任務 ID 並繼續查詢。不要為了查看進度而再建立一個任務。

完整輪詢範例

請在上方的 Python 提交範例之後執行這段程式碼。它使用回傳的 task_id,最長等待十分鐘。達到這個本地期限只會停止輪詢;請保留 ID 並繼續查詢同一個任務。

import time

print(f"Task ID: {task_id}")
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        for image in task["output"]["data"]:
            print(image["url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(3)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

已完成的任務

已完成的任務會回傳託管的影像 URL 和用量:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "completed",
  "created_at": 1789970508,
  "finished_at": 1789970538,
  "output": {
    "created": 1789970532,
    "data": [{"url": "https://static.seedrouter.ai/media/tasks/task_example/0.png"}],
    "usage": {
      "input_tokens": 29,
      "output_tokens": 196,
      "total_tokens": 225
    }
  }
}
欄位含義
id請保留該 ID 供後續查詢使用。
statusprocessing、completed 或 failed。
created_at、finished_at以秒為單位的 Unix 時間戳記;處理過程中完成時間為空或為零。
output.data[].url生成的影像 URL,任務完成後可用。
output.size實際輸出尺寸,在有回報時提供。
output.quality實際品質等級,在有回報時提供。
output.background實際背景,在有回報時提供。
output.output_format實際影像格式,在有回報時提供。
output.usage在可取得時回報的 token 用量。明細物件中可能包含文字和影像的 token 數。
error任務失敗時的結構化錯誤。

本 API 採用非同步任務交付方式。它不是同步 Images SDK 的替代品;不支援 stream 和 partial_images。

錯誤

在任務建立之前就被拒絕的請求,會回傳 HTTP 錯誤狀態碼和一個 error 物件。受理之後才失敗的任務,查詢時會回傳 HTTP 200,並帶有 status: "failed" 和一個 error 物件。

錯誤碼、HTTP 狀態碼和重試建議請參見共用錯誤目錄。所有模型 API 使用同一套錯誤封裝結構。

{
  "id": "task_...",
  "status": "failed",
  "error": {
    "code": 60002,
    "message": "Generation could not be completed. Please try again."
  }
}

如果提交本身逾時,請先檢查你的任務歷史再重新提交:第一次請求有可能已經被受理。

實用建議

  • 在提示詞中描述材質、構圖和光線。
  • 進行編輯時,既要說明要改什麼,也要說明哪些應保持不變。
  • 只需改動選定區域時,請使用遮罩。
  • 需要長期保存時,請把回傳的影像儲存到你自己的儲存空間中。

相關內容