# GPT Image 2.6 API 导出 SVG 矢量图：svg.model 怎么填、一张多少钱

> GPT Image 2.6 SVG 收两笔钱：中间位图和写代码的模型。1024 图标 medium 在 OpenAI 约 $0.054–0.057，复杂场景常两三分钟后 502。

- URL: https://blog.laozhang.ai/zh/posts/gpt-image-2-6-svg-output
- Published: 2026-11-05
- Updated: 2026-11-05
- Author: LaoZhang AI Team (https://blog.laozhang.ai/zh/about)
- Topic: API 接入指南
- Tags: GPT Image 2.6, SVG, 矢量图, Flare, Sunburst, 图片生成 API, OpenAI API

---
GPT Image 2.6 用 API 导出 SVG 矢量图，是在 `POST /v1/images/generations` 上把 `output_format` 设成 `"svg"`，模型用 `gpt-image-2.6-flare` 或 `gpt-image-2.6-sunburst`，再加一个 OpenAI 指南里没写的 `svg` 对象，在 `svg.model` 里指定一个能看图的文本模型，比如 `gpt-6.1-terra`。返回的 `data[0].b64_json` 解码后就是 `.svg` 文件。截至 2026 年 11 月 5 日（发布第二天），`openai` Python 库从 3.46.0 起直接支持这个参数，更早的版本要用 `extra_body` 传。

SVG 不是图像模型直接画出来的。API 先让图像模型画一张中间位图，再让 `svg.model` 指定的文本模型看着这张图写出 SVG 代码，所以一次请求有两笔费用。按 OpenAI 官方价，一张 1024×1024 的图标在 `quality: "medium"` 下，中间位图约 $0.043，`gpt-6.1-terra` 写代码约 $0.011–0.014，合计约 $0.054–0.057。写作模型换成更贵的型号，第二笔会成倍增加。

它适合图标、logo 和简单插画。细节多的整幅场景，比如一整间咖啡店内景，在老张 API 文档团队的测试里多数等了两三分钟后收到 502；这类图留在 PNG 更省事。拿到文件后还要看一眼文字是活的 `<text>` 还是已经转曲：三份真实的 2.6 SVG 里两种情况都有，决定了你能不能直接改字。

## SVG 怎么来的：先画中间位图，再由写作模型写代码

GPT Image 2.6 的 SVG 输出分两段完成，两段各有自己的模型、参数和用量。[OpenAI 图片生成指南的 SVG 一节](https://developers.openai.com/api/docs/guides/image-generation#generate-svg-output)说，API 先生成一张 reference image，再用它产出 SVG。这里的 reference image 不是你上传的参考图：它是 API 内部用顶层 `model`（Flare 或 Sunburst）先画的一张位图，你不用传，响应里也拿不到，下文称它为中间位图。

第二段由一个文本模型完成，下文称写作模型（OpenAI 文档里叫 authoring model），就是 `svg.model` 填的那个。[OpenAI 开发者论坛的 SVG 讨论帖](https://community.openai.com/t/1412920)里，回帖者指出这一步是让一个带视觉能力的语言模型"看图写 SVG"，不是算法描摹。所以同一张中间位图交给不同的写作模型，出来的路径数量、细节和成功率都不一样，费用也按写作模型自己的单价算。

参数也按这两段分工。`quality` 和 `complexity` 只作用于中间位图：前者决定这张位图的画质和 token 数，后者按 [OpenAI 图片生成 API 参考](https://developers.openai.com/api/reference/resources/images/methods/generate)的说法控制"规划画面花多少计算"，在 SVG 输出里同样只管中间位图。`svg.reasoning.effort` 只管写作模型思考多少，和画面复杂度无关。响应里也有两块用量：`usage` 是图像模型的 token，`svg_usage` 是写作模型的 `input_tokens`、`output_tokens`、`reasoning_tokens` 和 `model`。

![SVG 生成分两段：图像模型按 quality 和 complexity 画中间位图，记入 usage；svg.model 指定的写作模型看图写 SVG 代码，记入 svg_usage](https://blog.laozhang.ai/posts/zh/gpt-image-2-6-svg-output/img/svg-two-stages.webp)

同一个 `output_format` 字段还能填 `"gif"` 生成循环动图，那是另一套参数，见 [GPT Image 2.6 用 API 生成 GIF](https://blog.laozhang.ai/zh/posts/gpt-image-2-6-gif-api)。

## 用 Python 或 curl 导出 SVG：从请求到存成 .svg 文件

能跑通的请求只比普通生图多两个字段：`output_format: "svg"` 和 `svg` 对象。下面以 OpenAI 直连为例，用老张 API 时只换 `base_url` 和 key，差别在后面的线路一节。

1. 升级 Python 库：`pip install -U "openai>=3.46.0"`。3.46.0 是 2026 年 11 月 5 日发布的版本，论坛回帖确认它把 `svg` 加成了正式参数。

2. 发请求并保存文件。超时建议放到 300 秒，因为失败的请求往往在两三分钟后才返回：

```python
import base64
from openai import OpenAI

client = OpenAI(timeout=300)  # 读取环境变量 OPENAI_API_KEY

result = client.images.generate(
    model="gpt-image-2.6-flare",
    prompt="一个扁平风格的咖啡杯图标，杯子冒着热气，杯身上有一片绿色叶子图案，暖棕色和奶白色配色",
    output_format="svg",
    size="1024x1024",
    quality="medium",
    svg={"model": "gpt-6.1-terra"},
)

with open("icon.svg", "wb") as f:
    f.write(base64.b64decode(result.data[0].b64_json))

print(result.usage)                         # 中间位图的用量
print(getattr(result, "svg_usage", None))   # 写作模型的用量
```

3. 如果暂时不能升级到 3.46.0，把 `svg={...}` 那一行换成 `extra_body={"svg": {"model": "gpt-6.1-terra"}}`，其余不变。论坛里最早跑通的示例就是这种写法，用的写作模型是 `gpt-6.1-sol`。

4. 不用 SDK 时直接发 HTTP，再用一行 Python 解码：

```bash
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": "一个扁平风格的咖啡杯图标，杯子冒着热气，杯身上有一片绿色叶子图案，暖棕色和奶白色配色",
    "output_format": "svg",
    "size": "1024x1024",
    "quality": "medium",
    "svg": {"model": "gpt-6.1-terra"}
  }' -o svg.json

python3 -c "import base64,json; d=json.load(open('svg.json')); open('icon.svg','wb').write(base64.b64decode(d['data'][0]['b64_json']))"
```

SVG 请求有几条硬限制，都写在 OpenAI 指南和 API 参考里：`n` 只能是 1，不支持 `stream`、`partial_images`、`output_compression` 和 `prompt_rewriter`，这些字段要从请求里删掉；只有生成接口能出 SVG。需要透明底时可以加 `background: "transparent"`，SVG 也支持。

`svg` 对象要不要写，取决于账号。API 参考的原话是：开启了 SVG 模型选择的账号必须提供 `svg.model`，没开启的要省略整个对象；论坛回帖者观察到的是"必填"。哪些账号属于哪种情况，OpenAI 没有公开说明。所以先按上面的写法带上 `svg.model`，如果报错说不接受这个对象，再去掉它重试。`svg.reasoning.effort` 可以不写，省略时用写作模型自己的默认值。

## svg.model 填哪个：gpt-6.1-terra 7 次全成，gpt-5.5 细节最好也最贵

不确定时填 `gpt-6.1-terra`。OpenAI 的指南和 API 参考都没说该用哪个型号，也没写对写作模型有什么要求；OpenAI 开发者论坛的回帖者认为它得是高质量、支持视觉的语言模型。目前能看到的对比来自 [老张 API 的 GPT Image 2.5/2.6 接入文档](https://docs.laozhang.ai/api-capabilities/gpt-image-2-5)：文档团队 2026 年 11 月 5 日用同一个 1024 图标提示词直连 OpenAI，每个模型至少跑 3 次，结果如下。

*说明：[laozhang.ai 是我们自己的服务](https://blog.laozhang.ai/zh/about#laozhang)，其价格是平台报价，不是独立比较的结论。*

| `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。要注意两个名字很像的型号：`gpt-6.1-terra` 是 7/7，`gpt-5.6-terra` 是 0/3，复制时别填错。

这张表只有一个提示词，费用会随画面变化很大。同一团队更早的测试里，简单 logo 和复杂插画让写作模型输出的 token 能差到约 300 倍，所以 `gpt-5.5` 的 $0.09–0.16 只对简单图标成立。把 `svg.reasoning.effort` 调到 `high` 也要谨慎：同一测试里它用掉的 token 是默认档的 2.6–14 倍，图标用默认档就够。需要更多细节时，表里有依据的做法是换 `gpt-5.5`；调高推理档能不能换来更好的图，这组测试没有给出结论，只给出了更高的用量。

## 一张 SVG 多少钱：OpenAI 约 $0.054–0.057，免费写作模型约 $0.043

按 [OpenAI 指南的计费说明](https://developers.openai.com/api/docs/guides/image-generation#generate-svg-output)，中间位图按图像模型的单价收费，写代码的 token 按写作模型的单价收费，总价取决于两边各用了多少 token。GPT Image 2.6 的图像输出是每百万 token $30（[OpenAI API 价格页](https://developers.openai.com/api/docs/pricing)），1024×1024 的中间位图在 `low` 档约 824 个输出 token，`medium` 档约 1,449 个，这两个数来自老张 API 文档团队 2026 年 11 月 5 日的单图测试。

| 线路 | `quality` | `svg.model` | 中间位图 | 写 SVG | 每张合计 |
| --- | --- | --- | --- | --- | --- |
| OpenAI 直连 | low | `gpt-6.1-terra` | 约 $0.025 | 约 $0.011–0.014 | 约 $0.036–0.039 |
| OpenAI 直连 | medium | `gpt-6.1-terra` | 约 $0.043 | 约 $0.011–0.014 | 约 $0.054–0.057 |
| OpenAI 直连 | medium | `gpt-6.1-sol` | 约 $0.043 | 约 $0.02–0.04 | 约 $0.06–0.08 |
| OpenAI 直连 | medium | `gpt-5.5` | 约 $0.043 | 约 $0.09–0.16 | 约 $0.13–0.20 |
| 老张 API 官方转发 | low | 省略，默认 `gpt-6.1-terra` | 约 $0.025 | 0 | 约 $0.025 |
| 老张 API 官方转发 | medium | 省略，默认 `gpt-6.1-terra` | 约 $0.043 | 0 | 约 $0.043 |
| 老张 API 官方转发 | 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；写 SVG 一列取上一节的实测范围。提示词本身的文本输入不到 $0.001，表里忽略了。`quality` 一定要写：老张 API 文档记录过，不传时 Flare 会按提示词自己挑档位，一张细节多的 1024 图能用到约 5,800 个 token。

老张 API 官方转发分组的计费规则在上面那份接入文档里：中间位图按 `usage` 以官方价计，写作模型用默认的 `gpt-6.1-terra` 或另外 8 个低价模型（`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`）时不收写作费；换成 `gpt-5.5`、`gpt-6-sol` 这类模型，按官方价折算成文本输入 token，记在 `svg_usage.billed_as_text_input_tokens`，免费模型这一项是 0。

自己核算时，从响应里取两块数：`usage` 里的图像输出 token 乘 $30/1M，再按 `svg_usage` 里的输入、输出 token 和写作模型的价格算第二笔。普通 PNG 各画质档在 2.6 和 2.5 上的价格差，见 [GPT Image 2.6 和 2.5 区别：low/medium 贵 3–4 倍，high 档起同价](https://blog.laozhang.ai/zh/posts/gpt-image-2-6-vs-2-5)。

## 老张 API 哪条线路能出 SVG：只有 OpenAI Official 分组

在老张 API 上要出 SVG，令牌必须属于 `OpenAI Official` 或 `OpenAI Official Enterprise` 分组，模型 ID 用不带后缀的 `gpt-image-2.6-flare` 或 `gpt-image-2.6-sunburst`。按次计费的 `-vip` 和 `-web` 线路不出 SVG。2026 年 11 月 5 日用默认分组的 key 做了三次探测，三次都是非 200 响应，不扣费：

- `gpt-image-2.6-flare-vip` 加 `output_format: "svg"`：返回 400，`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` 加 `output_format: "svg"`：返回 400，`SVG output is not supported on this route; use gpt-image-2.6-flare / gpt-image-2.6-sunburst in the OpenAI Official group.`
- 默认分组的 key 直接调 `gpt-image-2.6-flare`：返回 503，`Current group default has no available channels for model gpt-image-2.6-flare`。

所以看到第三条报错，不是模型名写错了，是 key 的分组不对，要在控制台换一个 OpenAI Official 分组的令牌。这组探测只能证明哪条线路会拒绝，没有拿到 SVG；前面表里的成功率、耗时和单价来自文档团队用官方转发和直连 OpenAI 的测试。

换好分组后，请求体和上面 OpenAI 的写法一样，`base_url` 改成 `https://api.laozhang.ai/v1`。省略 `svg.model` 时网关默认用 `gpt-6.1-terra`，这是老张 API 的默认值，不是 OpenAI 的。写作模型填了图像模型会返回 `model_not_found`；填了不支持的文本模型返回 `unsupported_svg_model`，不扣费。OpenAI 返回 502 时网关会重试或切换，全部失败时一般返回 `svg_generation_failed`，同样不扣费，也不收中间位图的钱。

*说明：[laozhang.ai 是我们自己的服务](https://blog.laozhang.ai/zh/about#laozhang)，其价格是平台报价，不是独立比较的结论。*

## 等了两三分钟还失败：细节多的整幅场景会 502

SVG 失败多半跟画面复杂度有关，跟参数无关。老张 API 文档团队 2026 年 11 月 5 日用一个"整间咖啡店内景"的提示词测试，`gpt-6.1-terra` 4 次全部失败，每次都在 150–170 秒后收到 OpenAI 的 502；换其他写作模型，复杂提示词也大多在 30–200 秒后 502，而简单图标一直稳定。文档对此的解释是：画面越满，写作模型要写的 SVG 代码越长，费用和等待时间都跟着涨。

判断一张图该不该走 SVG，看它是不是"几块形状加几种颜色"。图标、logo、扁平插画这类图适合 SVG，测试里生成稳定，文件也只有几 KB；照片感的画面、带光影和大量纹理的整幅场景，失败率高，就算成功，代码也会很长，改起来未必比位图方便。后一类留在 PNG 更合适。如果你要的其实是一张能叠到其他背景上的透明位图，用 `output_format: "png"` 加 `background: "transparent"`，生成后怎么判断真假透明见 [GPT Image 透明背景变棋盘格：真假透明怎么判断、怎么修](https://blog.laozhang.ai/zh/posts/gpt-image-transparent-background-checkerboard)。

遇到复杂画面 502，老张 API 文档给的办法是稍后重试或简化提示词。简化的一种做法是把场景拆成几个单独的图标分别生成，再在矢量编辑器里拼起来，每一张都落在测试里稳定的那一类。

## 矢量 logo 提示词怎么写：形状少、颜色少、留足边距

写矢量 logo 的提示词，要让中间位图本身就"像矢量图"，写作模型才能用少量路径还原它。[OpenAI 提示词指南里的可复用 logo 示例](https://developers.openai.com/api/docs/guides/image-prompting#generate-svg-output)给了几条：写清品牌名和构成标志的形状；要求干净的、类似矢量的形状，轮廓鲜明，负空间均衡；扁平设计、少描边、非必要不用渐变；完全透明背景，单个居中的 logo，四周留足边距。同一个提示词加上 `output_format="svg"` 和 `n=1` 就能出 SVG。

"非必要不用渐变"对 SVG 的影响很直接。老张 API 文档里那张咖啡图标，示例提示词是"一个扁平风格的咖啡杯图标……暖棕色和奶白色配色"，没提背景和渐变，生成的文件里有 5 个渐变、13 种填充色，还铺了一整块深色渐变背景；OpenAI 示例的 Flare logo 按上面的写法提示，只用了 2 种填充色。颜色越少，后面改色越省事。通用的提示词写法见 [GPT Image 2.6 提示词写法](https://blog.laozhang.ai/zh/posts/gpt-image-2-6-prompt-guide)。

## 拿到的 SVG 能不能直接改：三份 2.6 文件的检查结果

能改，但要先看文字有没有转曲。2026 年 11 月 5 日，用 rsvg-convert 在 Mac 上检查了三份真实的 GPT Image 2.6 SVG：OpenAI 指南里同一提示词生成的 [Flare 版 Field & Flour logo](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-flare.svg) 和 [Sunburst 版](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-sunburst.svg)，以及老张 API 文档里那张用 Flare 和默认 `gpt-6.1-terra` 生成的咖啡图标。

| 文件 | 大小 | 主要元素 | 文字 | 位图、外链、脚本 | 64 px 和 2048 px 渲染 | 改一个色值 |
| --- | --- | --- | --- | --- | --- | --- |
| Flare，Field & Flour | 4,976 字节 | 12 个 path、1 个 circle、5 个 g | 字标已转曲，全是路径 | 无 | 正常 | 生效，该色值 1 处 |
| Sunburst，Field & Flour | 4,571 字节 | 24 个 path、1 个 rect、2 个 text | 2 个活的 `<text>`，没转曲 | 无 | 正常 | 生效，该色值 2 处 |
| Flare，咖啡图标 | 3,791 字节 | 12 个 path、5 个 ellipse、2 个 rect、5 个渐变 | 无文字，`<title>` 用提示词的语言 | 无 | 正常 | 生效，该色值 1 处 |

三份的 `viewBox` 都是 `0 0 1024 1024`，都不到 5 KB。分组也有可读的 id，比如 `loaf`、`steam`、`cup`、`handle`，在编辑器里能按名字找到面包、热气、杯子。差别在文字：Sunburst 版的 "Field & Flour" 写的是 `font-family="Georgia, 'Times New Roman', serif"`，"BAKERY" 是 `Arial, Helvetica, sans-serif`，打开文件的电脑装了什么字体，字就长什么样，好处是能直接改字；Flare 版把字画成了路径，在哪里打开都一样，但改字要重画。三份文件不足以说明 2.6 总会或从不转曲，每份新文件都要自己看。Figma、Illustrator 的导入没有实测，从结构看，三份都只用了 path、基本图形、分组和渐变这些基础元素。

![Flare 版 logo 字标已转曲全是路径，Sunburst 版保留 2 个活的 text 元素，用 grep -c 统计 text 标签即可分辨](https://blog.laozhang.ai/posts/zh/gpt-image-2-6-svg-output/img/svg-text-check.webp)

拿自己的文件照下面检查一遍，五步都在终端里完成（`rsvg-convert` 在 Mac 上用 `brew install librsvg` 安装）：

1. 看文字有没有转曲：`grep -c "<text" icon.svg`。结果大于 0 说明有活文字，要确认 `font-family` 里的字体在用的地方有；结果是 0 说明文字已经转曲，或者图里本来就没字。
2. 看有没有位图和外部资源：`grep -n -E "<image|data:|<script|<foreignObject" icon.svg` 应该没有输出。OpenAI 说明返回的是静态矢量内容，不含脚本、外部资源和内嵌位图；有输出就别直接放进网页。
3. 小尺寸和大尺寸各渲染一次：`rsvg-convert -w 64 icon.svg -o icon-64.png` 和 `rsvg-convert -w 2048 icon.svg -o icon-2048.png`，看 64 px 时细线和小字是否还认得出。
4. 列出用了哪些颜色：`grep -o -i -E "#[0-9a-f]{6}" icon.svg | sort | uniq -c`。颜色太多、或者有一整块背景色，说明提示词该收紧。
5. 改一个色值再渲染：`sed 's/#70371c/#1f4fd1/g' icon.svg > icon-blue.svg`，把 `#70371c` 换成你文件里的色值。注意同一个色值可能出现在好几处，Sunburst 样本就有 2 处，全部替换才能整体改色。

## 能不能把现有 PNG 转成 SVG，或者编辑 SVG：两条都不行

GPT Image 2.6 目前不能把你手上的 PNG 或旧 logo 转成 SVG，也不能编辑已经生成的 SVG，原因各不相同。SVG 只能从 `POST /v1/images/generations` 出，这个接口只吃文字提示词，不收你的图片；能收图片的编辑接口 `/v1/images/edits` 又不支持 SVG 输出。反过来，SVG 文件也不能作为编辑接口的输入图：OpenAI 指南写明 SVG 不是编辑接口支持的位图输入，API 参考也写着"SVG edits are not supported"。

所以要改一个已经生成的 SVG，有两条路：它本身是文本，小改动（换色、删一个分组、调字号）直接改代码或在矢量编辑器里改；大改动就改提示词重新生成。想在一张位图上圈出某处让模型改，那是编辑接口的 markup 功能，输出的是位图，做法见 [GPT Image 2.6 用 API 做 markup 圈选编辑](https://blog.laozhang.ai/zh/posts/gpt-image-2-6-image-markup-api)。

## 参考来源

本文引用的外部页面，按正文出现顺序排列。最后更新于 2026-11-05。

- [OpenAI 图片生成指南的 SVG 一节](https://developers.openai.com/api/docs/guides/image-generation) (developers.openai.com)
- [OpenAI 开发者论坛的 SVG 讨论帖](https://community.openai.com/t/1412920) (community.openai.com)
- [OpenAI 图片生成 API 参考](https://developers.openai.com/api/reference/resources/images/methods/generate) (developers.openai.com)
- [OpenAI API 价格页](https://developers.openai.com/api/docs/pricing) (developers.openai.com)
- [OpenAI 提示词指南里的可复用 logo 示例](https://developers.openai.com/api/docs/guides/image-prompting) (developers.openai.com)
- [Flare 版 Field & Flour logo](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-flare.svg) (developers.openai.com)
- [Sunburst 版](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-sunburst.svg) (developers.openai.com)
