GPT-Image-2.6 APIは、gpt-image-2.6-flareとgpt-image-2.6-sunburstという2つのOpenAIモデルを通じて画像を生成・編集します。APIキーを付けてPOST /v1/images/generationsにプロンプトを送り、レスポンスのb64_jsonをデコードします。バージョン2.6では、画像マークアップ、SVGおよびGIF出力、そしてcomplexityパラメータが追加されました。
本ガイドでは、認証、最初の生成、マークアップによる編集、SVGエクスポート、qualityとcomplexityの設定について解説します。新機能に焦点を当てているため、ストリーミングとResponses APIツールについてはgpt-image-2.5 APIガイドを、リリース全体についてはChatGPT Images 2.6解説記事をご覧ください。以下のリクエストはすべて、2026年11月5日時点のOpenAIのドキュメントをもとに作成しました。実際のキーでは実行していないため、本番投入前に必ずテストしてください。
GPT-Image-2.6 APIの概要
| 項目 | 詳細 |
|---|---|
| モデルID | gpt-image-2.6-flare、gpt-image-2.6-sunburst |
| 生成 | POST /v1/images/generations |
| 編集 | POST /v1/images/edits |
| 認証 | Authorization: Bearer $OPENAI_API_KEY |
| 出力 | b64_json。デフォルトはPNGで、JPEG、WebP、GIF、SVGにも対応 |
quality |
low、medium、high、xhigh、max、auto(デフォルト) |
complexity |
low、medium、high(省略時はhigh) |
| 画像トークン料金 | 入力$8、キャッシュ済み入力$2、出力$30(100万トークンあたり) |
| テキストトークン料金 | 入力$5、キャッシュ済み入力$1.25(100万トークンあたり) |
料金はOpenAIの料金ページに基づいています。両モデルともトークンあたりの料金は同じなので、速度と編集精度で選ぶとよいでしょう。
FlareかSunburstか:どちらのモデルを呼ぶべきか
素早い反復と日常的な生成にはFlareを呼びましょう。OpenAIによれば、low品質であれば最短6秒で画像を返せるほか、ポスターや商品画像のレイアウトも改善されるといいます。詳細な作業や繰り返しの編集にはSunburstを呼びましょう。mediumまたはhigh品質での一貫性が向上するとOpenAIは主張しています。
これらはOpenAIの主張であり、独立したベンチマークではありません。両者の違いについては、2.5におけるFlare vs Sunburstの比較で解説しています。
認証とセットアップ
最初の呼び出しの前に、3つの準備が必要です。
- OpenAIダッシュボードでAPIキーを作成し、
OPENAI_API_KEYとしてエクスポートします。 - 組織で必要な場合は、API Organization Verificationを完了します。GPT Imageモデルを利用する前に必要になることがあるとOpenAIは述べています。
- curlの例で使う
jq、またはPythonで使うopenaiパッケージをインストールします。
アプリが個々のユーザーにサービスを提供する場合は、最大128文字のハッシュ化されたsafety_identifierも送信してください。これは非推奨となったuserパラメータを置き換えるものです。
最初の画像を生成する
次のリクエストでは、下書きに適したlow品質のFlareを使用します。
curl --fail-with-body --silent --show-error \
https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-flare",
"prompt": "A minimal poster for a developer meetup, with the words SHIP IT in bold type",
"size": "1024x1536",
"quality": "low",
"complexity": "low"
}' | jq -er '.data[0].b64_json' | base64 --decode > poster.png
同じ呼び出しをPythonで書くとこうなります。
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI()
result = client.images.generate(
model="gpt-image-2.6-sunburst",
prompt="A product shot of a ceramic mug on a walnut desk, soft morning light",
size="1536x1024",
quality="medium",
extra_body={"complexity": "low"},
)
Path("mug.png").write_bytes(base64.b64decode(result.data[0].b64_json))
complexityはextra_body経由で渡しているため、使用中のSDKバージョンが名前付き引数として公開しているかどうかに依存しません。GPT Imageモデルは常にbase64を返すので、response_formatを送ったり、urlフィールドを探したりしないでください。
OpenAIのガイドでは、トークン使用量を測定するためにレスポンスのusageオブジェクトを読むよう指示されています。ただしAPIリファレンスではこのフィールドはgpt-image-1のみと記載されており、サンプルレスポンスには含まれています。コスト追跡をこれに依存させる前に、2.6のレスポンスに実際に含まれるか確認してください。
マークアップで画像を編集する
マークアップは、モデルにどこを変更するかを伝えるものです。元の画像、円やスケッチを描いた透過PNG、そして編集内容を記述したプロンプトを送信します。
curl --fail-with-body --silent --show-error \
https://api.openai.com/v1/images/edits \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-flare",
"images": [{"image_url": "https://your-bucket.example/kitchen.png"}],
"markup": {"image_url": "https://your-bucket.example/vase-overlay.png"},
"prompt": "Recolor the vase inside the red circle to solid cobalt blue. Keep everything else unchanged. Remove the red circle.",
"quality": "medium",
"complexity": "low"
}' | jq -er '.data[0].b64_json' | base64 --decode > vase.png
JSONリクエストではimages配列と、image_urlまたはfile_idのいずれか一方だけを持つmarkupオブジェクトを使用します。image_urlにはHTTPS URLまたはbase64データURLを指定できます。マルチパートリクエストでは代わりにファイルアップロードを使用します。そのPython版はimage generationガイドにあります。

