用 GPT Image 2.5 Flare 和 Sunburst 生成并编辑图像
apiToken.sale 上的 GPT Image 2.5 是两个 Images HTTP id:日常更快的 gpt-image-2.5-flare,以及更精细、更慢的 gpt-image-2.5-sunburst。路由仍是 POST /v1/images/generations 与 /v1/images/edits,密钥与预付余额与 GPT Image 2 相同。官方费率一致。本文记录实测转换,而不是官方 xhigh/max/2K/4K。
·
一个请求看懂生成路由
GPT Image 2.5 Flare 与 Sunburst 通过 OpenAI 兼容接口调用:向 /v1/images/generations 发送提示词,model 填 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst,带上 Authorization: Bearer,就能拿回一张 PNG。不需要单独图像套餐或第二把密钥。Flare 更快,适合日常生成;Sunburst 更慢,偏向高精度编辑。官方 token 费率与 GPT Image 2 相同。
curl https://router.apitoken.sale/v1/images/generations \
-H "Authorization: Bearer $APITOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "A precise technical cutaway of a lunar rover",
"quality": "low"
}'官方 GPT Image 字段会被接受并转换到本 ChatGPT 池。多余键(user、stream、moderation、style)会被忽略,而不是 400。干净提示词下 quality 为 medium/high/xhigh/max/auto 时仍按本池 low 档生成。output_format 为 jpeg 或 webp 时会把原生 PNG 本地转码。response_format=url 会被忽略,响应始终是 b64_json。n 可为 1–10。background=auto 视为 opaque;transparent 会加上抠图句并请求真实 PNG alpha——请检查文件;没有 alpha 仍是 HTTP 200。JSON background=transparent 不是 alpha 锁。size 选择比例,不是像素锁。2048x2048 和 3840x2160 映射到 1:1 和 16:9;PNG 仍约 1.57 百万像素,响应里的 size 是真实 IHDR。
| size | Proportion | Steer target (inspect the PNG) |
|---|---|---|
| omitted or auto | no size steer | typically ~1254×1254; not a lock |
| 1024x1024, 1:1, 2048x2048 | 1:1 | 1254×1254 |
| 1536x1024 or 3:2 | 3:2 landscape | 1536×1024 |
| 1024x1536 or 2:3 | 2:3 portrait | 1024×1536 |
| 4:3 | 4:3 | 1448×1086 |
| 16:9, 2048x1152, 3840x2160 | 16:9 | 1672×941 |
| 9:16, 2160x3840 | 9:16 | 944×1665 |
1024x1024 是正方形档,不是锁定 1024 像素。原生显式 WIDTHxHEIGHT 仍约 1.57 MP。表格是客户比例前缀目标。若 PNG 头与档位不符,接口仍返回 HTTP 200 和 PNG。
POST /v1/images/* 非流式。n=2..10 会跑连续原生回合并返回相应长度的 data[]。流式预览帧请用 Responses image_generation 的 partial_images。Responses 结算走文本模型,不是五段图像费率。
用最多五张 PNG、JPEG 或 WebP 参考图编辑现有图像
编辑走另一条路由、另一种 content type。向 /v1/images/edits 发送 multipart/form-data,model 用 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst,附上提示词和一到五张 PNG、JPEG 或 WebP(每张 ≤50 MB)。需要更高精度时用 Sunburst;更在意延迟时用 Flare。
curl https://router.apitoken.sale/v1/images/edits \ -H "Authorization: Bearer $APITOKEN_API_KEY" \ -F "model=gpt-image-2.5-flare" \ -F "prompt=Replace the backdrop with a seamless light-gray studio sweep" \ -F "image=@packshot.png" \ -F "image=@brand-swatch.png"
- 每张参考图重复字段名 image,或发送 image[]。此路由忽略 multipart mask——局部重绘请用 Responses input_image_mask。
- 参考图为 PNG、JPEG 或 WebP,每张不超过 50 MB。GIF、HEIC 及其他类型会被拒绝。
- 每次调用最多五张参考图。
- 每张参考图都按图像输入计费。
- 响应结构与生成一致:b64_json 加上实际 size/background/output_format。jpeg/webp 是原生 PNG 的本地转码。
局部重绘与 Responses image_generation
/v1/images/edits 的 multipart mask 会被忽略,以便 SDK 仍得到整图编辑。若要只改一部分——或从 GPT 文本模型调用 hosted image_generation——请用 POST /v1/responses。编辑时把源 PNG 放在 input 的 input_image,并添加 tools: [{type:"image_generation", model:"gpt-image-2.5-flare", …}]。蒙版用 input_image_mask.image_url 设为 PNG data URL。不支持 file_id。
import base64, os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APITOKEN_API_KEY"],
base_url="https://router.apitoken.sale/v1",
)
def png_url(path):
return "data:image/png;base64," + base64.b64encode(Path(path).read_bytes()).decode()
response = client.responses.create(
model="gpt-5.6-sol",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Change only the masked region."},
{"type": "input_image", "image_url": png_url("photo.png")},
],
}],
tools=[{
"type": "image_generation",
"model": "gpt-image-2.5-flare",
"output_format": "webp",
"partial_images": 2,
"input_image_mask": {"image_url": png_url("mask.png")},
}],
)- 在 /v1/responses 或 /v1/chat/completions 上使用 GPT 文本模型(例如 gpt-5.6-sol),不要用 gpt-image-2.5-flare——该 id 属于 Images 路由。把图像 id 发到文本 lane 会得到 400 并指出 /v1/images/*,不是 404。
- 源图和蒙版都必须是 data:image/png;base64,… URL。
- Responses image_generation 转发 output_format jpeg 或 webp,以及 partial_images 1..=3。
- background=transparent 会改写为 opaque,input_fidelity 会被丢弃。2026-09-08 的 Responses 矩阵保持 RGB。
- Responses 结算走文本模型,不是五段图像费率。Images HTTP 结算仍用 native /images/* usage。
- 不要把 Images HTTP 与 Responses image_generation 两套契约混用。
用官方 OpenAI SDK 调用
可以继续用官方 OpenAI SDK。base_url 和 api_key 与文本模型相同。多余键会被忽略。size=2048x2048 会转成正方形比例;PNG 不是 2K 像素——请读响应里的 size。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APITOKEN_API_KEY"],
base_url="https://router.apitoken.sale/v1",
)
result = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A clean isometric diagram of a wind turbine",
quality="low",
size="3:2",
)
png_bytes = result.data[0].b64_json # decode base64 and write to disk编辑场景下同一个客户端暴露 images.edits。把模型字符串换成 gpt-image-2.5-sunburst 即可使用更慢、更高精度的 id。
一次生成的真实成本
不存在诚实的「每张图固定价」。GPT Image 2.5 按 token 计费,费率与 GPT Image 2 相同:文本输入、图像输入、缓存输入和图像输出。总价以 API 返回的最终 usage 为准。
| Usage leg | Official per 1M tokens | Price here |
|---|---|---|
| Fresh text input | $5 | $2.50 |
| Fresh image input | $8 | $4 |
| Cached text input | $1.25 | $0.625 |
| Cached image input | $2 | $1 |
| Image output | $30 | $15 |
- 每条腿都享受统一的 50% B2C 折扣;缓存文本和图像输入在折扣前按普通输入费率的 25% 计费。
- 读取每次响应里的 usage 对象,并把它和资产一起记录。
- gpt-image-2.5-flare 是 gpt-image-2.5-flare-2026-09-08 的别名;gpt-image-2.5-sunburst 是 gpt-image-2.5-sunburst-2026-09-08 的别名。
- 2026-09-09 的生产 low canary 对 Flare 和 Sunburst 都返回 HTTP 200、RGB PNG 1254×1254、515 个 image-output token。
不要拿几张测试图就标单图价格。抠图/logo 提示词即使 JSON 写 quality=auto、background=opaque,也可能把 echo quality 升到 medium(约 2058 token)。
当前图像接口的限制
按这条 Codex 池今天可验证的行为做规划。官方客户端字段会转换到该信封:
- POST /v1/images/* 非流式。n=1..10 会跑同样次数的连续原生回合并全部计费。n>10 截到 10。
- 多余 JSON 键会被忽略。openai/gpt-image-2.5-flare 会被接受为 gpt-image-2.5-flare。GET /v1/models 列出六个 Images API id 和图像路由。
- size 是比例:2K/4K 字符串映射到 1:1 或 16:9,PNG 仍约 1.57 百万像素。干净提示词下 quality medium/high/xhigh/max/auto 仍是 low。jpeg/webp 是本地转码。background=transparent 是抠图提示,不是 alpha 锁。
- 已解析 PNG 且有终态 usage 时为 HTTP 200,即使 size 或 alpha 与 steer 不符。
- 编辑接受一到五张 PNG、JPEG 或 WebP(每张 ≤50 MB)。image[] 等同 image。mask 会被忽略。
- 图像用量和 GPT、Claude、Gemini 调用从同一个预付余额扣费。
若要对比,GPT Image 2 在相同路由上使用同一套转换;Gemini 侧图像路由另有文档。
在共享余额上控制图像开销
图像输出是最贵的一条腿,批量循环又会把它成倍放大,所以给图像 worker 单独发一把 API 密钥,并设置生命周期花费上限。
- 01在后台为图像流水线创建一把专用密钥,把它的生命周期花费上限设为批量预算。
- 02发送一次有界生成请求(上面的 curl)并确认返回的 PNG 以及带预期计费项的 usage。
- 03用真实提示词集跑一小圈,记录每个资产的终态 usage,并与后台扣费核对。
- 04然后才放大到全量批量,并让密钥上限对齐你实际批准的预算。
常见问题
GPT Image 2.5 API 使用哪个端点?
新图用 POST /v1/images/generations,基于参考图的编辑用 POST /v1/images/edits,都在 OpenAI 兼容基址 https://router.apitoken.sale/v1,请求头为 Authorization: Bearer。
Flare 和 Sunburst 有什么区别?
gpt-image-2.5-flare 是更快的日常 id。gpt-image-2.5-sunburst 更精细、更慢。两者使用同一套 Images HTTP 转换、同一套五段费率和同一个预付余额。
GPT Image 2.5 能编辑现有图像吗?
能。edits 路由接受带一到五张 PNG、JPEG 或 WebP(每张 ≤50 MB)的 multipart/form-data 和提示词。重复字段名 image,或发送 image[]。multipart mask 会被忽略;局部重绘用 Responses input_image_mask。
如何只重绘图像的一部分?
调用 POST /v1/responses,使用 GPT 文本模型、作为 input_image 的源 PNG,以及 tools: [{type:"image_generation", model:"gpt-image-2.5-flare", input_image_mask:{image_url:"data:image/png;base64,…"}}]。也可设置 output_format jpeg|webp 和 partial_images 1..=3。不要把 mask 发到 /v1/images/edits,也不要使用 file_id。
准确的 model ID 是什么?
用 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst,它们分别是不可变快照 gpt-image-2.5-flare-2026-09-08 与 gpt-image-2.5-sunburst-2026-09-08 的别名。
GPT Image 2.5 每张图多少钱?
没有固定单图价格:按终态 usage 计费,文本输入官方 $5/M、图像输入 $8/M、缓存输入为新鲜费率的 25%、图像输出 $30/M,本站每条腿再打五折,即 $2.50、$4、$15。费率与 GPT Image 2 相同。生产 low canary 使用了 515 个 image-output token。
GPT Image 2.5 支持透明背景、xhigh 或 2K/4K 像素吗?
在 POST /v1/images/* 上:background=transparent 请求带 alpha 的抠图 PNG;omit/opaque/auto 为实底;没有 alpha 仍是 HTTP 200。JSON transparent 不是 alpha 锁。干净提示词下 quality xhigh/max/medium/high/auto 仍是 low。size 是比例,不是 2K/4K 像素。stream 会被忽略。
图像生成需要单独的密钥或余额吗?
不需要。它使用与所有其他受支持模型相同的 Bearer 密钥和预付余额。