GPT Image 2.6でSVGを生成し、編集できるか確認する手順

SVG出力の指定からデコード、図形の構造確認、色の変更と書き出しまで解説。APIの制限、料金の注意点、確認用スクリプトも紹介します。

輪郭上のノードを動かして形を調整できる凧のイラスト

GPT Image 2.6は、Images APIの画像生成エンドポイントでoutput_format: "svg"を指定するとSVGを返せます。 実務で確認したいのは、返された文書を開き、図形の構造を調べ、一部の色を変えて、使える素材として渡せるかどうかです。ファイル名が.svgで終わっているだけでは、これらを確認したことにはなりません。

本記事は2026年11月5日にOpenAI公式ドキュメントと照合しています。文書に基づく完全なリクエスト例と、ローカル検証済みの確認ツールを提供します。今回は有料のImage 2.6生成リクエストを実行しておらず、以下のプロンプトを生成成功例として紹介しているわけではありません。確認時点でOfoxの公開カタログ全件と使用アカウントのモデル一覧には2.6が掲載されていなかったため、例ではOpenAI APIへ直接接続します。

編集できたか判断しやすい素材から始める

まずはシンプルなアイコンや平面イラストを選びます。ここで提案する確認用の題材は、暗い色の枝に止まるオレンジ色の鳥です。単色の図形を分けて作るよう指示すれば、「翼を選択または特定できるか」「塗り色を変えられるか」「ほかの部分を保って再表示できるか」という確認項目を設定できます。

次の英文はダウンロード用JSONと同じプロンプトです。

Create a simple flat vector illustration of an orange bird perched on a
dark branch. Use solid fills, distinct closed shapes, no gradients,
no textures, no text and no photographic elements. Keep the bird body,
wing, eye and branch visually separate so their colors can be edited.
Leave generous empty space around the subject.

これは独自に作成したリクエスト用テンプレートです。編集しやすい構造を求めていますが、名前付きレイヤーや、各部分を個別に選択できる構造を保証するものではありません。ベクター文書でも、扱いにくい複合パスや多数の細かなパスで構成される場合があります。実用に耐えると判断する前に、実際の出力を調べてください。

ロゴに使う場合は、独自性、小さく表示したときの読みやすさ、元の素材の利用権限も確認します。SVGを生成できたことは、商標上の問題がないことを意味しません。文字を含むデザインでは、編集可能なテキスト要素と、輪郭がパスになった文字を区別します。文字の形がベクターであっても、通常のテキスト欄として打ち替えられるとは限りません。

APIが対応する範囲を確認する

設定・項目現行文書の記載
エンドポイントPOST /v1/images/generations
モデルgpt-image-2.6-flareまたはgpt-image-2.6-sunburst
出力形式output_format: "svg"
出力数nを1にする
非対応の設定ストリーミング、途中画像の出力、output_compression、prompt_rewriter
画像編集エンドポイントSVGの出力には非対応。SVGをラスター画像入力として渡すこともできない
返される内容静的なベクター。文書上はスクリプト、外部リソース、埋め込みラスター画像を含まない

処理では最初に参照画像を作り、それをもとにSVGを生成します。qualityが制御するのは、この参照画像の品質です。特定のパス数、整理されたレイヤー名、あらゆるデザインツールとの互換性を保証する設定ではありません。用途を絞った指示を作る際には、公式プロンプトガイドも参考になります。

予算を決めて一度生成する

OpenAI APIのプロジェクト、認証情報、請求設定に加え、curlとPython 3が必要です。ChatGPT製品の利用権限とAPIの利用権限は別に確認します。料金ガイド(英語)で説明しているとおり、SVGには参照画像の生成費用に加え、SVG文書を作成するモデルの費用がかかります。画像出力トークンの単価だけを全体の料金だと考えないでください。

付属ZIPにはsvg-request.jsonが入っています。上記のプロンプト、gpt-image-2.6-flare、quality: "low"、complexity: "low"、size: "auto"、n: 1、output_format: "svg"を指定しています。これらは最初に試すための例であり、実測に基づく推奨値ではありません。OpenAIのキーはOPENAI_API_KEYに設定し、リクエストファイルには書き込まないでください。

curl --fail-with-body --max-time 240 \
  https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @svg-request.json \
  --output svg-response.json

コマンドが失敗した場合は、再試行前にエラーを確認します。特に、手元でのタイムアウトだけでは、生成や課金が行われなかったとは判断できません。モデルが見つからないというレスポンスなら、推測したパラメータを足すのではなく、正確なモデルIDとアカウントのアクセス権限を確認してください。

成功したレスポンスは、次のように保存して構造を調べます。

python3 decode_image.py svg-response.json bird.svg
python3 inspect_svg.py bird.svg

デコード用ツールはdata[0].b64_jsonを読み、Base64の形式と、XMLのルート要素がSVGかどうかを確認します。既存のファイルは上書きしません。PNGの拡張子を変えてベクターデータにするツールではありません。元のレスポンスに公開すべきでない情報が含まれる場合は非公開で保管し、共有するのは機密情報を除いた記録と、利用権限のある素材に限ります。