オーバーレイには厳格なルールがあります。
- 向きを適用した後、最初の画像の幅と高さに一致している必要があります。
- 透過ピクセルを含んでいる必要があるため、写真の上に重ねて平坦化しないでください。
- 最初の入力画像に適用されます。それ以外の画像は参照として扱われます。
- 2つの画像はそれぞれ最大16,777,216ピクセルまで、オーバーレイファイルは50 MBを超えられません。
markupはmaskやprompt_rewriterと組み合わせることはできません。
OpenAIのサンプルと同様に、モデルに注釈を削除するよう指示してください。マークアップの料金は他の編集と同じです。Responses APIでは使用できないため、そちらではマスクを使ってください。
SVGをエクスポートする
編集可能なパスが必要なアイコン、ロゴ、イラストには、generationsエンドポイントでoutput_formatをsvgに設定します。
curl --fail-with-body --silent --show-error \
https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A flat two-color wheat logo for a bakery called Field and Flour",
"output_format": "svg",
"quality": "medium",
"n": 1
}' | jq -er '.data[0].b64_json' | base64 --decode > logo.svg
APIはまずqualityで制御される参照画像をレンダリングし、そこからSVGを生成します。デコードされたバイト列はUTF-8のXMLで、スクリプト、外部リソース、埋め込みラスターは含まれません。
4つの制限があります。
nは1でなければなりません。- ストリーミング、部分画像、
output_compression、prompt_rewriterは使用できません。 - editsエンドポイントはSVGを出力できず、ラスター入力としてSVGを受け付けることもできません。
- オプションの
svgオブジェクトでオーサリングモデルを選択できますが、アカウントでSVGモデル選択が利用可能な場合に限ります。それ以外の場合は省略してください。
料金は二重にかかります。参照画像の画像料金と、そのトークンに対するオーサリングモデルの料金です。APIリファレンスには後者用に別途svg_usageオブジェクトが記載されているので、ログに記録しておきましょう。
GIFを生成する
APIが返すのはスプライトシートではなく、完成したGIFです。generationsリクエストに3つのフィールドを追加します。
{
"model": "gpt-image-2.6-flare",
"prompt": "A small orange robot waves, blinks and returns to its starting pose. Make it loop.",
"output_format": "gif",
"frame_count": 9,
"frame_duration_ms": 200,
"size": "auto"
}
b64_jsonを同じ方法でデコードし、.gifとして保存します。その前に2点確認してください。
- フレーム上限。 ガイドでは
frame_countは2〜64とされていますが、APIリファレンスでは2〜16とされています。より大きい値でテストするまでは16以下に抑えておきましょう。 - アクセス権。 リファレンスには、GIF出力には選択したモデルのGIFプレビューへのアクセスが必要とありますが、ガイドにはこの記載がありません。GIFリクエストが拒否された場合、ペイロードの問題ではなくアクセス権の問題である可能性があります。
GIF出力はストリーミング、部分画像、カスタムoutput_compressionに対応しておらず、editsエンドポイントから返すこともできません。OpenAIはGIF専用の課金計算式を公開していないため、スケールさせる前に小規模なテストを実行して請求額を確認してください。
qualityとcomplexityを設定する
qualityはレンダリングの詳細度を制御し、トークンコストに直結します。complexityはレンダリング前にモデルがどれだけ計画を立てるかを制御し、変更しても別途料金はかかりません。
complexityはすべてのリクエストに設定してください。デフォルトはhighですが、OpenAIはほとんどの編集でlowを推奨しています。ガイドでは、高い設定にするとレイテンシが増加し、意図しない変更が生じる可能性があると警告しています。

