GPT Image 2.5

通过异步任务或 OpenAI 兼容图片端点,使用 GPT Image 2.5(flare / sunburst)生成和编辑图片。

GPT Image 2.5 支持文生图和图生图,最多可传 16 张参考图片,并提供 OpenAI Images 兼容端点。相比 GPT Image 2,quality 增加了 xhigh、max 两档。

模型信息

项目值
模型 IDgpt-image-2.5-flare、gpt-image-2.5-sunburst
异步任务端点POST /v1/router/task/create
兼容端点POST /v1/images/generations、POST /v1/images/edits
任务类型Txt2Img、Img2Img

API Key 渠道

GPT Image 2.5 的 API Key 授权仅支持官方API 中转。调用方传入 "model":"gpt-image-2.5-flare" 或 "model":"gpt-image-2.5-sunburst",无需也不应传入内部路由模型 ID;公开端点、请求字段和任务 ID 规则与 gpt-image-2 一致。

任务流程

  1. 准备输入素材。 图生图输入必须是公网可直接访问的 HTTPS URL,最多 16 个。下文的 OpenAI 兼容编辑端点也支持 multipart 上传 png/jpg/webp 文件。本地文件、Base64 / Data URL 或已有远程 URL,可以通过 U-Token 通用币 文件上传 转为公开 fileUrl。不得直接传入 asset://、s3://、file:// 或内网地址。
  2. 创建异步任务。 将下文说明的 task、model 和 input 字段发送到 POST /v1/router/task/create。所有受支持的媒体模型都会立即返回 tsk_* 格式的平台 task_id。GPT Image 2.5 会忽略兼容旧客户端传入的顶层 mode。可选的 callback_url 会在任务结束时接收签名回调,见媒体任务回调。这个地址不会转发给上游。
  3. 轮询任务。 保存返回的 ID,并每 3~5 秒调用一次 GET /v1/router/tasks/{task_id},直到任务进入终态。如需停止排队中或处理中的任务,将 {"task_id":"tsk_..."} 发送到 POST /v1/router/task/stop。API Key 只能查询或取消同一买家创建的任务。
  4. 按需使用 OpenAI 兼容端点。 文生图请求发送到 POST /v1/images/generations;上传本地 multipart 图片进行图生图时使用 POST /v1/images/edits。两个接口都不预扣。图片转存和 Token 结算成功后才返回结果;response_format="url" 返回 URL,response_format="b64_json" 返回 Base64。任务、转存或结算失败时返回 OpenAI 兼容错误,最长等待 30 分钟。
状态含义
0排队中——已提交,等待调度
1处理中——模型正在生成
2已完成——结果 URL 通常位于 results[].urls;cost 是你的积分价格
3失败——不记录 Token 费用
4已取消——不记录 Token 费用

查询异步任务时,失败响应统一为中性错误,不暴露上游详情。请使用 Provider error (request id: aitk-...) 中的 request id 关联服务端日志;不要依赖 error_message、fail_reason 或 message 获取上游诊断。GPT Image 2.5 的所有入口都只按成功终态的 Token 用量计费;失败或取消不会产生 Token 费用。

所有媒体请求都要求媒体可用余额至少为 1 积分;可用余额已扣除图片挂账。若结算时完整后付费金额超过可用余额,网关会收取当时可用金额(至少 1 积分)并交付结果;若可用余额不足 1 积分,则等待后续重试结算且不会交付结果。

结果 URL 可能过期,请及时下载并保存。

文生图和图生图都使用 model="gpt-image-2.5-flare" 或 model="gpt-image-2.5-sunburst"。通用异步任务端点会忽略顶层 mode,并从 input 读取原生图片参数。input.resolution 可省略、设为 auto,或使用 1024x1024 这类像素尺寸;input.quality 支持 low、medium、high、xhigh、max、auto,默认 auto。异步任务不支持 input.aspect_ratio,传入会返回 HTTP 400。图生图 images 最多接受 16 个公网 HTTPS URL。

这些字段适用于 POST /v1/router/task/create。下方 OpenAI 兼容端点使用对应的官方字段名,例如 size、quality、background 和 output_format。

任务请求参数

参数类型必填说明
taskstring是文生图用 Txt2Img,图生图用 Img2Img
modelstring是固定为 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst
modestring否兼容旧客户端;GPT Image 2.5 会忽略此字段
input.promptstring是图片生成或编辑提示词
input.imagesstring[]图生图是1–16 个公网 HTTPS 图片 URL
input.resolutionstring否auto 或 1024x1024 这类像素尺寸,默认 auto
input.aspect_ratiostring否不支持;传入会返回 HTTP 400
input.qualitystring否low、medium、high、xhigh、max 或 auto,默认 auto
input.backgroundstring否auto、opaque 或 transparent
input.output_formatstring否png、jpg 或 webp;作为原生 Images 参数透传给上游
callback_urlstring否可选的公网 HTTPS 回调地址。见媒体任务回调。

