API上級者向け更新日

画像生成 API

画像 API は OpenAI Images プロトコルと互換です。以下は厳選・確認済みの 16 モデルです。すべて generations で text-to-image を利用でき、/edits は明記されたモデルだけで利用できます。 GPT Image 2・2.5・2.6 の静止画と Image 2.6 の GIF の使い方は、下記の各節を参照してください。

利用できるエンドポイントは 2 つあります:

  • /v1/images/generations - 画像生成。一部のモデルはこのエンドポイントで参照画像も受け付けます
  • /v1/images/edits - 編集に対応するモデルでの画像編集。OpenAI ネイティブの edits と互換です
<!-- featured-image-models:start -->
モデル対応エンドポイント保守的な制限解像度
gpt-image-2/generations、/edits参照画像編集に対応1K / 2K / 4K
gpt-image-2.5-flare/generations、/edits有効な参照画像による画像間生成と編集1K / 2K / 4K
gpt-image-2.5-sunburst/generations、/edits有効な参照画像による画像間生成と編集1K / 2K / 4K
gemini-3.1-flash-image-preview/generations、/edits有効な参照画像は最大 4 枚1K / 2K / 4K
gemini-2.5-flash-image/generations、/edits有効な参照画像は最大 4 枚1K のみ
gemini-3-pro-image-preview/generations、/edits有効な参照画像は最大 4 枚1K / 2K / 4K
grok-imagine-1.0/generations生成のみ。参照画像対応は未公開公開 tier なし
seedream-5-0-flash/generations参照画像最大 8 枚。generations のみ1K / 1.5K / 2K
seedream-5-0-pro/generations参照画像最大 8 枚。generations のみ1K / 1.5K / 2K
seedream-4-5/generations参照画像最大 8 枚。generations のみ2K / 4K
seedream-4-0/generations参照画像最大 8 枚。generations のみ1K / 2K / 4K
doubao-seedream-5-0-lite/generations参照画像対応は有効な対応生成リクエストに依存公開 tier なし
flux-2-pro/generations参照画像対応は有効な対応生成リクエストに依存公開 tier なし
flux-3-image/generations参照画像は最大 8 枚。generations のみ768sq / 1K / 1.5K / 2K / 4K
flux-3-image-klein/generations参照画像は最大 8 枚。generations のみ768sq / 1K / 1.5K / 2K / 4K
midjourney/generationsプロンプトのみ。参照画像は非対応公開 tier なし
<!-- featured-image-models:end -->

GPT Image 2・2.5・2.6 の静止画

3 つのバージョンはすべて 1K・2K・4K の静止画に対応します。テキストから生成するには POST /v1/images/generations を使います。参照画像を編集するには POST /v1/images/edits を使い、image_urls に公開 HTTPS URL または data:image/...;base64,... を指定します。Image 2.6 では最大 8 枚の参照画像を指定できます。Image 2.6 の 2K・4K 静止画に使う参照画像は PNG、JPEG、WebP に対応します。

解像度は image_size で選択します。Image 2 の縦横比は size に 16:9 などを指定します。Image 2.5 と 2.6 では aspect_ratio を使えます。Image 2.6 の静止画は output_format: "png" と n: 1 を指定します。

バージョンモデル ID静止画の料金(人民元 / 枚)
GPT Image 2gpt-image-2参考料金は 1K が ¥0.0833、2K が ¥0.147、4K が ¥0.2156 です。実際の使用量で精算されます。
GPT Image 2.5gpt-image-2.5-flare, gpt-image-2.5-sunburst参考料金は 1K が ¥0.0833、2K が ¥0.294、4K が ¥0.392 です。参照画像の追加料金はありません。
GPT Image 2.6gpt-image-2.6-flare, gpt-image-2.6-sunburst生成成功 1 枚につき 1K は ¥0.0833、2K は ¥0.294、4K は ¥0.392 です。

GPT Image 2 のテキストからの画像生成(同期)

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "an orange cat sitting on a windowsill watching the sunset, watercolor style"
  }'

