GPT Image 2.6のSVG出力の使い方:APIのsvg.model指定と2段階の費用
GPT Image 2.6のSVG出力は、画像モデルが描く下絵とsvg.modelのテキストモデルが書くSVGの2段構えで、費用も2つに分かれます。向くのはアイコンやロゴです。
目次

GPT Image 2.6でSVGを出すには、POST /v1/images/generationsにoutput_format: "svg"とn: 1を付け、さらにsvgオブジェクトでSVGを書くテキストモデルをsvg.modelに指定します(例:"svg": {"model": "gpt-6.1-terra"})。このsvgオブジェクトはOpenAIの画像生成ガイドには書かれておらず、APIリファレンスにだけ載っています。Pythonならopenaiパッケージを3.46.0以上に上げるとsvg=引数でそのまま渡せ、古い版ではextra_bodyに入れます。返ってきたb64_jsonをデコードして.svgで保存すれば、編集できるベクターデータが手に入ります。
仕組みは2段構えです。まずgpt-image-2.6-flareかgpt-image-2.6-sunburstがラスターの下絵を描き、次にsvg.modelのモデルがその下絵を見てSVGコードを書きます。そのため請求もレスポンスの使用量も2つに分かれ、OpenAI APIに直接送って1024×1024のアイコンをquality: "medium"とgpt-6.1-terraで作ると、合計は約$0.054〜0.057です(2026年11月5日時点の単価とテスト値から計算)。
向いているのはアイコン、ロゴ、シンプルな図形です。カフェの店内全体のような描き込みの多い絵は、2〜3分待ったあとOpenAIの502で失敗することがほとんどなので、PNGのままにします。出てきたSVGも文字がアウトライン化されているとは限らないため、使う前に文字・埋め込み・拡大縮小・色替えの4点を確かめてください。
SVG出力の仕組み:下絵を描く画像モデルとSVGを書くテキストモデル
OpenAIの画像生成ガイドのSVG出力の項によると、APIはまず参照用のラスター画像(OpenAIの用語ではreference image)を作り、それをもとにSVGを作ります。以下、この中間画像を「下絵」と呼びます。画像生成でよく言う「参照画像」、つまりユーザーが渡す画像とは別物で、下絵はAPIの内部で描かれるだけなので、送ることも受け取ることもありません。
2段目は、トレースのような自動変換ではありません。OpenAI Developer CommunityのGPT Image 2.6でSVGを生成する方法を扱ったスレッドでは、svgに渡すモデルは視覚(画像入力)を使ってSVGのテキストを書くもので、アルゴリズムによる変換ではなく「この絵をSVGファイルにして」と頼む仕組みに見える、と指摘されています。だからsvg.modelには画像を読めるテキストモデルを入れ、その選び方で成功率、待ち時間、費用、線の細かさが変わります。
設定もどちらの段に効くかが分かれています。qualityとcomplexityは1段目の下絵にだけ効き、APIリファレンスのcomplexityの説明には「SVG出力では、SVGを書くモデルの推論とは独立に下絵を制御する」とあります。反対にsvg.reasoning.effortは2段目にだけ効き、省略するとそのテキストモデルの既定値になります。レスポンスも同じ分かれ方で、下絵のトークンはusage、SVGを書いたモデルのトークンはsvg_usage(input_tokens、output_tokens、reasoning_tokens、total_tokens、model)に別々に入ります。

