• 新增 GIF 动图与 SVG 矢量输出,同一条 Images 接口
  • 出图前规划档位 complexity:low / medium / high,单独调不额外计费
  • 同步返回,图片在 data[].b64_json,无需轮询
POST/v1/images/generations

认证

string必填

所有接口均使用 Bearer Token 进行认证。 获取 API Key:访问控制台 创建。 请求时在请求头中添加: ``http Authorization: Bearer YOUR_OAIRoute_KEY ``

请求结构

请求体是平铺的 JSON,创作字段与输出字段都在顶层,没有 content 数组包装。

GPT Image 2.6 在 2.5 的基础上多了三样能力,都靠请求字段控制,不需要换路径:

  • complexity —— 出图前的规划算力,与 quality 各自独立。
  • output_format: gif + frame_count / frame_duration_ms —— 动图输出。
  • output_format: svg + svg —— 矢量输出,由单独的写作模型产出 SVG 源码。

响应是同步的:请求会阻塞到图片生成完成,结果直接在 data[].b64_json 里返回,没有 task_id,也不需要轮询。图片是 Base64,客户端自行解码落盘。

支持的场景

场景字段组合
文生图prompt
单图编辑prompt + image(1 张)
多图参考prompt + image(2 到 16 张)
蒙版重绘prompt + image + mask_url
固定画布size 写精确像素
动图(GIF)output_format: "gif" + frame_count + frame_duration_ms
矢量图(SVG)output_format: "svg" + svg
高复杂度版面complexity: "high" + 含大量文字或图层的 prompt

传入 image 后自动进入编辑模式,不需要额外参数切换。mask_url 单独传无效。GIF 与 SVG 都需要显式写 output_format,只传帧参数不会触发动图。

请求参数

提交后同步返回图片本身,不返回任务 ID。图片在 data[].b64_json,是 Base64 字符串,客户端解码后落盘。

string必填

取值 gpt-image-2.6-flare 或 gpt-image-2.6-sunburst。两者单价相同:flare 偏速度与批量迭代,sunburst 偏细节与多轮打磨。

string必填

画面描述,上限 32000 字符,中英文均可。建议写清主体、场景、构图、风格、光线,以及哪些必须保留、哪些需要改动。做 GIF 时把动作与循环方式写进提示词(例如「镜头固定,提灯摆动一个来回,结尾回到起始姿态」),模型按描述编帧;做 SVG 时描述形状与配色,而不是摄影质感。

string可选

默认 auto。可写宽高比 1:1、3:2、2:3、4:3、3:4、5:4、4:5、16:9、9:16、2:1、1:2、21:9、9:21、3:1、1:3,也可写精确像素如 1536x864。GIF 模式下只接受 auto 或精确像素,不接受比例。

string可选

输出档位,取值 1k(默认)、2k、4k,与比例形式的 size 配合决定像素;size 写精确像素时该字段失效。

string可选

渲染画质,取值 low、medium、high、xhigh、max、auto,默认 auto。只影响像素渲染,不影响出图前的规划;SVG 模式下决定参考图的精细度,而不是 SVG 本身的推理深度。草稿用 low,成品逐个上调比较细节、延迟与成本。

string可选

出图前的规划算力,取值 low、medium、high,默认 high。与 quality 两个维度独立,单独调这项不额外计费。 局部改色、换背景、改招牌这类窄任务用 low 更快;文字多、版式分层、多个物体互相遮挡时用 high,但耗时更长,也可能改动到不该动的地方。

integer可选

生成张数,取值 1 到 4,默认 1。必须传数字,不能传字符串。output_format 为 svg 时只能是 1,GIF 也建议一次一张,多张会成倍占用总像素预算。

string | string[]可选

参考图,最多 16 张公网地址。传入即进入编辑模式:第一张是主体,其余作为场景、光线或风格参考。SVG 与 GIF 都可以带参考图,但参考图只影响写之前的那张底图,不会把源图直接矢量化。