開く前・埋め込む前に構造を確認する

付属の確認スクリプトは、viewBox、寸法、要素数、確認が必要な項目を出力します。エンティティに関わるXML宣言を拒否し、スクリプト、画像、外部形式の埋め込み、スタイルブロック、リソース参照属性を確認対象として挙げます。これは慎重な構造チェックであり、完全な安全化処理ではありません。 指摘があれば内容を調べる必要があります。また、指摘がないからといって、任意のSVGをWebページへそのまま埋め込んで安全だと保証されるわけではありません。

今回の鳥のような単純な図であれば、次を確認すると役立ちます。

  • SVGのルート要素と座標系が適切で、表示範囲を把握できること。
  • SVGの中にビットマップを包んだだけではなく、パスや図形要素で絵が構成されていること。
  • 拡大表示でも、実際に使う小さなサイズでも、形が読み取れること。
  • 欠けた部分、意図しない外部リソース、端の切れがないこと。

OpenAIの文書では、出力に埋め込みラスター画像は含まれないとされています。この経路の出力とされるファイルに<image>要素がある場合は、問題のないベクターだと扱う前に、レスポンスと後処理を調べてください。ダウンロードまでの間に別のサービスが変換している場合も同様です。

比較用として、OpenAIはFlareのSVG例とSunburstのSVG例を公開しています。これらは公式作例であり、Ofoxが生成したファイルでも、上記の鳥のプロンプトが成功した証拠でもありません。

一部を編集し、もう一度表示する

SVGに対応したベクター編集ソフトへコピーを読み込み、元のファイルは残しておきます。構造上選べるなら翼を選択し、塗り色を変えて別のSVGとして書き出します。鳥全体が選択される場合は、グループや複合パスを調べます。ベクター形式だからといって、各オブジェクトに扱いやすいレイヤーが用意されるとは限りません。

単純なSVGをコードで確認する場合は、対象要素を特定し、コピー上でその要素の塗りだけを変更します。同じ色を使う箇所をすべて変えることが目的でない限り、ファイル全体への無条件の色置換は避けてください。スタイル、グループ、グラデーションの指定によっては、意図しない部分まで変わります。

元のファイルと編集後のファイルを同じサイズで表示し、並べて比較します。指定した変更が見え、形や関係のない色が保たれているか確認してください。その後、実際に使うアプリやWebサイトでも書き出し結果を確認します。一つの編集ソフトで正しく開けても、どのソフトでも同じように読み込めるとは限りません。

文字がテキストのままか、どの要素を編集できたか、書き出し後も変更が残っているかを記録します。一つの複合図形になっているなら、「完全にレイヤー分け済み」とせず、その制約を説明してください。PNGも必要な場合は別に書き出し、SVGの原本を残します。ラスター化したPNG自体は、編集可能なベクターの納品物ではありません。

納品時に起こりやすい問題を調べる

問題確認すること次の対応
SVG出力が拒否されるエンドポイント、モデル、n、非対応パラメータ最小の画像生成リクエストに戻す
ファイルが開かないエラーJSONを画像として保存していないか、Base64やXMLが正しいかレスポンスを調べて再度デコードする。拡張子だけ変えない
白紙になる・端が切れる表示範囲、寸法、塗り、利用先の描画処理元ファイルを隔離したビューアーで確認し、読み込み後のコピーと比較する
文字を打ち替えられない<text>か、輪郭のパスかパスのまま使うか、編集ソフトで文字を組み直す
細かなパスが多すぎるディテール量と指示の複雑さ単色のシンプルなデザインを試し、新しい結果を確認する
一部分だけ選択できないグループ、複合パス、読み込み時の統合構造を調べる。ワンクリックで直るとは約束しない
画像の見積もりより費用が高いSVG作成モデルの費用と、すべての生成回数実際の使用量と請求を照合する

これらは確認手順であり、2.6で実際に再現した不具合一覧ではありません。SVGファイルのダウンロードと、そのスクリーンショットが別の役割を持つ理由もここにあります。スクリーンショットで確認できるのは見た目であり、構造を調べるには元の文書が必要です。

プレビューだけでなく元ファイルも渡す

確認済みの成果物として渡すなら、元のSVG、編集版、ラスター画像のプレビュー、機密情報を除いたプロンプトと設定、実際に確認した編集内容のメモをそろえます。モデルの使用量や請求額は非公開のテスト記録に残してください。概念を説明する表紙イラストや合成テストデータは、モデルがその素材を生成した証拠にはなりません。

動く画像が必要なら、別のGIF作成手順を参照してください。既存のラスター画像の文字を変更する場合は、画像内の文字翻訳とレイアウト維持の手順(英語)が別の作業として役立ちます。新しいSVGを生成することは、元のデザインを忠実に変換できることを意味しません。

Ofox経由で利用する前には、現行のモデル文書と連携ガイドを確認してください。正確なモデルと出力形式の対応を確認するまでは、この例のベースURLをOfoxのURLに置き換えないでください。