GPT Image 2.5 の text-to-image(2K)

curl -X POST "https://api.icodeeasy.cc/v1/images/generations?sync=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "prompt": "宇宙飛行士のヘルメットをかぶったオレンジ色の猫、映画のような照明",
    "aspect_ratio": "16:9",
    "image_size": "2K"
  }'

GPT Image 2.5 の image-to-image(参照画像編集)

curl -X POST "https://api.icodeeasy.cc/v1/images/edits?sync=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-sunburst",
    "prompt": "人物のポーズと服装を保ったまま、背景を夕日のビーチに変更",
    "aspect_ratio": "3:2",
    "image_size": "1K",
    "image_urls": ["https://example.com/photo.png"]
  }'

GPT Image 2.6 の参照画像編集(4K)

この例は Sunburst を使用します。Flare を使う場合は model に gpt-image-2.6-flare を指定します。例の URL は参照画像の URL に置き換えてください。

curl -X POST 'https://api.icodeeasy.cc/v1/images/edits?async=1' \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.6-sunburst",
    "prompt": "背景を淡い青の壁に変更してください。参照画像のカップと構図は維持してください。",
    "output_format": "png",
    "aspect_ratio": "16:9",
    "image_size": "4K",
    "n": 1,
    "image_urls": [
      "https://example.com/reference.png"
    ]
  }'

GPT Image 2.6 の GIF 生成

gpt-image-2.6-flare と gpt-image-2.6-sunburst は POST /v1/images/generations で GIF を生成できます。output_format: "gif"、size: "auto"、n: 1 を指定すると、サイズとフレーム設定が自動で決まり、GIF が 1 件生成されます。

テキストのみから生成する場合は image_urls を省略します。参照画像を使う場合は、公開 HTTPS URL または data:image/...;base64,... 形式で最大 8 枚を指定できます。

次の例は Flare を使用します。例の URL を参照画像の URL に置き換えてください。Sunburst を使う場合は model に gpt-image-2.6-sunburst を指定します。

curl -X POST 'https://api.icodeeasy.cc/v1/images/generations?async=1' \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.6-flare",
    "prompt": "参照画像の提灯をゆっくり揺らしてください。元の構図を保ち、自然にループするようにしてください。",
    "output_format": "gif",
    "size": "auto",
    "n": 1,
    "image_urls": [
      "https://example.com/reference.png"
    ]
  }'

非同期リクエストは task_id を返します。GET /v1/images/tasks/{task_id} で状態を確認し、完了後に result_url から GIF をダウンロードします。

  • テキストからの GIF 生成の標準料金は 1 件あたり ¥0.0833 です。Flare で予備サービスが使われた場合は 1 件あたり ¥0.30 です。
  • 参照画像を使う GIF 生成は実際の使用量に応じて課金されます。最終料金は利用明細で確認できます。

FLUX 2 Pro / Max / Flex

解像度別参考価格(CNY / 枚)。 実際の生成使用量で精算し、最終金額は請求明細に表示されます: 料金は出力サイズと参照画像によって変動します。

Model1MP2MP3MP4MP
flux-2-pro¥0.2352¥0.3528¥0.4704¥0.588
flux-2-max¥0.5488¥0.784¥1.0192¥1.2544
flux-2-flex¥0.392¥0.784¥1.176¥1.568

Seedream シリーズ

新規 4 モデルは基本生成と参照画像編集に対応し、参照画像は最大 8 枚です。size / aspect_ratio に比率、image_size に下表の解像度、image_input に参照画像を指定します。1 タスク 1 枚で、複数枚は個別タスクです。5 Flash/Pro の比率:1:1、4:3、3:4、16:9、9:16、3:2、2:3、2:1、1:2、21:9。4.5/4.0 は 9:21 も対応。4.0 のプロンプトは最大 1000 文字。レイヤーや透明背景などの高度な機能は未対応。旧 Lite は 2K ¥0.30 / 3K ¥0.45 のままです。