异步任务计费

所有 GPT Image 2.5 请求都只在成功终态后按 Token 用量计费。以下价格单位均为 USD / 1M tokens:

渠道文本输入缓存文本输入图片输入缓存图片输入图片输出
官方API 中转(standard)$5.000000$1.250000$8.000000$2.000000$30.000000

网关完成 Token 金额计算后,再应用现有平台结算、代理报价和用户价格系数。

异步任务不提供 response_format;任务查询固定返回平台 OSS URL。回调处理器或后台轮询器在结算前把上游 Base64 转存 OSS。完整输入、缓存输入和输出 Token 写入用量记录;任务落库与 GET /v1/router/tasks/{task_id} 使用同一精简结构,只返回 task_id、status、results[].urls 和成功后的 cost。查询只读取已保存结果,不会现场上传 Base64。转存或结算失败时结果不可交付、不可扣费,由查询或后台轮询幂等重试结算。

异步任务请求示例

# 文生图
curl https://u-token.ai/v1/router/task/create \
  -H "Authorization: Bearer sk-你的KEY" -H "content-type: application/json" \
  -d '{"task":"Txt2Img","model":"gpt-image-2.5-flare",
       "input":{"prompt":"a surreal painting of a banana in space","resolution":"1024x1024","quality":"xhigh","background":"transparent"}}'
# 图生图
curl https://u-token.ai/v1/router/task/create \
  -H "Authorization: Bearer sk-你的KEY" -H "content-type: application/json" \
  -d '{"task":"Img2Img","model":"gpt-image-2.5-sunburst",
       "input":{"prompt":"换成水彩风格","images":["https://输入图.png"],"resolution":"1024x1024","quality":"max","background":"transparent"}}'

任务创建响应

异步端点会立即返回平台 tsk_* ID:

{
  "code": 200,
  "message": "success",
  "task_id": "tsk_mabc1234_0123456789abcdef01234567"
}

保存 task_id,并每 3~5 秒请求 GET /v1/router/tasks/{task_id}。

异步任务尚未完成可交付结果时,results 为空且不返回 cost:

{
  "task_id": "tsk_mabc1234_0123456789abcdef01234567",
  "status": 1,
  "results": []
}

异步任务成功并完成 Token 结算后,查询使用以下精简任务结构。cost 是应用平台结算、代理报价和用户价格系数后的实际积分费用:

{
  "task_id": "tsk_mabc1234_0123456789abcdef01234567",
  "status": 2,
  "results": [{ "urls": ["https://assets.example.com/result.png"] }],
  "cost": 1.25
}

失败和取消任务的状态分别为 3、4,不返回 cost,results 通常为空;失败响应统一为中性错误,不暴露上游详情。请使用 Provider error (request id: aitk-...) 中的 request id 关联服务端日志。

OpenAI 兼容端点

POST /v1/images/generations 接受现有 OpenAI Images 文生图请求字段。POST /v1/images/edits 支持 multipart 图生图请求,也支持 JSON 请求中的 images 数组:每项为 {"image_url":"https://..."},可传 1–16 张公网 HTTP(S) 图片并按数组顺序作为参考图。multipart 的 image / image[] 字段仍支持本地 png/jpg/webp 文件,本地图片会先临时上传后再用于生成。

两个接口均不预扣,都从成功终态回调的 usage 结算。成功响应的顶层 size、quality、background、output_format 和 usage 等字段会保留,data[] 中的图片先转存 OSS,完成 Token 结算后才交付;响应不增加平台 task_id、status 或 cost 字段。失败时仍返回 OpenAI 兼容 error 对象。

model 填 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst。size 可为 "auto"、"1024x1024"、"1536x1024" 或其他 5 个值。

size 表示生成图片的尺寸。支持使用任意 WIDTHxHEIGHT 格式的分辨率,例如 1536x864。宽度和高度都必须能被 16 整除,请求的宽高比必须在 1:3 到 3:1 之间。高于 2560x1440 的分辨率属于实验性能力,最大支持分辨率为 3840x2160。请求尺寸还必须满足模型当前的总像素数和边长限制。GPT 图片模型支持的标准尺寸包括 1024x1024、1536x1024 和 1024x1536。

