工具接入

用 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。

sizeProportionSteer target (inspect the PNG)
omitted or autono size steertypically ~1254×1254; not a lock
1024x1024, 1:1, 2048x20481:11254×1254
1536x1024 or 3:23:2 landscape1536×1024
1024x1536 or 2:32:3 portrait1024×1536
4:34:31448×1086
16:9, 2048x1152, 3840x216016:91672×941
9:16, 2160x38409:16944×1665

1024x1024 是正方形档,不是锁定 1024 像素。原生显式 WIDTHxHEIGHT 仍约 1.57 MP。表格是客户比例前缀目标。若 PNG 头与档位不符,接口仍返回 HTTP 200 和 PNG。

POST /v1/images/* 非流式。n=2..10 会跑连续原生回合并返回相应长度的 data[]。流式预览帧请用 Responses image_generation 的 partial_images。Responses 结算走文本模型,不是五段图像费率。

另见: 用 GPT Image 2 API 生成和编辑图像

用最多五张 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 legOfficial per 1M tokensPrice 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)。

GPT Image 2 成本模型(费率相同)

当前图像接口的限制

按这条 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 密钥,并设置生命周期花费上限。

  1. 01在后台为图像流水线创建一把专用密钥,把它的生命周期花费上限设为批量预算。
  2. 02发送一次有界生成请求(上面的 curl)并确认返回的 PNG 以及带预期计费项的 usage。
  3. 03用真实提示词集跑一小圈,记录每个资产的终态 usage,并与后台扣费核对。
  4. 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 密钥和预付余额。

通过 Google 或 GitHub 创建密钥,用 $5 平台欢迎奖励余额测试网关。