string可选

蒙版,仅配合 image 使用,只作用于第一张参考图。透明像素表示可重绘区域。像素尺寸必须与第一张参考图完全一致,而不是与输出尺寸一致。GIF 模式不支持蒙版。

string可选

取值 png(默认)、jpeg、webp、gif、svg。PNG 与 WebP 支持透明背景。gif 与 svg 是 2.6 新增,2.5 及更早的模型传入会返回 400。

integer可选

GIF 帧数,取值 2 到 16,默认 9。只能与 output_format: "gif" 一起使用。帧数 × 尺寸 × n 的总像素要落在模型预算内,超了会报错,需要下调其中之一。

integer可选

GIF 每帧停留毫秒数,默认 200,最小 20,按 10 毫秒取整。总时长 = 帧数 × 每帧时长,例如 9 帧 × 200ms = 1.8 秒一个循环。

object可选

仅 output_format: "svg" 时使用,决定由哪个模型、花多少推理来写 SVG 源码。svg.model 默认 gpt-6.1-sol。顶层 model 仍然负责参考图,SVG 写作模型单独指定,两者不要混用。

integer可选

压缩比,取值 0 到 100,仅对 jpeg 与 webp 生效。GIF 与 SVG 不支持该字段。

string可选

取值 transparent、opaque、auto。transparent 需要搭配 png 或 webp,不能与 jpeg 同时使用。

string可选

内容审核档位,取值 auto、low,默认 low。

动图输出(GIF)

GIF 是 2.6 新增的输出格式,走同一条 POST /v1/images/generations,只多两个字段:

字段取值默认说明
frame_count2 到 169帧数,决定动作的平滑度
frame_duration_ms≥ 20,10ms 取整200每帧停留时长,决定播放速度

总时长就是 frame_count × frame_duration_ms。9 帧 × 200ms = 1.8 秒一个循环。

写提示词的要点

  • 写清主体 + 动作 + 循环:谁在动、怎么动、结尾回到哪里。只写静态画面会得到近似重复的帧。
  • 镜头最好写明固定还是不固定;镜头运动叠在物体运动上时帧数不够容易抖。
  • GIF 只有 256 色,渐变与照片级光照会明显分层,适合图形、插画、图标类动效,不适合写实人像。

尺寸与预算

  • size 在 GIF 模式下只接受 auto 或精确像素(宽高都能被 16 整除),不接受 16:9 这类比例写法。
  • 帧数、尺寸与 n 三者相乘要落在模型的总像素预算内,超了会直接报错,处理办法是调小其中一项。
  • mask_url、output_compression、流式与局部预览在 GIF 模式下都不可用。

矢量输出(SVG)

output_format: svg 返回的不是栅格图,而是 UTF-8 的 SVG XML 源码,放在 data[0].b64_json 里,Base64 解码后直接存成 .svg 即可,可以直接进设计工具或前端代码库。

流程分两步:先用顶层 model 与 quality 生成一张参考图,再由 svg 指定的模型把这张图写成矢量。所以顶层 model 决定底图长什么样(构图、配色、细节),svg.model 决定矢量化写得好不好。

svg 对象

字段类型说明
svg.modelstring默认 gpt-6.1-sol。负责写 SVG 的模型,与顶层图像模型是两个东西;未开启 SVG 模型选择时不要传整个 svg 对象
svg.reasoning.effortstring写作模型的推理量,取值 none、minimal、low、medium、high、xhigh、max;省略即用该模型的默认值

约束

  • n 只能是 1,一次只出一份 SVG。
  • 不支持流式与局部预览(stream / partial_images),也不支持 output_compression。
  • 输出是静态矢量:没有脚本、没有外链资源、不会内嵌位图。需要交互或动画请自行在 SVG 上加。
  • 生成的 SVG 不能作为编辑接口的栅格输入再用,要改就在同一路径重新生成。
  • 计费用量与栅格图分开统计,响应里另有 svg_usage 字段记录写作模型的 token 消耗。

