# GPT Image 2.6
> 2.6 代新增动图（GIF）与矢量（SVG）输出，以及出图前的规划档位 `complexity`
> 同步返回，图片在 `data[].b64_json`，不需要轮询
> 参考图最多 16 张，一次最多 4 张；SVG 固定 1 张
`POST /v1/images/generations`
## 认证
- `Authorization` (string / 必填) — 所有接口均使用 Bearer Token 进行认证。 获取 API Key：[访问控制台](https://api.oairoute.com/keys) 创建。 请求时在请求头中添加： ```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`，只传帧参数不会触发动图。
## 请求参数
> **Note:** 
> 提交后同步返回图片本身，不返回任务 ID。图片在 `data[].b64_json`，是 Base64 字符串，客户端解码后落盘。
- `model` (string / 必填) — 取值 `gpt-image-2.6-flare` 或 `gpt-image-2.6-sunburst`。 两者单价相同：`flare` 偏速度与批量迭代，`sunburst` 偏细节与多轮打磨。
- `prompt` (string / 必填) — 画面描述，上限 32000 字符，中英文均可。建议写清主体、场景、构图、风格、光线，以及哪些必须保留、哪些需要改动。 做 GIF 时把动作与循环方式写进提示词（例如「镜头固定，提灯摆动一个来回，结尾回到起始姿态」），模型按描述编帧； 做 SVG 时描述形状与配色，而不是摄影质感。
- `size` (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` 或精确像素，**不接受比例**。
- `resolution` (string / 可选) — 输出档位，取值 `1k`（默认）、`2k`、`4k`，与比例形式的 `size` 配合决定像素；`size` 写精确像素时该字段失效。
- `quality` (string / 可选) — 渲染画质，取值 `low`、`medium`、`high`、`xhigh`、`max`、`auto`，默认 `auto`。 只影响像素渲染，不影响出图前的规划； SVG 模式下决定参考图的精细度，而不是 SVG 本身的推理深度。草稿用 `low`，成品逐个上调比较细节、延迟与成本。
- `complexity` (string / 可选) — 出图前的规划算力，取值 `low`、`medium`、`high`，默认 `high`。 与 `quality` 两个维度独立，**单独调这项不额外计费**。 局部改色、换背景、改招牌这类窄任务用 `low` 更快；文字多、版式分层、多个物体互相遮挡时用 `high`， 但耗时更长，也可能改动到不该动的地方。
- `n` (integer / 可选) — 生成张数，取值 1 到 4，默认 `1`。 必须传数字，不能传字符串。**`output_format` 为 `svg` 时只能是 `1`**， GIF 也建议一次一张，多张会成倍占用总像素预算。
- `image` (string | string[] / 可选) — 参考图，最多 16 张公网地址。传入即进入编辑模式：第一张是主体，其余作为场景、光线或风格参考。 SVG 与 GIF 都可以带参考图，但参考图只影响写之前的那张底图，不会把源图直接矢量化。
- `mask_url` (string / 可选) — 蒙版，仅配合 `image` 使用，只作用于第一张参考图。透明像素表示可重绘区域。 像素尺寸必须与第一张参考图完全一致，而不是与输出尺寸一致。GIF 模式不支持蒙版。
- `output_format` (string / 可选) — 取值 `png`（默认）、`jpeg`、`webp`、`gif`、`svg`。PNG 与 WebP 支持透明背景。 `gif` 与 `svg` 是 2.6 新增，2.5 及更早的模型传入会返回 400。
- `frame_count` (integer / 可选) — GIF 帧数，取值 2 到 16，默认 `9`。只能与 `output_format: "gif"` 一起使用。 帧数 × 尺寸 × `n` 的总像素要落在模型预算内，超了会报错，需要下调其中之一。
- `frame_duration_ms` (integer / 可选) — GIF 每帧停留毫秒数，默认 `200`，最小 `20`，按 10 毫秒取整。 总时长 = 帧数 × 每帧时长，例如 9 帧 × 200ms = 1.8 秒一个循环。
- `svg` (object / 可选) — 仅 `output_format: "svg"` 时使用，决定由哪个模型、花多少推理来写 SVG 源码。`svg.model` 默认 `gpt-6.1-sol`。 顶层 `model` 仍然负责参考图，SVG 写作模型单独指定，两者不要混用。
- `output_compression` (integer / 可选) — 压缩比，取值 0 到 100，仅对 `jpeg` 与 `webp` 生效。GIF 与 SVG 不支持该字段。
- `background` (string / 可选) — 取值 `transparent`、`opaque`、`auto`。`transparent` 需要搭配 `png` 或 `webp`，不能与 `jpeg` 同时使用。
- `moderation` (string / 可选) — 内容审核档位，取值 `auto`、`low`，默认 `low`。
## 动图输出（GIF）
GIF 是 2.6 新增的输出格式，走同一条 `POST /v1/images/generations`，只多两个字段：
| 字段 | 取值 | 默认 | 说明 |
|---|---|---|---|
| `frame_count` | 2 到 16 | `9` | 帧数，决定动作的平滑度 |
| `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`（默认 `gpt-6.1-sol`）把这张图写成矢量。 所以顶层 `model` 决定底图长什么样（构图、配色、细节），`svg.model` 决定矢量化写得好不好。
### svg 对象
| 字段 | 类型 | 说明 |
|---|---|---|
| `svg.model` | string | 默认 `gpt-6.1-sol`。负责写 SVG 的模型，与顶层图像模型是两个东西；未开启 SVG 模型选择时不要传整个 `svg` 对象 |
| `svg.reasoning.effort` | string | 写作模型的推理量，取值 `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 后自行落盘。
```json
{
  "created": 1794232825,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAABYAABAmSMeRZJYAxgQDyTAbABBAYhAIENMggDCAzIIAwgbAFgA+YBFEGJfwQ/B/wuWGtEIwAAAABJRU5ErkJggg==",
      "generation_id": "a3b37aae-9c63-46f1-acb5-ac6cf174bdb4"
    }
  ],
  "usage": {
    "input_tokens": 65,
    "input_tokens_details": { "text_tokens": 65, "image_tokens": 0 },
    "output_tokens": 906,
    "output_tokens_details": { "image_tokens": 906, "text_tokens": 0 },
    "total_tokens": 971
  },
  "size": "1088x640",
  "quality": "high",
  "background": "opaque",
  "output_format": "png"
}
```
### 字段说明
- `created` (integer) — 生成完成时间，Unix 秒。
- `data` (array) — 每项对应一张输出图。
- `data[].b64_json` (string) — Base64 图片数据。PNG / JPEG / WebP / GIF 解码后即原文件；SVG 解码后是 XML 文本。
- `data[].generation_id` (string) — 本次生成的唯一标识，可用于日志关联与排障。
- `size` (string) — 实际输出尺寸，如 `1088x640`。
- `output_format` (string) — 实际输出格式，与请求一致。
- `quality` (string) — 实际使用的画质档位。
- `background` (string / 可选) — `transparent` 或 `opaque`。
- `usage` (object) — 计费用量，含 `input_tokens`、`output_tokens`、`total_tokens`，以及图片 / 文本分项。
- `svg_usage` (object / 可选) — 仅 SVG 输出时返回，记录写作模型的 token 消耗。
> **Note:** 
> 生成是同步的，请求会阻塞到图片出完。普通尺寸通常几十秒，复杂提示词官方给出上限约 2 分钟，客户端超时建议设到 3 分钟以上。 WebP 与 JPEG 比 PNG 快，对延迟敏感时优先选这两种。
## 错误码
| HTTP | 含义 |
|---|---|
| 400 | 参数错误，type 为 `invalid_request_error`。常见于 `output_format: "gif"` 却传了比例形式的 `size`，或把 `gif` / `svg` 传给 2.5 及更早的模型 |
| 401 | Token 缺失或无效，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`）与被命中的粗粒度类别。这类错误重试无效，需要改提示词或改输入图。
更多状态码与重试建议见[错误码与限流](../../support/errors.html)，常见报错的排查步骤见[常见问题](../../support/faq.html)。
## 支持的模型
| 模型 ID | 定位 | GIF | SVG |
|---|---|---|---|
| `gpt-image-2.6-flare` | 2.6 代，速度优先，适合批量与原型 | ✅ | ✅ |
| `gpt-image-2.6-sunburst` | 2.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 上生效。
> **Note:** 完整模型目录（含价格、分辨率上限）可读取 `GET https://api.oairoute.com/api/pricing`；也可用 `GET /v1/models` 筛 `supported_endpoint_types` 含 `image-generation` 的条目。
## 使用示例
**文生图{Text to image}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/images/generations' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-flare",
  "prompt": "清晨的山谷，薄雾缠绕树林，胶片质感，自然光",
  "size": "3:2",
  "resolution": "2k"
}'
```
**文生图{Text to image}::Python**
```
import requests

url = "https://api.oairoute.com/v1/images/generations"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}

