チュートリアル
GPT Image 2.6 API 接入チュートリアル:Flare と Sunburst の選定、GIF と SVG 出力の実践
モデル ID の選定からテキスト生成、画像生成パラメータの実装まで、GIF フレームパラメータと SVG 出力を一度に解説
このページの内容
まず 3 つの決定:ルート、モード、出力形式
最初のリクエストを書く前に、この 3 つを決めておけば、後からコードを何度も直さずに済みます。
第一に、ルートは Flare か Sunburst か。 特別な要件がなければデフォルトは Flare です。画像生成が速く、迅速なイテレーションやバッチ生成に適しています。medium 以上の品質で複数回の編集を行い、キャラクター・製品・レイアウトの一貫性を重視する場合にのみ Sunburst に切り替えてください。両者はパラメータ、使い方、価格が完全に同じなので、切り替えコストはモデル ID を 1 つ変えるだけです。
第二に、モードはテキスト生成か画像生成か。 1 つのプロンプトから始めるならテキスト生成、すでに 1〜16 枚のソース画像があり、それをベースに変更するなら画像生成です。出力形式の選択範囲が異なる点に注意してください。gif と svg はテキスト生成でのみ利用可能で、画像生成では png、jpeg、webp しか出力できません。
第三に、出力形式は静止画か動画/ベクターか。 デフォルトは png です。透明背景が必要なら png または webp、動画が必要なら gif、拡大縮小可能なベクターが必要なら svg を使います。
この 3 つの決定をコードに落とすと、モデル ID と output_format の 2 つのフィールドの値になります。まずこれらを定数として書いておくと、調整しながら変更するよりはるかに楽です。
4 つのモデル ID と Flare、Sunburst の選定判断
モデル ID は「ルート + モード」の 2 つの部分から成り、全部で 4 つあります。
-
gpt-image-2.6-flare/text-to-image -
gpt-image-2.6-flare/image-to-image -
gpt-image-2.6-sunburst/text-to-image -
gpt-image-2.6-sunburst/image-to-image
命名規則はとてもシンプルです。前半がルート、後半がモードです。リクエストボディ内のパラメータ名、値の範囲、課金基準は 2 つのルートで完全に同じなので、1 つの関数でラップし、ルートを引数として渡すことができます。
Sunburst を必ず使うべき場面
Sunburst はディテールをより重視し、medium 以上の品質で複数回の編集を行う際にディテールの一貫性が高まります。典型的な場面は、キャラクターを固定し、製品の外観を固定し、レイアウトを固定して何度も微調整を重ねるケースです。ワークフローが「まず生成し、その後 3 回修正する」というものであれば、Sunburst のメリットは後半の数回に現れます。
Flare にとどまるべき場面
1 枚の生成、大量のバッチ処理、プロンプトの効果を素早く確認したい場合——こうした場面では Flare の速さがより良い選択となります。両者の価格は完全に同じなので、Flare を選んでもコスト上の不利は一切ありません。
実践的なアドバイス:開発段階では統一して Flare でパラメータと形式を検証し、本番環境に入ってから複数回の編集が必要なユースケースに応じてルートを切り替えてください。モデルページではまず Flare テキスト生成 と Sunburst テキスト生成 のフィールド説明を参照できます。
テキスト生成の主要パラメータの設定方法
テキスト生成の主要パラメータは 7 つあり、それぞれの値と制約を説明します。
quality と resolution
quality は low / medium / high / xhigh / max を取り、ディテールのレベルを決定し、GIF の唯一の課金基準でもあります。resolution は 1K / 2K / 4K を取り、デフォルトは 1K です。この 2 つのパラメータが共同で 1 枚あたりの価格を決定し、コスト管理の 2 つのつまみでもあります。
complexity
low / medium / high を取り、デフォルトは high で、計画の階層を指します。これは quality と互いに独立しています。一方は構図計画の深さを管理し、もう一方は成像のディテールレベルを管理します。quality を下げたからといって complexity も一緒に変えないでください。両者は連動関係にありません。
aspect_ratio
auto または 15 種類の比率のいずれかを取ります。ここに踏みやすいルールが 1 つあります。GIF を生成する際は aspect_ratio を渡さないか auto を渡します。GIF の比率は frame_size によって決まるため、両者が衝突しても意味がありません。
output_format と output_compression
output_format は png(デフォルト)/ jpeg / webp / gif / svg を取ります。output_compression は 0〜100 を取り、jpeg、webp にのみ有効です。png に圧縮パラメータを渡しても期待通りには動作しません。
background
auto / opaque / transparent を取ります。transparent は必ず png または webp と組み合わせる必要があります。透明背景が欲しいのに jpeg を選んだ場合は、形式を変更する必要があります。
これらの制約は 1 つ覚えておけば十分です。形式は他のパラメータを逆に制限する——gif は比率の来源を固定し、jpeg/webp のみが圧縮を受け付け、transparent は png/webp しか認識しません。
GIF 出力:frame_size、フレーム数、サイズ上限
GIF はテキスト生成でのみ出力でき、パラメータはフレームに集中しています。
frame_size
各フレームのピクセル幅と高さを 512x512 のような「幅x高さ」形式で書き、両側とも 16 の倍数である必要があり、デフォルトは 512x512 です。これが GIF 全体の比率も決定するため、このときは aspect_ratio を渡さないでください。1:1 のような比率表記は受け付けず、必ずピクセル値である必要があります。
frame_count と frame_duration_ms
frame_count は 2〜16 を取り、デフォルトは 9 です。サイズに関連する制限が 1 つあります。768x768 では最大 12 フレームです。frame_duration_ms は 20 以上で、デフォルトは 200、10ms 単位で丸められます。
3 つのハード上限
GIF の合成全体はさらに、各辺が 3840 以下、総ピクセル数が 8,294,400 以下、アスペクト比が 3:1 以下を満たす必要があります。超過すると送信段階で拒否され、課金もされないため、こうしたエラーはコストにはなりませんが、デバッグ時間を浪費します。
最小限の動作する GIF リクエストボディ:
{
"model": "gpt-image-2.6-flare/text-to-image",
"prompt": "a bouncing paper plane on white",
"output_format": "gif",
"frame_size": "512x512",
"frame_count": 9,
"frame_duration_ms": 200,
"quality": "medium"
}
13〜16 フレームを出力するには、frame_size を 512x512 以下にしてください。768x768 では最大 12 フレームです。
SVG 出力の使い方と価格の計算方法
SVG も同様にテキスト生成でのみ利用可能で、画像生成ではこの形式を受け付けません。使い方は output_format を svg に設定するだけで、その他のパラメータは通常のテキスト生成と同様に設定します。background を透明にしたい場合は、形式の組み合わせルールに引き続き注意してください。
課金基準
SVG は同レベルの PNG の価格に $0.030 を加算して計算されます。例えば low 1K の PNG が $0.023 なら、同レベルの SVG は $0.053 です。high 2K の PNG が $0.090 なら、SVG は $0.120 です。レベルが高いほど SVG は高くなりますが、加算される $0.030 は変わりません。
使用上のアドバイス
SVG はロゴ、アイコン、図解など、可逆圧縮で拡大縮小する必要がある目的に適しています。下流のパイプラインが最終的にビットマップを必要とするなら、png を直接使う方が楽です。余分に払うベクター加価はリターンを生みません。
画像生成:ソース画像、マスク、注釈画像の二者択一
画像生成の入力は 1〜16 枚のソース画像で、形式は jpeg / png / webp に限られ、出力は png / jpeg / webp のみです。
mask_url と markup_url は二者択一
-
mask_url:最初のソース画像と同じサイズの RGBA PNG で、透明ピクセルが変更する領域を表します。 -
markup_url:透明 PNG の注釈画像で、変更する位置を画像上で囲みます。注釈自体は生成結果には表示されません。
両者は排他で、同時に渡すと拒否されます。選択ロジックはシンプルです。特定のピクセルだけを正確に動かしたいならマスクを使い、「だいたいこの辺り」を指し示すだけで、硬い境界に縛られたくないなら注釈画像を使います。
マスク外も変わる可能性がある
mask_url を使う際は心理的な準備が必要です。マスク以外の領域にも軽微な変化が現れる可能性があります。選択していない領域をピクセルレベルで不変に保つことが業務要件なら、画像生成の経路では保証できないため、合成段階で自前で処理するように変更してください。
課金
画像生成はテキスト生成の価格表を踏襲し、参考画像 1 枚につき $0.012 を加算します。low 1K で 1 枚渡すと $0.035、16 枚渡すと $0.215 です。本当に必要な参考画像だけを渡してください。
リクエストボディの例:
{
"model": "gpt-image-2.6-flare/image-to-image",
"prompt": "change the background to warm sunset",
"image_urls": ["https://your-cdn/source.png"],
"mask_url": "https://your-cdn/mask.png",
"output_format": "png"
}
フィールドの詳細は Flare 画像生成 ページを参照してください。
コスト見積もり:品質レベルとサイズから 1 枚の価格を計算
まず 3 つの課金基準を覚えてください。
-
テキスト生成(png/jpeg/webp):
qualityとresolutionが共同で 1 枚の価格を決定します。 -
SVG:同レベルの PNG 価格に $0.030 を加算。
-
GIF:
qualityのみで課金され、解像度とは無関係:low $0.070、medium $0.124、high $0.150、xhigh $0.266、max $0.598。 -
画像生成:同じ表の価格で、参考画像 1 枚につき $0.012 を加算。
1 枚の見積もり方法
4 ステップ:モードを確定(テキスト生成か画像生成か)→ 形式を確定(gif は品質のみ、svg は $0.030 加算、それ以外は品質×解像度)→ 対応するレベルの単価を確認 → 画像生成なら $0.012 × 参考画像枚数を加算。テキスト生成のよく使うレベル:low 1K $0.023、medium 1K $0.041、high 1K $0.049、high 2K $0.090、high 4K $0.160。
課金されない場合
送信段階で拒否されたリクエストは全額返金され、課金されません。これにはパラメータが不正な場合(例えば background=transparent に jpeg を組み合わせた、gif に aspect_ratio を渡したなど)や GIF のサイズ超過が含まれます。つまり、パラメータ検証エラーはお金を消費しませんが、イテレーションを遅らせるため、クライアント側で事前に検証を行うことをお勧めします。
全 15 レベルは 価格ページ を参照してください。前世代の課金方式と比較したい場合は、GPT Image 2.5 Flare テキスト生成 をご覧ください。
まとめると一言:デフォルトは Flare + テキスト生成 + png、複数回の編集が必要になったら Sunburst に切り替え、動画やベクターが必要になったら output_format を変更する。
関連記事
すべての記事を見る →-
チュートリアル
GPT Image 2.6 実践:ピクセルアニメーション GIF、SVG ベクターロゴ、mask_url による部分修正
そのまま真似できる3つのパラメータ設定:GIF のフレーム数と frame_size、SVG 出力と価格計算、mask_url による部分画像修正
-
チュートリアル
Recraft Creative Upscale 事例:風景と水彩のアップスケール
山小屋、湖、水彩の町のテクスチャ変化を確認し、完全な結果とプレビューを区別して、描き直された細部をチェックします。
-
チュートリアル
OpenAI API キーが無効:401、環境変数とプロジェクト設定の調査
OpenAI の 401、403、429 を区別し、環境変数、組織とプロジェクトの設定を確認し、読み取り専用リクエストで認証情報を検証します。