Claude Opus 5.5 が SeedRouter で利用できます
SeedRouter Docs

GPT Image 2.5

単一の非同期画像エンドポイントで、GPT Image 2.5 Flare または Sunburst を使って画像を生成・編集します。品質は max まで 6 段階です。

View Markdown

GPT Image 2.5 はテキストプロンプトと、任意で参照画像を受け付けます。一度送信したら、返されたタスク ID を保持し、そのタスクを照会して完成した画像を取得します。同じパラメータを受け付ける 2 つのモデルで提供されます。日常的な作業には Flare、編集の精度が最も重要なときには Sunburst を使います。

モデル ID

モデル IDティアチャネル
gpt-image-2.5-flareFlare:ほとんどの用途で最初に選ぶべきモデルStandard
gpt-image-2.5-sunburstSunburst:最も高性能で、編集をより精密に制御できるが、速度は遅いStandard
gpt-image-2.5-flare-officialFlareOfficial
gpt-image-2.5-sunburst-officialSunburstOfficial

4 つの ID はいずれも同じパラメータを受け付けます。チャネルによって課金方式が異なります。現在の価格はモデルページを参照してください。

クイックサンプル

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "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はい—上記 4 つのモデル ID のいずれか。
promptstringはい—空文字は不可。最大 32,000 文字。
imagesobject[]いいえ—{"image_url":"https://..."} 形式のオブジェクトを 1〜16 個。images を渡すと編集モードになります。
maskobjectいいえ—{"image_url":"https://..."}。images と併用が必須です。
sizestringいいえautoauto または WIDTHxHEIGHT。下記の規則に従います。
qualityenumいいえautoauto、low、medium、high、xhigh、max。
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 のみを送信します。これらは UI 上のプリセットであり、独立した API パラメータではありません。resolution や aspect_ratio を送信しないでください。例えば 16:9 + 4K は size: "3840x2160"、9:16 + 4K は "2160x3840"、1:1 + 2K は "2048x2048" を送信します。丸め処理と辺の上限により、選択した段階より実際のピクセル数が少なくなることがあります。正確なサイズは送信前に表示されます。

OpenAI は 2560×1440 を超える解像度を実験的なものと位置づけています。上記の制限内であれば受け付けられますが、解像度が高いほどディテールが良くなるとは限りません。

品質の段階

xhigh と max は GPT Image 2.5 で追加された段階で、GPT Image 2 は high までです。上位の段階ほどレンダリングに時間がかかり、トークン課金の ID では出力トークンの消費も増えます。1024x1024 で計測したところ、1 回のレンダリングで報告された出力トークン数は low、medium、high、xhigh、max でそれぞれ 196、439、1,756、3,122、7,024 でした。これらは観測されたサンプルであり、保証値ではありません。使用量はサイズや内容にも左右されます。

下書きには low を使い、結果を比較してから上位の段階を選んでください。auto はモデルに選択を任せるもので、特定の段階やコストを保証するものではありません。

透過背景

GPT Image 2.5 は透過に対応しています。透過背景にするには background: "transparent" を指定し、PNG を使用してください。JPEG は透過に対応していません。圧縮が適用されるのは JPEG のみです。

user は API 連携向けに利用できますが、Playground では表示も自動入力もされません。

任意のスカラー設定(n、size、quality、background、output_format、output_compression、moderation)は、省略を表す null を受け付けます。未知のフィールドは拒否されます。input_fidelity は GPT Image 2.5 のパラメータではありません。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.5-flare",
    "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
  }'

例の 2 つの URL は、ご自身のアクセス可能な画像に置き換えてください。編集範囲を指定しない参照画像編集では mask を省略します。

メディア入力

この API は URL 参照のみを受け付けます。OpenAI Files の ID、base64 の data URL、multipart アップロードは受け付けません。Playground は選択されたファイルをストレージにアップロードしてから、その URL を送信します。

参照画像は、1 ファイル 50 MB 未満の PNG・JPEG・WebP を指す公開 HTTP(S) URL である必要があります。マスクは 4 MB 未満の PNG で、最初の参照画像と同じサイズである必要があります。その透明部分が編集対象を示します。マスクはモデルへの指示であり、ピクセル単位で正確な境界を保証するものではありません。参照画像が複数ある場合、マスクは最初の画像に適用されます。URL のメディアは処理中に検証されるため、無効またはアクセスできないメディアはタスクの失敗につながることがあります。

Playground は選択されたファイルをアップロードし、その URL を送信します。API リクエストでは JSON の URL オブジェクトを使用します。ファイルのバイト列、base64、data: URL、blob: URL、multipart フォームデータは送信しないでください。

課金に影響する要素

現在のレートはモデルの料金セクションで確認してください。Standard の ID は、品質・サイズ・プロンプトにかかわらず、納品した画像 1 枚ごとの固定料金です。Official の ID では、最終的な費用は入力と出力の使用量で決まり、品質・出力サイズ・参照画像・プロンプトの長さ・画像の枚数のいずれもが影響します。

Playground の見積もりは実測サンプルと現在のレートに基づくもので、確定金額ではありません。最終的な課金額はアカウントの使用履歴で確認してください。失敗したタスクは課金されません。

出力スキーマ

送信するとタスクの参照が返ります:

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

タスクをポーリングする

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

status が completed または failed になるまで、3 秒ごとなど控えめな間隔でポーリングしてください。ポーリング中のネットワークタイムアウトは生成の失敗を意味しません。タスク ID を保持して確認を再開してください。進捗確認のために別のタスクを作成しないでください。

ポーリングの完全な例

上記の Python 送信例のあとに実行してください。返された task_id を使い、最大 10 分間待機します。このローカルの期限に達してもポーリングが止まるだけです。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.5-flare",
  "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 タイムスタンプ。処理中は完了時刻は未設定または 0 です。
output.data[].url生成された画像の URL。完了時に利用できます。
output.size報告される場合の実際の出力サイズ。
output.quality報告される場合の実際の品質段階。
output.background報告される場合の実際の背景。
output.output_format報告される場合の実際の画像フォーマット。
output.usage利用可能な場合に報告されるトークン使用量。詳細オブジェクトにはテキストと画像のトークン数が含まれることがあります。
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."
  }
}

送信自体がタイムアウトした場合は、再送信の前にタスク履歴を確認してください。最初のリクエストが受理されている可能性があります。

ヒント

  • プロンプトでは素材・構図・照明を具体的に記述してください。
  • 編集では、変更する点と変更しない点の両方を指定してください。
  • 選択した範囲だけを変更したい場合はマスクを使用してください。
  • 長期保存が必要な場合は、返された画像をご自身のストレージに保存してください。

関連情報