payload = {
  "model": "gpt-image-2.6-flare",
  "prompt": "清晨的山谷，薄雾缠绕树林，胶片质感，自然光",
  "size": "3:2",
  "resolution": "2k"
}

res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**文生图{Text to image}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-image-2.6-flare",
  "prompt": "清晨的山谷，薄雾缠绕树林，胶片质感，自然光",
  "size": "3:2",
  "resolution": "2k"
}),
});

console.log(await res.json());
```
**200 文生图{Text to image}**
```
{
  "created": 1763088302,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU…",
      "generation_id": "a3b37aae-9c63-46f1-acb5-ac6cf174bdb4"
    }
  ],
  "size": "2048x1365",
  "output_format": "png",
  "quality": "auto",
  "background": "opaque",
  "usage": {
    "input_tokens": 32,
    "output_tokens": 4160,
    "total_tokens": 4192,
    "input_tokens_details": { "text_tokens": 32, "image_tokens": 0 },
    "output_tokens_details": { "text_tokens": 0, "image_tokens": 4160 }
  }
}
```
**参考图编辑{Reference edit}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/images/generations' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把沙发换成墨绿色布艺沙发，其余保持不变",
  "image": [
    "https://example.com/room.jpg"
  ]
}'
```
**参考图编辑{Reference edit}::Python**
```
import requests

url = "https://api.oairoute.com/v1/images/generations"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}

payload = {
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把沙发换成墨绿色布艺沙发，其余保持不变",
  "image": [
    "https://example.com/room.jpg"
  ]
}

res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**参考图编辑{Reference edit}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把沙发换成墨绿色布艺沙发，其余保持不变",
  "image": [
    "https://example.com/room.jpg"
  ]
}),
});

console.log(await res.json());
```
**200 参考图编辑{Reference edit}**
```
{
  "created": 1763088302,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU…",
      "generation_id": "7c1e2f44-1a8b-4f0e-9d21-2b6a0c5e91d3"
    }
  ],
  "size": "1536x1024",
  "output_format": "png",
  "quality": "auto",
  "usage": {
    "input_tokens": 1180,
    "output_tokens": 4096,
    "total_tokens": 5276,
    "input_tokens_details": { "text_tokens": 36, "image_tokens": 1144 },
    "output_tokens_details": { "text_tokens": 0, "image_tokens": 4096 }
  }
}
```
**动图输出{Animated GIF}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/images/generations' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-flare",
  "prompt": "一只提着灯笼的小狐狸在雪地里走，镜头固定，结尾回到起始姿态",
  "output_format": "gif",
  "frame_count": 9,
  "frame_duration_ms": 200,
  "size": "1024x1024"
}'
```
**动图输出{Animated GIF}::Python**
```
import requests