SVGを出力するリクエスト:Python SDK 3.46.0以上・旧SDK・HTTP
OpenAI APIにSVGを1枚リクエストして保存するまでの手順です。プロンプトはOpenAIのプロンプトガイドにあるベーカリー「Field & Flour」のロゴ用をそのまま使っているので、結果をガイドのサンプルと見比べられます。
openaiパッケージを3.46.0以上に更新します(pip install -U "openai>=3.46.0")。この版でトップレベルのsvg引数に対応しました。- 次のコードを実行します。
svg={"model": "gpt-6.1-terra"}がSVGを書くモデルの指定で、下絵の画質はqualityで決まります。
import base64
from openai import OpenAI
client = OpenAI() # 環境変数 OPENAI_API_KEY を使う
prompt = """Create an original, non-infringing logo for a company called Field & Flour, a local bakery.
The logo should feel warm, simple, and timeless. Use clean, vector-like shapes, a strong silhouette, and balanced negative space.
Favor simplicity over detail so it reads clearly at small and large sizes. Flat design, minimal strokes, no gradients unless essential.
Fully transparent background. Deliver a single centered logo with generous padding, clean alpha edges, and no solid backdrop, scenery, checkerboard, or watermark."""
result = client.images.generate(
model="gpt-image-2.6-flare",
prompt=prompt,
output_format="svg",
quality="medium",
size="1024x1024",
n=1,
background="transparent",
svg={"model": "gpt-6.1-terra"},
)
with open("field-and-flour.svg", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
print(result.usage) # 1段目:下絵を描いた画像モデルのトークン
print(result.svg_usage) # 2段目:SVGを書いたテキストモデルのトークン- SDKを3.46.0未満から上げられない場合は、
svg=...の行をextra_body={"svg": {"model": "gpt-6.1-terra"}}に置き換えます。Communityのスレッドで最初に動いた例もこの書き方でした。 - SDKを使わない場合は、HTTPで同じ項目を送り、返ってきたJSONから
data[0].b64_jsonを取り出してデコードします。
curl 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 flat coffee cup icon with rising steam and a green leaf on the cup, warm brown and cream colors",
"output_format": "svg",
"quality": "medium",
"size": "1024x1024",
"n": 1,
"svg": {"model": "gpt-6.1-terra"}
}' \
-o svg.json
python3 -c 'import json,base64; d=json.load(open("svg.json")); open("coffee.svg","wb").write(base64.b64decode(d["data"][0]["b64_json"]))'- 保存した
.svgをブラウザで開いて表示を確かめ、レスポンスのusageとsvg_usageを控えておきます。費用の計算に使います。
SVGでは使えない設定があります。nは1だけで、ストリーミング、partial_images、output_compression、prompt_rewriterは付けられません。編集用の/v1/images/editsはSVGを出力せず、SVGファイルを編集の入力画像として渡すこともできません。背景を抜きたいときは、上の例のようにbackground: "transparent"がSVGでも使えます。透過PNGを選ぶ場合に市松模様が焼き込まれていないか確かめる方法は、ChatGPT・GPT Imageの背景透過が市松模様に:見分け方と直し方にまとめています。
svg.modelを必ず書くべきかどうかは、アカウントの設定で変わります。APIリファレンスは「SVGのモデル選択が有効ならsvg.modelは必須、無効ならsvgオブジェクトごと省く」と書いていますが、自分のアカウントがどちらかを確かめる画面は案内されていません。Communityのスレッドではsvgを必須の新パラメータとして扱っており、2026年11月5日時点ではまずsvg.modelを明示して送り、svgについて拒否されたときだけ外す、という順で試すのが確実です。
svg.modelはどれを選ぶ:迷ったらgpt-6.1-terra、細部重視ならgpt-5.5
OpenAIはsvg.modelにどのモデルが向くかを示していません。LaoZhang APIのドキュメントチームが2026年11月5日に、同じ1024×1024のアイコン用プロンプトを各モデル3回以上、OpenAI APIへ送って比べた結果では、gpt-6.1-terraが7回すべて成功し、33〜43秒で、線のきれいさもgpt-5.5に近い仕上がりでした。特別な理由がなければgpt-6.1-terraから始め、細部を詰めたいロゴだけgpt-5.5に替えるのが妥当です。
注記:laozhang.ai は当ブログ運営チームの自社サービスです。その料金は中立的な比較ではなく、自社の提示価格です。
svg.model | 成功 | 所要時間 | SVGを書く費用(OpenAI単価) | 仕上がり |
|---|---|---|---|---|
gpt-6.1-terra | 7/7 | 33〜43秒 | 約$0.011〜0.014 | 線がきれいでgpt-5.5に近い |
gpt-5.5 | 3/3 | 42〜70秒 | 約$0.09〜0.16 | 細部がいちばん細かい |
gpt-6-sol、gpt-6.1-sol | 各2/3 | 33〜49秒 | 約$0.02〜0.04 | 良好 |
gpt-5.4-mini | 3/3 | 16秒 | 公開値なし | 形が粗い |
gpt-5.6-terra | 0/3 | — | — | 使わない |
失敗はすべてOpenAIが返した502でした。表はアイコン用プロンプト1本での結果なので、成功率や費用は絵の複雑さで大きく変わります。同じチームの以前のテストでは、シンプルなロゴと複雑なイラストで、SVGを書くモデルの出力トークンが最大で約300倍違いました。
名前の似たモデルに注意してください。7回すべて成功したのはgpt-6.1-terraで、gpt-5.6-terraは3回すべて失敗しています。svg.reasoning.effortをhighにすると、既定の2.6〜14倍のトークンを使ったため、アイコンなら既定のままで足ります。指定できる段階はモデルによって異なります。
SVG1枚の費用:OpenAI直とLaoZhang APIの比較
OpenAIの画像生成ガイドは、SVG出力では「下絵には画像モデルの単価、SVGを書くトークンにはそのテキストモデルの単価」を払うと説明しています。GPT Image 2.6の画像出力は100万トークンあたり$30なので、下絵の費用は「usageの出力トークン数 × $30 ÷ 1,000,000」で出せます。下絵そのもののトークン数は公開されていないため、表の下絵の金額は、LaoZhang APIのドキュメントチームが通常の1024×1024画像で計測したトークン数(lowが824、mediumが1,449)と同じだけ使うと仮定した見積もりです。2段目の費用は前の節の表の値を足します。
注記:laozhang.ai は当ブログ運営チームの自社サービスです。その料金は中立的な比較ではなく、自社の提示価格です。
| 送り先 | quality | svg.model | 下絵 | SVGを書く費用 | 合計の目安 |
|---|---|---|---|---|---|
| OpenAI API直 | low | gpt-6.1-terra | 約$0.025 | 約$0.011〜0.014 | 約$0.036〜0.039 |
| OpenAI API直 | medium | gpt-6.1-terra | 約$0.043 | 約$0.011〜0.014 | 約$0.054〜0.057 |
| OpenAI API直 | medium | gpt-5.5 | 約$0.043 | 約$0.09〜0.16 | 約$0.13〜0.20 |
| LaoZhang API(OpenAI Official) | low | 無料の9モデル | 約$0.025 | 無料 | 約$0.025 |
| LaoZhang API(OpenAI Official) | medium | 無料の9モデル | 約$0.043 | 無料 | 約$0.043 |
| LaoZhang API(OpenAI Official) | medium | gpt-5.5 | 約$0.043 | 公式単価(約$0.09〜0.16) | 約$0.13〜0.20 |
計算は824 × $30 ÷ 1,000,000 ≈ $0.025、1,449 × $30 ÷ 1,000,000 ≈ $0.043です。プロンプトの文字はテキスト入力として別に数えられますが、1枚$0.001未満なので表には入れていません。LaoZhang APIのドキュメントはmediumのアイコンを約$0.044としていますが、差は$0.001未満です。
実際にいくらかかったかは、1回ごとにレスポンスで確かめます。下絵はusage、SVGを書いたモデルはsvg_usageのoutput_tokensとreasoning_tokensを見て、それぞれのモデルの単価を掛けます。LaoZhang APIで有料のモデルを選んだ場合は、その費用がテキスト入力トークンに換算されてsvg_usage.billed_as_text_input_tokensに入り、無料のモデルなら0です。表の金額はOpenAI Officialグループの場合で、LaoZhang APIのドキュメントはOpenAI Official Enterpriseグループの公式転送料金に20%が加わると説明しています。
LaoZhang APIでSVGが出るのはOpenAI Officialグループだけ
LaoZhang APIでSVGが返るのは、公式転送のgpt-image-2.6-flareとgpt-image-2.6-sunburstだけです。トークンのグループをOpenAI OfficialかOpenAI Official Enterpriseにし、ベースURLをhttps://api.laozhang.ai/v1に替えれば、上のPythonやcurlのリクエストをそのまま使えます。svg.modelを省くとgpt-6.1-terraが使われますが、これはLaoZhang API側の既定で、OpenAIの既定ではありません。
注記:laozhang.ai は当ブログ運営チームの自社サービスです。その料金は中立的な比較ではなく、自社の提示価格です。
2026年11月5日に、回数課金のルートへoutput_format: "svg"を送って確かめました。gpt-image-2.6-flare-vipは「GIF and SVG output are not supported on this route; use gpt-image-2.6-flare / gpt-image-2.6-sunburst in the OpenAI Official group.」、gpt-image-2.6-webは「SVG output is not supported on this route; use gpt-image-2.6-flare / gpt-image-2.6-sunburst in the OpenAI Official group.」という400をすぐに返し、どちらも課金されませんでした。また、defaultグループのキーでgpt-image-2.6-flareを呼ぶと「Current group default has no available channels for model gpt-image-2.6-flare」という503になります。行き先はモデル名ではなくキーのグループで決まるので、503が出たらキーのグループを確認してください。
課金は2段に分かれます。下絵はusageをもとに公式単価で課金され、SVGを書く段階は既定のgpt-6.1-terraと、gpt-5.4-mini、gpt-5.4-nano、gpt-5-mini、gpt-5-nano、gpt-4.1-mini、gpt-4o-mini、gpt-5.6-luna、gpt-6-lunaの計9モデルなら無料です。gpt-5.5やgpt-6-solなど、それ以外のモデルは公式単価で課金されます。画像モデルをsvg.modelに入れるとmodel_not_foundが返り、対応していないテキストモデルはunsupported_svg_modelになって課金されません。OpenAIが502を返したときはゲートウェイが再試行や経路の切り替えを行い、それでも失敗すると多くはsvg_generation_failedが返り、下絵も含めて課金されません。詳細はLaoZhang APIのGPT Image 2.5/2.6ドキュメントにあります。
SVG向きの絵:アイコン・ロゴは安定、描き込みの多い全景は2〜3分後に502
SVGにするかPNGのままにするかは、絵の複雑さで決めます。LaoZhang APIのドキュメントチームが2026年11月5日に試したところ、シンプルなアイコンは安定して返った一方、カフェの店内全体を描く詳細な全景はgpt-6.1-terraで4回すべて失敗し、いずれも150〜170秒待ったあとのOpenAIの502でした。ほかのモデルでも、複雑なプロンプトは30〜200秒後に502になることがほとんどでした。
注記:laozhang.ai は当ブログ運営チームの自社サービスです。その料金は中立的な比較ではなく、自社の提示価格です。
LaoZhang APIのドキュメントは、絵が込み入るほどSVGコードが長くなり、費用も待ち時間も増えると説明しています。失敗はいずれもOpenAIが返した502で、どの段で止まったかまでは示されていません。同じドキュメントがSVGはアイコン、ロゴ、シンプルな図形に使うよう勧めているとおり、ロゴ、アプリやWebのアイコン、図解の部品のような平面的な絵はSVGで、細かい背景や写真のような質感が必要な絵は最初からPNGで出すのが現実的です。
プロンプトも、ベクターになる前提で書くと失敗が減ります。OpenAIのプロンプトガイドがロゴ用に勧めているのは、ブランド名とマークを形づくる形を具体的に書き、「clean, vector-like shapes」「strong silhouette」「balanced negative space」で単純さを求め、「Flat design, minimal strokes, no gradients unless essential」で線とグラデーションを抑え、背景は完全に透明、余白を十分にとったロゴ1つを中央に置く、という書き方です。上のPythonの例のプロンプトがそのまま見本になります。プロンプト全般の組み立て方はGPT Image 2.6のプロンプトの書き方を参考にしてください。
出力したSVGが本当に編集できるか確かめる4つのチェック
SVGで返ってきても、FigmaやIllustratorでそのまま扱えるかはファイルの中身次第です。OpenAIはSVGが「スクリプト、外部リソース、埋め込みラスター画像を含まない静的なベクターデータ」だと説明していますが、文字の扱いまでは決まっていません。次の4点を確かめれば、使えるファイルかどうか判断できます。
- 文字が
<text>要素として残っているか、パスにアウトライン化されているかを見ます。<text>のままなら文字の打ち替えは簡単ですが、見た目は開く環境に入っているフォントで変わります。ロゴとして固定したいなら、デザインツールでアウトライン化してから配布します。 <image>、data:で始まるデータURI、httpで始まる外部参照、<script>が含まれていないかを確かめます。どれかがあれば、ベクターに見えて中身はラスターだったり、表示が外部に依存したりします。- 64px幅と2048px幅で描画し、小さくしても形がつぶれず、大きくしてもにじまないことを見ます。
- 16進カラーを1つ別の色に置き換えて再描画し、狙った部分だけ色が変わるかを見ます。色が1か所で管理されているかの確認になります。
macOSやLinuxなら、次のコマンドで4点をまとめて確かめられます。rsvg-convertはmacOSではbrew install librsvgで入ります。
F=logo.svg
# 1. 文字の扱い(0ならアウトライン化済み、1以上ならフォント依存)
grep -o '<text' "$F" | wc -l
grep -o 'font-family="[^"]*"' "$F"
# 2. ラスター・データURI・外部参照・スクリプト(0なら問題なし)
grep -oE '<image|data:|href="http|<script' "$F" | wc -l
# 3. 小さいサイズと大きいサイズで描画
rsvg-convert -w 64 "$F" -o check-64.png
rsvg-convert -w 2048 "$F" -o check-2048.png
# 4. 使われている色を一覧にし、1色を差し替えて描画(大文字・小文字は表示どおりに)
grep -oE '#[0-9A-Fa-f]{6}' "$F" | sort | uniq -c
sed 's/#70371c/#1f4fd1/g' "$F" > recolor.svg
rsvg-convert -w 512 recolor.svg -o recolor.png2026年11月5日に、公開されているGPT Image 2.6の実際のSVG3つ(OpenAIのガイドに載っているFlare版とSunburst版の「Field & Flour」ロゴ、LaoZhang APIのドキュメントに載っているFlareのコーヒーアイコン)をMac上でこの4点に沿って検査した結果が次の表です。3つともviewBoxは0 0 1024 1024でした。
注記:laozhang.ai は当ブログ運営チームの自社サービスです。その料金は中立的な比較ではなく、自社の提示価格です。
| ファイル | サイズ | 主な要素 | 文字の扱い | ラスター・外部参照 | 64px/2048px | 色1つの差し替え |
|---|---|---|---|---|---|---|
| OpenAIのFlare版ロゴ | 4,976バイト | path 12、circle 1、g 5、塗り2色 | 文字はアウトライン化済み(<text>なし) | なし | 正常 | 正常 |
| OpenAIのSunburst版ロゴ | 4,571バイト | path 24、text 2、rect 1、塗り4色 | <text>が2つ(Georgia系のセリフ体とArial系のサンセリフ体を指定) | なし | 正常 | 正常 |
LaoZhang APIのコーヒーアイコン(Flare、gpt-6.1-terra) | 3,791バイト | path 12、ellipse 5、rect 2、グラデーション5、塗り13色 | 文字なし(<title>は中国語) | なし | 正常 | 正常 |
同じプロンプトでも、Flare版は社名「Field & Flour」をパスとして描き、Sunburst版は生きた文字のまま書いていました。Sunburst版はアウトライン化されていないので、Georgiaが入っていない環境では別のセリフ体で表示されます。3ファイルだけの結果なので、モデルごとに文字の扱いが決まっているとは言えません。自分のファイルで毎回1番目のチェックをしてください。