参考価格です。成功したタスクの実際の生成料金で精算し、最終料金は利用明細で確認できます。 Seedream 5 Pro のみ:参照画像は 2 枚目から 1 枚につき目安 ¥0.01911。実際のタスク料金を優先します。

Modelimage_size基本参考価格(CNY / 枚)
seedream-5-0-flash1K / 1.5K / 2K¥0.134358
seedream-5-0-pro1K / 1.5K → 2K¥0.28665 → ¥0.5733
seedream-4-52K / 4K¥0.2548
seedream-4-01K / 2K / 4K¥0.1911

FLUX 3 Image と Klein

flux-3-image と flux-3-image-klein は image_size に 768sq / 1K / 1.5K / 2K / 4K、aspect_ratio に 1:1 / 9:16 / 16:9 / 2:3 / 3:2 / 4:5 / 5:4 を明示します。auto やピクセル寸法を送らないでください。旧 FLUX 2 の辺長 2048 ピクセル制限は適用されません。参照画像は image_input(URL または base64 data URL)で最大 8 枚。領域指定編集には対応しません。1 タスクにつき 1 枚を生成し、描画ページの複数枚生成は個別タスクに分割します。Image は seed 非対応、Klein は 0–4294967295 の seed に対応します。両モデルとも prompt_upsampling、style、negative_prompt は非対応です。

参考価格です。成功したタスクの実際の生成料金で精算し、最終料金は利用明細で確認できます。

モデル7681K1.5K2K4K
flux-3-image¥0.4018¥0.4704¥0.686¥0.98¥5.9486
flux-3-image-klein¥0.0784¥0.0882¥0.1078¥0.1372¥0.3528
{
  "model": "flux-3-image",
  "prompt": "A watercolor landscape",
  "aspect_ratio": "16:9",
  "image_size": "4K",
  "image_input": []
}

エンドポイントと認証

POST https://api.icodeeasy.cc/v1/images/generations
POST https://api.icodeeasy.cc/v1/images/edits

主 Base URL は https://api.icodeeasy.cc です。https://jp.icodeeasy.cc と https://sg.icodeeasy.cc はバックアップ / fallback ドメインで、切り替える場合もパスは同じです。

リクエストヘッダー:

  • Authorization: Bearer <your API Key>(必須、sk_ で始まります)
  • Content-Type: JSON リクエストでは application/json、ファイルアップロードでは multipart/form-data

/v1 プレフィックスなしの POST /images/generations と POST /images/edits も受け付けられ、同じように動作します。


2 種類のリクエスト形式

API は 2 種類のリクエスト本文形式に対応しています:

  1. JSON (Content-Type: application/json): 参照画像を URL または base64 data URL として image_urls に入れます。最も一般的な形式です。
  2. multipart/form-data: 参照画像を image[] ファイルとしてアップロードし、他のパラメータをフォームフィールドに入れます。OpenAI ネイティブの edits と同じ使い方で、ローカルファイルのアップロードに向いています。

リクエストパラメータ

以下は静止画用のパラメータです。GIF には GPT Image 2.6 の GIF 生成の節に記載されたパラメータを使用してください。

  • model(必須): 上表の 16 個の厳選モデル ID のいずれかを指定します。 GPT Image 2.6 の静止画の節に記載されたモデル ID も使用できます。
  • prompt(必須): 英語または中国語の画像説明。上流がコンテンツ安全性レビューを行い、拒否された内容は課金されません。
  • n(既定 1): 画像枚数。課金は画像枚数で加算されます。 GPT Image 2 を実際のタスク総費用で精算する場合、枚数を再度掛けません。
  • size(既定 1:1): 出力のアスペクト比。下記を参照してください。auto は 1:1 として扱われ、1536x1024 のようなピクセル指定も受け付けます。
  • resolution(既定 1k): GPT Image 2 / 2.5 / 2.6 は 1k / 2k / 4k、Gemini 2.5 は 1k のみ、表の Gemini 3.x は 1k / 2k / 4k に対応します。
  • quality: GPT Image 2 は low / medium / high / auto に対応しますが、品質別料金はありません。GPT Image 2.5 は枚数と解像度別の課金で、独立した品質設定はありません。旧リクエストのこのフィールドは受け付けますが、生成パラメータと料金には影響しません。
  • image_urls / image_input(任意、JSON): image-to-image 用の参照画像。最大 4 枚(FLUX 3 と GPT Image 2.6 は 8 枚)。公開 https://... URL または data:image/...;base64,... を指定でき、混在も可能です。この 2 つのフィールドはエイリアスです。
  • image[](任意、multipart): image-to-image 用の参照画像ファイル。複数ファイルに対応し、image_urls のファイルアップロード版と同等です。