url = "https://api.oairoute.com/v1/images/generations"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}

payload = {
  "model": "gpt-image-2.6-flare",
  "prompt": "一只提着灯笼的小狐狸在雪地里走，镜头固定，结尾回到起始姿态",
  "output_format": "gif",
  "frame_count": 9,
  "frame_duration_ms": 200,
  "size": "1024x1024"
}

res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**动图输出{Animated GIF}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-image-2.6-flare",
  "prompt": "一只提着灯笼的小狐狸在雪地里走，镜头固定，结尾回到起始姿态",
  "output_format": "gif",
  "frame_count": 9,
  "frame_duration_ms": 200,
  "size": "1024x1024"
}),
});

console.log(await res.json());
```
**200 动图输出{Animated GIF}**
```
{
  "created": 1763088302,
  "data": [
    {
      "b64_json": "R0lGODlhAAEAAfAAAP///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh…",
      "generation_id": "5d90b21c-3e77-4a15-b0c8-91f2ab7d4e36"
    }
  ],
  "size": "1024x1024",
  "output_format": "gif",
  "quality": "auto",
  "usage": {
    "input_tokens": 41,
    "output_tokens": 9216,
    "total_tokens": 9257
  }
}
```
**矢量输出{Vector SVG}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/images/generations' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "扁平风格的咖啡品牌标志，单色圆形，中间一杯冒热气的杯子，留白均匀",
  "output_format": "svg",
  "svg": {
    "model": "gpt-6.1-sol",
    "reasoning": { "effort": "high" }
  }
}'
```
**矢量输出{Vector SVG}::Python**
```
import requests

url = "https://api.oairoute.com/v1/images/generations"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}

payload = {
  "model": "gpt-image-2.6-sunburst",
  "prompt": "扁平风格的咖啡品牌标志，单色圆形，中间一杯冒热气的杯子，留白均匀",
  "output_format": "svg",
  "svg": {
    "model": "gpt-image-2.6-sunburst",
    "reasoning": { "effort": "high" }
  }
}

res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**矢量输出{Vector SVG}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-image-2.6-sunburst",
  "prompt": "扁平风格的咖啡品牌标志，单色圆形，中间一杯冒热气的杯子，留白均匀",
  "output_format": "svg",
  "svg": {
    "model": "gpt-image-2.6-sunburst",
    "reasoning": { "effort": "high" }
  }
}),
});

console.log(await res.json());
```
**200 矢量输出{Vector SVG}**
```
{
  "created": 1763088302,
  "data": [
    {
      "b64_json": "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48…",
      "generation_id": "1ba90ac4-fff1-403e-ac85-8e7fe3200079"
    }
  ],
  "size": "1024x1024",
  "output_format": "svg",
  "quality": "high",
  "usage": { "input_tokens": 36, "output_tokens": 1024, "total_tokens": 1060 },
  "svg_usage": {
    "model": "gpt-6.1-sol",
    "input_tokens": 1180,
    "output_tokens": 4260,
    "reasoning_tokens": 2130,
    "total_tokens": 7570
  }
}
```
**蒙版重绘{Masked redraw}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/images/generations' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把这块区域换成一只橘猫",
  "image": [
    "https://example.com/room.jpg"
  ],
  "mask_url": "https://example.com/room-mask.png",
  "complexity": "low"
}'
```
**蒙版重绘{Masked redraw}::Python**
```
import requests

url = "https://api.oairoute.com/v1/images/generations"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}

payload = {
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把这块区域换成一只橘猫",
  "image": [
    "https://example.com/room.jpg"
  ],
  "mask_url": "https://example.com/room-mask.png",
  "complexity": "low"
}

res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**蒙版重绘{Masked redraw}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "gpt-image-2.6-sunburst",
  "prompt": "把这块区域换成一只橘猫",
  "image": [
    "https://example.com/room.jpg"
  ],
  "mask_url": "https://example.com/room-mask.png",
  "complexity": "low"
}),
});

console.log(await res.json());
```
**200 蒙版重绘{Masked redraw}**
```
{
  "created": 1763088302,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU…",
      "generation_id": "e2f45b08-6c93-4d71-8a2e-0b4c9f13d7a5"
    }
  ],
  "size": "1536x1024",
  "output_format": "png",
  "quality": "auto",
  "usage": {
    "input_tokens": 1180,
    "output_tokens": 4096,
    "total_tokens": 5276,
    "input_tokens_details": { "text_tokens": 36, "image_tokens": 1144 },
    "output_tokens_details": { "text_tokens": 0, "image_tokens": 4096 }
  }
}
```