品質は出力の請求額も左右します。次の表は、11月5日時点で1024x1024画像についてOpenAIの計算ツールを用いて算出したもので、入力トークンは含みません。
quality |
出力トークン数 | 出力コスト |
|---|---|---|
low |
823 | $0.02469 |
medium |
1,449 | $0.04347 |
high |
1,756 | $0.05268 |
xhigh |
3,122 | $0.09366 |
max |
7,024 | $0.21072 |
mediumとhighの差は約1セントなので、両方を比較してみてください。料金ページのBatchタブにはまだ2.6が掲載されていないため、2.5のバッチ割引が適用されると想定しないでください。
エラーとタイムアウトを処理する
失敗は、リトライで解決できるかどうかで分類しましょう。
| 失敗 | 対処 |
|---|---|
| レート制限またはサーバーエラー | バックオフしてリトライ |
| クォータエラー | リトライせず、請求設定を修正 |
error.typeがimage_generation_user_error |
まずプロンプトまたは入力を変更 |
error.codeがmoderation_blocked |
moderation_detailsを確認して修正 |
安定したチェックにはerror.codeを使い、リクエストIDをログに記録してください。moderation_detailsにはmoderation_stageと大まかなcategoriesが含まれており、これらはユーザー向けメッセージではなくログに記録すべきものです。OpenAIによれば複雑なプロンプトにはそれだけ時間がかかることがあるため、クライアントのタイムアウトは2分より長く設定してください。
Apidog CLIでコーディングエージェントにテストさせる
コーディングエージェントを使えば、これらのリクエストと制限をApidog CLIでテストスイートに変換できます。まず一度セットアップします。
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install
次に、Claude Code、Codex、Cursorのいずれかに次のプロンプトを1つ渡します。
In Apidog project <id>, add POST /v1/images/generations and POST /v1/images/edits
on https://api.openai.com. Read the bearer token from OPENAI_API_KEY.
Create test cases for gpt-image-2.6-flare at low quality and low complexity:
1. PNG generation: assert status 200 and data[0].b64_json exists.
2. SVG generation: assert status 200 and output_format equals svg.
3. GIF with frame_count 6: assert status 200 and output_format equals gif.
4. SVG with n set to 2: assert a 4xx status and that error.message exists.
5. GIF with frame_count 17: record the status, because OpenAI's docs disagree.
Put them in a test suite named "GPT-Image-2.6", run it against environment
<envId>, and summarize every failure.
エージェントは各スキーマを読み、ペイロードを検証してから、スイートを作成・実行します。
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file endpoint.json
apidog endpoint create --project <id> --file endpoint.json
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog cli-schema validate test-suite-create --file suite.json
apidog test-suite create --project <id> --file suite.json
apidog test-suite run <suiteId> --project <id> -e <envId> \
--env-var "OPENAI_API_KEY=$OPENAI_API_KEY" --on-error continue -r cli,json
ケース5で、あなたのアカウントにおけるフレーム上限が確定します。ケース3ではGIFアクセス権の有無がわかります。成功したケースは実際に課金対象の生成を行うため、qualityは低く保ってください。-r junitに差し替えればCIパイプラインでスイートを実行できます。エージェントの詳細についてはClaude Codeセットアップガイドをご覧ください。
FAQ
GPT-Image-2.6 APIのモデル名は何ですか? gpt-image-2.6-flareとgpt-image-2.6-sunburstです。2.5モデルとは異なり、APIリファレンスにはまだ日付付きスナップショットは記載されていません。
GPT-Image-2.6 APIの料金はいくらですか? 画像トークンは入力100万あたり$8、出力100万あたり$30です。1024x1024画像の場合、入力トークンを除いた出力コストはlowで約$0.025、highで約$0.053です。
gpt-image-2.5から移行すべきですか? SVG、GIF、complexityが必要なら移行しましょう。ただし先にコストをテストしてください。low画像は2.5の約4.2倍のトークンを消費し、2.6モデルにはまだBatch料金が掲載されていません。
editsエンドポイントでcomplexityは使えますか? はい。OpenAIはほとんどの編集でlowを推奨しています。
アップロードした画像をAPI経由でGIFに変換できますか? いいえ。editsエンドポイントはGIFもSVGも返さないため、どちらの形式もgenerationsエンドポイントでテキストプロンプトから生成します。
APIはURLを返しますか? いいえ。GPT Imageモデルは常にb64_jsonにbase64で返すため、自分でデコードしてファイルを保存してください。