参照画像の注意: URL は https:// が必須です(http は拒否されます)。base64 は有効な data:image/*;base64, 値である必要があります。


対応比率と解像度

対応する size 比率: 1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 2:1 / 1:2 / 21:9 / 9:21 / auto。

GPT Image 2.5 の aspect_ratio:1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 21:9。

gemini-2.5-flash-image は 1k のみです。表の Gemini 3.x は 1k / 2k / 4k に対応します。gpt-image-2 は size で出力比率またはピクセル寸法を指定し、1K / 2K / 4K の解像度別参考価格を提供します。


同期 / 非同期モード

既定の同期モード: 画像生成が完了するまでリクエストを待機し、OpenAI 互換の data[].url を返します。

非同期モード: URL に ?async=1 を追加します(true と yes も受け付けます)。API はすぐに task_id を返し、結果はポーリングで取得します。長い接続を保持したくない場合、進捗処理が必要な場合、バッチ送信する場合に使います。

既定の同期?async=1 非同期
Return timingWaits tens of seconds until image is readyReturns immediately (< 1 second)
Status code200202
Response body{"created":...,"data":[{"url":"..."}],"id":"..."}{"status":"pending","task_id":"..."}
How to get imageReturned in one responsePoll GET /v1/images/tasks/{task_id}

リクエスト例

Gemini 3.x で比率と 2K を指定

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview",
    "prompt": "a corgi astronaut on the moon, cinematic",
    "aspect_ratio": "16:9",
    "image_size": "2K"
  }'

Gemini text-to-image

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview",
    "prompt": "a futuristic coffee shop at sunrise, realistic photography",
    "aspect_ratio": "16:9",
    "image_size": "1K"
  }'

画像 URL を使った image-to-image(JSON)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "make this person 70 years old",
    "size": "1536x1024",
    "image_urls": ["https://example.com/photo.png"]
  }'

ローカルファイルをアップロードする image-to-image(multipart)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -F "model=gpt-image-2" \
  -F "prompt=make this person 70 years old" \
  -F "size=1536x1024" \
  -F "image[]=@/path/to/photo.png"

複数参照を使った image-to-image(URL + base64 混在)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "merge these two photos into a poster",
    "size": "4:3",
    "image_urls": [
      "https://example.com/photo-a.jpg",
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
    ]
  }'

非同期送信 + ポーリング

# 1) Submit and get task_id immediately
curl -X POST "https://api.icodeeasy.cc/v1/images/edits?async=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "make this person 70 years old",
    "image_urls": ["https://example.com/photo.png"]
  }'
# -> {"status":"pending","task_id":"d142c93a-..."}

# 2) Poll until completed
curl "https://api.icodeeasy.cc/v1/images/tasks/d142c93a-..." \
  -H "Authorization: Bearer sk_xxxxxxxx"
# -> {"status":"completed","result_url":"https://...png","cost":0.2,...}

レスポンス構造

Sync success (HTTP 200, OpenAI Images compatible):

{
  "id": "3e0c77bb-9cbd-4c44-9549-bff1b4060623",
  "created": 1781599773,
  "data": [
    {
      "url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/3e0c77bb-...-1.png"
    }
  ]
}

Async submit (HTTP 202):

{ "status": "pending", "task_id": "d142c93a-de26-40c9-be62-0de840d10960" }