写提示词的要点

  • 描述形状、层级与配色,而不是光影质感;「扁平插画、双色、几何构成」比「电影级打光」有效。
  • 图标与 logo 类需求写明「单色、可缩放、留白均匀」,避免生成大量细碎路径导致文件体积失控。
  • 文字尽量少:SVG 里的文字通常被转成路径,事后无法直接改字,需要改字请重新生成并写明字体风格。

尺寸约束

精确像素:宽高都必须能被 16 整除,单边不超过 3840,长短边比例不超过 3:1,总像素在 655360 到 8294400 之间。

比例 + resolution:比例形式与档位组合出像素,例如 1:1 在 1k / 2k / 4k 下分别是 1024×1024、2048×2048、2880×2880。

超过 2560×1440 的输出稳定性会下降,属于实验范围。GIF 的尺寸还要受帧数挤占的总像素预算约束,通常比静态图更小。

响应

同步返回,与 OpenAI Images API 一致。返回体里只有 b64_json 与 generation_id,没有图片 URL,客户端解码 Base64 后自行落盘。

字段说明

  • created (integer) — 生成完成时间,Unix 秒。
  • data (array) — 每项对应一张输出图。
  • data[].b64_json (string) — Base64 图片数据。PNG / JPEG / WebP / GIF 解码后即原文件;SVG 解码后是 XML 文本。
  • data[].generation_id (string) — 本次生成的唯一标识,可用于日志关联与排障。
  • data[].revised_prompt (string / 可选) — 模型改写后的提示词,GPT Image 系列通常不返回。
  • size (string) — 实际输出尺寸,如 1536x1024。
  • output_format (string) — 实际输出格式,与请求一致。
  • quality (string) — 实际使用的画质档位。
  • background (string / 可选) — transparent 或 opaque。
  • usage (object) — 计费用量,含 input_tokens、output_tokens、total_tokens,以及图片 / 文本分项。
  • svg_usage (object / 可选) — 仅 SVG 输出时返回,记录写作模型的 token 消耗。

生成是同步的,请求会阻塞到图片出完。普通尺寸通常几十秒,复杂提示词官方给出上限约 2 分钟,客户端超时建议设到 3 分钟以上。WebP 与 JPEG 比 PNG 快,对延迟敏感时优先选这两种。

错误码

HTTP含义
400参数错误,type 为 invalid_request_error。常见于 output_format: "gif" 却传了比例形式的 size,或把 gif / svg 传给 2.5 及更早的模型
401Token 缺失或无效,type 为 authentication_error
402余额不足,type 为 payment_required
429触发限流

内容审核拦截时返回 400,error.type 为 image_generation_user_error、error.code 为 moderation_blocked,error.moderation_details 里带 moderation_stage(input / output / unknown)与被命中的粗粒度类别。这类错误重试无效,需要改提示词或改输入图。

更多状态码与重试建议见错误码与限流,常见报错的排查步骤见常见问题。

支持的模型

模型 ID定位GIFSVG
gpt-image-2.6-flare2.6 代,速度优先,适合批量与原型✅✅
gpt-image-2.6-sunburst2.6 代,细节优先,适合成品图与多轮打磨✅✅
gpt-image-2.5-flare速度优先,适合批量与原型——
gpt-image-2.5-sunburst编辑精度优先,适合成品图与多轮打磨——
gpt-image-2上一代主力,不支持 xhigh 与 max 档——
gpt-image-1.5轻量,出图快——
gpt-image-1-mini成本最低——

xhigh 与 max 只有 2.5 及以后支持,传给 gpt-image-2 会返回 400,不会降档。gif 与 svg 只有 2.6 支持,complexity 同样只在 2.6 上生效。

完整模型目录(含价格、分辨率上限)可读取 GET https://api.oairoute.com/api/pricing;也可用 GET /v1/models 筛 supported_endpoint_types 含 image-generation 的条目。