参数生成编辑必填默认值说明
modelJSON 字段multipart 字段否gpt-image-2填 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst,只支持这两个模型
promptJSON 字段multipart 字段是-非空图片生成或编辑提示词
sizeJSON 字段multipart 字段否auto"auto"、GPT 图片标准尺寸,或满足上述整除、宽高比、总像素数和边长限制的任意 WIDTHxHEIGHT 值
qualityJSON 字段multipart 字段否省略low、medium、high、xhigh 或 max;透传给上游,最终仍按实际 usage Token 计费
backgroundJSON 字段multipart 字段否省略auto、opaque 或 transparent;透传给上游
output_formatJSON 字段multipart 字段否省略作为 OpenAI Images 原生字段透传
nJSON 字段multipart 字段否1当前只支持 1
response_formatJSON 字段multipart 字段否urlurl 返回图片链接;b64_json 返回转存图片的标准 Base64;转存失败不交付结果
images-JSON 字段编辑必填(二选一)-1–16 项 {"image_url":"https://..."},仅允许公网 HTTP(S) URL,按数组顺序作为参考图
image / image[]-文件字段编辑必填(二选一)-1–16 个 png / jpg / webp 文件,每个不超过 30MB
mask----当前不支持,传入会返回 HTTP 400

兼容端点 Token 计费

POST /v1/images/generations 与 POST /v1/images/edits 均不预扣,从成功终态回调的 result.usage 结算。文本输入、图片输入和图片输出分别使用上方对应 Token 单价,编排 LLM Token 固定为 0。网关按 $1 = 100 credits 换算官方美元金额,再应用现有平台结算、代理报价和用户价格系数。usage 缺失、分项不一致、含非零文本输出 Token、转存失败、可用余额不足 1 积分或用量入账失败时不会交付成功结果。

每次调用都会按实际小数积分精确写入用量。兼容图片接口的未结算消费累计达到至少 10 credits 后,多条用量会合并为一个整数积分钱包账单;小数尾数保留在最早一条尚未结清的记录中,并结转到下一批。控制台「用量」页的「已结算」列显示每条记录已进入成功钱包账单的金额;结算前为 0,一批中的最后一条记录可能只结算部分金额。

网关最长等待 30 分钟的可入账终态回调;等待超时时返回 HTTP 504,任务继续运行并可通过 GET /v1/router/tasks/{task_id} 查询,后续成功回调仍会扣费。对于由兼容端点创建的任务,查询读取已落库的 URL 形态结果,不会重复执行同步响应的 b64_json 转换。

# 文生图生成
curl https://u-token.ai/v1/images/generations \
  -H "Authorization: Bearer sk-你的KEY" -H "content-type: application/json" \
  -d '{"model":"gpt-image-2.5-flare","prompt":"a surreal painting of a banana in space","quality":"xhigh","background":"transparent"}'
# 文生图:直接读取图片响应
import requests

result = requests.post(
    "https://u-token.ai/v1/images/generations",
    headers={"Authorization": "Bearer sk-你的KEY"},
    json={"model": "gpt-image-2.5-flare", "prompt": "a red apple", "size": "1024x1024", "quality": "xhigh", "background": "transparent"},
    timeout=31 * 60,
).json()
print(result["data"][0]["url"], result["usage"])

JSON 或 multipart 请求都可将 response_format 设为 b64_json,以直接取得图片原始字节的 Base64。图片转存不产生额外计费;任一图片转存失败时不会提前交付。

默认或 response_format="url" 时,兼容接口返回 URL 形态的图片响应,URL 始终指向平台 OSS:

{
  "background": "opaque",
  "created": 1785408333,
  "output_format": "png",
  "quality": "xhigh",
  "size": "1672x941",
  "data": [
    {
      "url": "https://assets.example.com/result.png"
    }
  ],
  "usage": {
    "input_tokens": 15,
    "input_tokens_details": {
      "cached_tokens": 0,
      "image_tokens": 0,
      "text_tokens": 15
    },
    "output_tokens": 196,
    "output_tokens_details": {
      "image_tokens": 196,
      "text_tokens": 0
    },
    "total_tokens": 211
  }
}
# 图生图 edits;image 最多重复传 16 个。
curl https://u-token.ai/v1/images/edits \
  -H "Authorization: Bearer sk-你的KEY" \
  -F image=@input.png -F prompt="换成水彩风格" -F size=1024x1024 \
  -F background=transparent
# 图生图:JSON 多图 URL,按 images 数组顺序作为参考图。
curl https://u-token.ai/v1/images/edits \
  -H "Authorization: Bearer sk-你的KEY" \
  -H "content-type: application/json" \
  -d '{"model":"gpt-image-2.5-sunburst","images":[{"image_url":"https://example.com/subject.png"},{"image_url":"https://example.com/style.jpg"}],"prompt":"保留主体,并应用参考图的风格","size":"1024x1024"}'
# 图生图 edits:直接读取图片响应
import requests

with open("input.png", "rb") as image:
    result = requests.post(
        "https://u-token.ai/v1/images/edits",
        headers={"Authorization": "Bearer sk-你的KEY"},
        data={
            "model": "gpt-image-2.5-flare",
            "prompt": "换成水彩风格",
            "size": "1024x1024",
            "background": "transparent",
        },
        files={"image": ("input.png", image, "image/png")},
        timeout=31 * 60,
    ).json()

print(result["data"][0]["url"], result["usage"])
本页目录

On this page