Async task query (GET /v1/images/tasks/{task_id}):

{
  "task_id": "d142c93a-de26-40c9-be62-0de840d10960",
  "status": "completed",
  "model": "gpt-image-2",
  "cost": 0.2,
  "result_url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/d142c93a-...-1.png"
}
  • status: pending / completed / failed
  • data[].url / result_url: image URL, usable directly in <img src>
  • id / task_id: task ID for support troubleshooting

API は常に URL を返し、response_format: b64_json には対応していません。バイト列が必要な場合は自分で画像をダウンロードしてください。


画像 URL の挙動

data[].url looks like https://api.icodeeasy.cc/v1/images/files/gpt-image-2/YYYYMMDD/<id>-<seq>.png:

  • 直接開く: GET は 302 を返し、実際の画像 URL にリダイレクトします
  • 強制ダウンロード: ?download=1 を追加します
  • 長期利用: リンクは長期的に利用できます
  • アクセス制御: このパスは API Key を必要としません。完全なリンク自体が認証情報です。完全な URL を持つ人は誰でも画像をダウンロードできるため、生成結果リンクを公開しないでください。

同期処理とタイムアウト

既定の同期モードでは、画像が準備できるまでリクエストは開いたままになります:

  • 推奨するクライアント HTTP タイムアウト: 少なくとも 200 秒
  • 1 枚の画像は通常 30〜60 秒かかります。image-to-image、2K、複数画像ではさらに時間がかかる場合があります
  • 長い接続で待ちたくない場合は、非同期モード(?async=1)で task_id を取得し、後でポーリングしてください

エラーレスポンス

Error bodies use:

{
  "error": {
    "type": "server_error",
    "message": "...",
    "provider": "icodeeasy.cc"
  }
}

Common statuses:

  • 400 invalid_request_error: invalid parameters, unsupported ratio, more than 4 reference images, non-https reference URL, invalid base64, and similar issues
  • 401 authentication_error: missing or invalid API Key
  • 402 payment_required: insufficient balance or exhausted monthly quota
  • 429 rate_limit_error: rate limit exceeded
  • 5xx: service temporarily unavailable or generation failed; retry later

失敗したリクエストは課金されず、残高も差し引かれません。


課金

GPT Image の静止画料金と GIF の課金ルールは上記の各節を参照してください。

Gemini 画像モデルはモデル別の固定価格です:

ModelPrice
gemini-2.5-flash-imageCNY 0.20 / image
gemini-3.1-flash-image-previewCNY 0.30 / image
gemini-3-pro-image-previewCNY 0.50 / image

Usage Details では実際の model で記録され、cost_breakdown に image_count、image_cost_rmb、image_urls が含まれるため、履歴からリンクをコピーしたり画像をダウンロードしたりできます。


OpenAI Images API との違い

  • Model: 上表または GPT Image 2.6 の静止画の節に記載されたモデル ID を使用します。
  • Endpoints: すべての厳選モデルが generations に対応し、編集に対応するモデルでは edits を使えます
  • size: aspect ratios such as 16:9 are recommended; pixel strings are also accepted
  • resolution(既定 1k): GPT Image 2 / 2.5 / 2.6 は 1k / 2k / 4k、Gemini 2.5 は 1k のみ、表の Gemini 3.x は 1k / 2k / 4k に対応します。
  • quality: GPT Image 2 は low / medium / high / auto に対応しますが、品質別料金はありません。GPT Image 2.5 は枚数と解像度別の課金で、独立した品質設定はありません。旧リクエストのこのフィールドは受け付けますが、生成パラメータと料金には影響しません。
  • response_format: b64_json is not supported; URLs are always returned
  • Reference images: 対応モデルでは image_urls / image_input (JSON) または image[] (multipart) をモデル別制限の範囲で使います
  • 非同期モード: OpenAI にはこのモードはありません。この API は ?async=1 に対応し、task_id を返し、/v1/images/tasks/{id} をポーリングして結果を取得します
  • Task ID: responses include id / task_id for troubleshooting