GPT Image 2.6のSVG出力でよくある質問
手持ちのPNGやロゴをGPT Image 2.6でSVGに変換できますか?
2026年11月5日時点ではできません。OpenAIの画像生成ガイドによると、SVGを出力できるのは新規生成の/v1/images/generationsだけで、編集用の/v1/images/editsはSVGを出力しません。またSVGファイルを編集の入力画像として渡すこともできないため、手元のSVGをAPIで描き直すこともできません。既存のロゴは、プロンプトで形を言葉にして新しく生成するか、トレース機能のあるデザインツールでベクター化します。
GPT Image 2.5から2.6に乗り換えるべきですか?
SVGやGIFが必要なら2.6を使うしかありませんが、通常の画像は品質設定によって費用の差が大きく変わります。high以上は同額でlowとmediumは2.6のほうが高いといった比較は、GPT Image 2.6と2.5の違い:high以上は同額、low/mediumは3〜4倍で扱っています。
GPT Image 2.6のGIF出力やマークアップ編集もAPIで使えますか?
使えます。アニメーションGIFは同じ/v1/images/generationsでoutput_format: "gif"を指定し、手順はGPT Image 2.6のGIFをAPIで作る方法にあります。画像に印を付けて直したい場所を示す編集はGPT Image 2.6のマークアップ編集をAPIで使う方法を参照してください。





