图像生成
根据文本提示词生成图片,也可以附带参考图做图生图。兼容 OpenAI Images API 的 images.generate:OpenAI 官方 SDK 把 Base URL 改成 https://api.lyrouter.com/v1 即可调用,图片在同一个响应里返回,不需要轮询。目前可用 Seedream 5.0、GPT-Image、Gemini Image 三个系列,参数写法和返回形式因系列而异,见下文各模型小节。
/v1/images/generations鉴权
在请求头中携带 API Key:
Authorization: Bearer <API Key>
Bearer 区分大小写。也可以改用 x-api-key: <API Key>,两者同时存在时只读 Authorization。API Key 在工作空间的 API 密钥 页面创建,只用于 LYRouter 鉴权,不会转发给上游服务商。完整说明见接入地址与鉴权。
请求头
| 请求头 | 必填 | 说明 |
|---|---|---|
Content-Type |
是 | application/json |
X-Gateway-Strict-Parameters |
否 | 设为 true(只认小写)时,请求中有会被网关丢弃的参数就直接返回 400 unsupported_parameters,不调用上游、不计费。哪些参数会被丢弃见下文「各模型的处理方式」 |
请求体
各模型共用的参数如下,每个参数在各系列上是否生效见后面的模型小节。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 是 | 图像模型 ID,例如 bytedance/doubao-seedream-5.0-lite。只能写具体的模型 ID:虚拟模型 @vmodel/<名称> 和 lyrouter/auto 在图像接口上返回 403。可用模型在模型广场查看,或调用列出模型 |
prompt |
string | 是 | 提示词。Seedream pro 做图层拆分时可以省略 |
size |
string | 否 | 输出尺寸,写成宽高(如 2048x2048)或档位名(如 2K)。可用写法和取值范围因模型而异,见各模型小节 |
n |
integer | 否 | 生成张数。GPT-Image 原样转发给上游,最大 10。Seedream 目前不能用它一次生成多张:n 会转发给上游,但只出 1 张,不报错,也不列进 X-Gateway-Unsupported-Parameters,需要多张请发多次请求。Gemini 会丢弃 |
quality |
string | 见说明 | 生成质量,GPT-Image 系列使用,取值逐模型不同,gpt-image-2 必填;Gemini 会丢弃 |
response_format |
string | 否 | url 或 b64_json,只对 Seedream 生效(默认 url)。GPT-Image、Gemini 固定返回 b64_json,网关丢弃这个参数 |
image |
string | array | 否 | 参考图,用于图生图。Seedream 接受公网 URL 或 data:image/<格式>;base64,<数据>;Gemini 也接受,写法见图像编辑 |
user |
string | 否 | 终端用户标识。Seedream、GPT-Image 原样转发;Gemini 会丢弃 |
表中没有的其他参数:Seedream、GPT-Image 原样转发给上游,是否生效取决于模型;Gemini 一律丢弃。
各模型的处理方式
网关按模型决定怎样处理请求体,这决定了哪些参数能生效:
| 模型系列 | 模型 ID | 处理方式 | 网关丢弃的参数 | 返回的图片 |
|---|---|---|---|---|
| Seedream 5.0 | bytedance/doubao-seedream-5.0-probytedance/doubao-seedream-5.0-lite |
透传 | 无 | url(默认)或 b64_json |
| GPT-Image | openai/gpt-image-2openai/gpt-image-2.5-flareopenai/gpt-image-2.5-sunburst |
透传 | response_format;2.5 两个模型另丢弃 stream、stream_options |
b64_json |
| Gemini Image | google/gemini-3-pro-imagegoogle/gemini-3.1-flash-image |
契约转换 | 除 model、prompt、size、image 外的全部参数;size 无法匹配时也会丢弃 |
b64_json |
- 透传:请求体原样发给上游,只改写模型名,服务商支持的其他参数也可以传。参数不被上游接受时,返回的是上游自己的错误。
- 契约转换:网关把参数翻译成服务商的格式,翻译不了的参数丢弃。
- 被丢弃的参数列在响应头
X-Gateway-Unsupported-Parameters中,请求照常执行;带X-Gateway-Strict-Parameters: true时改为返回 400。透传给上游的参数不受这个请求头影响。
模型的能力对比和使用场景见多模态能力。模型以模型广场为准,下文按系列列出各自的参数与限制。
Seedream 5.0(pro / lite)
火山方舟的 Seedream 模型,透传,默认返回图片 URL,单次生成约 20 秒。
| 参数 | 类型 | 说明 |
|---|---|---|
size |
string | 默认 2K。推荐写档位名,宽高比在 prompt 里用文字描述:pro 为 1K、1.5K、2K,lite 为 2K、3K、4K。也可以写 宽x高:pro 要求总像素在 [921600, 4624220] 之间,lite 要求不少于 3686400(最小正方形是 1920x1920,常见的 1024x1024 会被拒绝),宽高比都要在 [1/16, 16] 之间。两种写法不能混用 |
response_format |
string | url(默认)或 b64_json |
image |
string | array | 参考图,公网 URL 或 data:image/<格式>;base64,<数据>(<格式> 须小写),建议不超过 10 张,限制见下表 |
output_format |
string | png 或 jpeg。图层拆分时只控制底图格式,图层固定为 PNG |
background |
string | opaque(默认)或 transparent。只用于图生图,且只能输入 1 张带透明通道的图 |
watermark |
boolean | true 时在右下角加「AI生成」水印。不传时默认加水印,不需要时传 false |
layer_decomposition |
boolean | 仅 pro,默认 false。true 时把 1 张输入图拆成 1 张底图和最多 16 个带透明通道的 PNG 图层,image 必填且只能 1 张,size 只能写档位名(默认 auto) |
optimize_prompt_options.mode |
string | 仅 pro。standard(默认)或 fast(更快、质量略低) |
参考图的限制:
| 限制 | 生图 | 图层拆分 |
|---|---|---|
| 格式 | jpeg、png、webp、bmp、tiff、gif、heic、heif | png、jpeg |
| 总像素(宽 × 高) | [196, 36000000] | [262144, 36000000] |
| 宽、高 | 不小于 14 px | — |
| 宽高比(宽/高) | [1/16, 16] | [1/16, 16] |
| 单张大小 | ≤ 30 MB | ≤ 30 MB |
| 张数 | 建议不超过 10 张;超过时服务商目前不拒绝,但输出可能异常 | 仅 1 张 |
- pro 支持交互编辑:在
prompt里用<point>x y</point>或<bbox>x1 y1 x2 y2</bbox>(坐标归一化到 0~999)指定要改的位置。 - 图层拆分的响应在
data[]中同时返回底图和图层,带z_index、bounding_box、name、description等字段;每次请求预占 17 张的限流额度,完成后按实际张数返还。各档位对应的像素、坐标换算和还原方法见多模态能力。 - 火山方舟的其他参数也可以直接写在请求体里。用 OpenAI Python SDK 时放进
extra_body,例如extra_body={"watermark": False}。
计费:按张计。pro 按分辨率分档:1K 与 1.5K(≤ 261 万像素)一档、2K 一档,图层拆分另有两档(同样按 1K/1.5K 与 2K 分),按实际产出的张数(底图 + 各图层)计;pro 的参考图单独计一项,每次请求的第 1 张参考图不收费,超出部分按张计(数的是输入的参考图,不是出图张数)。lite 不分档。1.5K 与 1K 同价且出图更好,没有特殊要求时优先用 1.5K。
curl https://api.lyrouter.com/v1/images/generations \
-H "Authorization: Bearer $LYROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/doubao-seedream-5.0-lite",
"prompt": "一只戴墨镜的柴犬坐在冲浪板上,黄昏海面,电影感,横幅构图",
"size": "2K",
"watermark": false
}'
GPT-Image(2 / 2.5-flare / 2.5-sunburst)
透传,参数与 OpenAI 图像 API 一致,固定返回 b64_json。
| 参数 | 类型 | 说明 |
|---|---|---|
quality |
string | 取值逐模型不同,见下表。建议所有 GPT-Image 模型都显式传入 |
size |
string | 只接受 宽x高,不接受档位名(传 4K 返回 Invalid size '4K'. Expected WIDTHxHEIGHT, for example '1824x1024'.);须满足下文四条硬约束,否则返回 400 |
n |
integer | 生成张数,最大 10 |
background |
string | transparent、opaque 或 auto |
output_format |
string | 输出格式。gpt-image-2 只接受 png、jpeg,传 webp 返回 400 Invalid value: 'webp'. Supported values are: 'png' and 'jpeg'.;2.5 系列接受 png、jpeg、webp |
moderation |
string | auto 或 low |
user |
string | 终端用户标识 |
response_format |
— | 网关丢弃并在响应头中列出:这个系列固定返回 b64_json,上游对该参数时而接受、时而报错 |
stream、stream_options |
— | 2.5 系列由网关丢弃(上游开启流式会使请求失败);gpt-image-2 也不要传 stream |
quality 的取值:
| 模型 | 取值 | 默认 |
|---|---|---|
gpt-image-2 |
low、medium、high、auto |
无,必填:不传会间歇性返回 400(INVALID_REQUEST_BODY);auto 实测等同 low |
gpt-image-2.5-flare、gpt-image-2.5-sunburst |
low、medium、high、xhigh、max、auto |
low(auto 实测等同 low) |
xhigh、max 两档是否可用由上游账号能力决定,可能被拒;收到 Invalid value: 'xhigh' 时改用 high。
size 的四条硬约束,由服务商校验,任一不满足返回 400:
| 约束 | 服务商报错原文 | 示例 |
|---|---|---|
| 宽和高都能被 16 整除 | Invalid size '<宽>x<高>'. Width and height must both be divisible by 16. |
1008x1008 可用;1254x1254、1312x1199 被拒 |
| 最长边不超过 3840 | Invalid size '<宽>x<高>'. The longest edge must be less than or equal to 3840. |
3840x2160 可用;4096x4096、1024x4096 被拒 |
| 总像素不少于约 100 万 | Invalid size '<宽>x<高>'. Requested resolution is below the current minimum pixel budget. |
1008x1008(约 102 万)可用;512x1024(约 52 万)被拒 |
| 总像素不超过约 830 万 | Invalid size '<宽>x<高>'. Requested resolution exceeds the current pixel budget. |
3840x2160(约 829 万)可用;3840x2176(约 836 万)被拒 |
- 耗时:一次生成实测约 20~60 秒,偶有更长(最长一次约 83 秒);参数错误导致的上游 400 实测在 2 秒内返回。客户端超时请按分钟设置,不低于 300 秒。
计费:按 Token 计,输入文本、输入图片、输出分别计价,上游在 usage.input_tokens_details 中分开上报文字与图片 Token,所以同样长度的提示词,带图与不带图费用不同。缓存命中另有一项单价;2.5 系列的 usage 不含缓存字段,不产生这一项。
输出 Token 主要由 quality 决定:1024x1024 时 2.5 系列 low 输出 196 Token、max 输出 7024 Token,最高档约为最低档的 36 倍。同名档位在两代模型上不是同一个量:2.5 系列的 high 与 gpt-image-2 的 medium 输出 Token 相同,跨模型比较请比 Token,不要比档位名。另外,GPT-Image 不是像素越多越贵(只适用于 GPT-Image):输出 Token 不随像素增加,例如 1024x1536(约 157 万像素)的输出 Token 比 1024x1024(约 105 万像素)还少。
Gemini Image(3 Pro / 3.1 Flash)
契约转换:网关把请求翻译成 Gemini 原生的 generateContent 格式,只使用下表中生效的参数,其余参数丢弃并在响应头中列出。固定返回 b64_json,不能返回 URL。单次生成实测 20~250 秒(gemini-3-pro-image),偶有超过 300 秒仍未返回。
| 参数 | 是否生效 | 说明 |
|---|---|---|
prompt |
生效 | 必填,不写或为空返回 400 prompt is required for this model |
size |
生效 | 写法见下表 |
image |
生效 | 参考图,写法见图像编辑 |
n |
丢弃 | 需要多张图请发多次请求 |
quality |
丢弃 | Gemini 没有对应参数 |
response_format |
丢弃 | 只能返回 b64_json |
user 及其他参数 |
丢弃 | — |
size 的写法决定了比例和分辨率:
| 写法 | 网关的处理 | 效果 |
|---|---|---|
档位名:1K、2K、4K |
原样作为分辨率档位 | 控制分辨率,宽高比由上游默认 |
宽x高,如 1376x768 |
匹配最接近的支持比例(误差 2% 以内),再按长边向上取分辨率档位 | 同时控制比例和分辨率 |
宽高比超出 2% 误差,如 1000x700 |
整个 size(比例和档位)都不下发,size 计入丢弃参数 |
返回 200、照常出图并计费,但比例和分辨率都是上游默认值,唯一的信号是响应头 X-Gateway-Unsupported-Parameters: size;严格模式下返回 400 |
比例字符串,如 16:9 |
当作档位名原样传给上游 | 上游不认识,返回 400(upstream_rejected)。要 16:9 请写该比例的宽高,如 1376x768 |
512 档在生产环境被服务商拒绝(两个模型都是),不要使用。
支持的宽高比:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9、1:4、4:1、1:8、8:1。写宽高时按长边向上取档,超过 4K 的按 4K;长边不超过 704 时网关会映射到 512 档,同样可能被拒绝,请让长边大于 704。同一档位在两个模型上的输出 Token 不同:
| 长边 | 档位 | gemini-3-pro-image 输出 Token |
gemini-3.1-flash-image 输出 Token |
|---|---|---|---|
| ≤ 1376 | 1K |
1120 | 1120 |
| ≤ 2816 | 2K |
1120(2K 档不生效,与 1K 相同) | 1680 |
| 更大(封顶) | 4K |
2000 | 2520 |
出图尺寸由服务商按比例档和分辨率档决定,不等于请求的宽高,例如 gemini-3-pro-image 请求 4096x2304 实际出图 5504x3072;请以返回图片的实际宽高为准。
例如 1024x1024 映射为 1:1 + 1K,2048x2048 映射为 1:1 + 2K。要 16:9 + 4K 请写 4096x2304,不要照抄 5632x3072:它的比例是 1.833,偏离 16:9 超过 2%,整个 size 会被丢弃。生产环境建议带 X-Gateway-Strict-Parameters: true,让这种请求改为返回 400。
计费:按 Token 计,输入、输出、思考三项分别计价;带参考图时,输入图片并入「输入」。思考 Token 只在上游返回时出现(gemini-3-pro-image),位于 usage.output_tokens_details.reasoning_tokens,usage.total_tokens 包含它。思考 Token 每次不同,由模型自行决定:生产实测 115~316 个、中位约 220,约占单次费用的 1.5%,预算时可按每次约 220 个估算。
{
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA…" }],
"usage": {
"input_tokens": 7,
"output_tokens": 1120,
"total_tokens": 1339,
"output_tokens_details": { "reasoning_tokens": 212 }
}
}
请求示例
下面以 openai/gpt-image-2 为例,把返回的 Base64 图片保存为文件。换成 Seedream 时,图片默认以 URL 返回,读取 data[0].url 并及时下载。
curl https://api.lyrouter.com/v1/images/generations \
--max-time 300 \
-H "Authorization: Bearer $LYROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-image-2",
"prompt": "一只戴墨镜的柴犬坐在冲浪板上,黄昏海面,电影感",
"size": "1024x1024",
"quality": "medium"
}'
import base64
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LYROUTER_API_KEY"],
base_url="https://api.lyrouter.com/v1",
timeout=300,
)
result = client.images.generate(
model="openai/gpt-image-2",
prompt="一只戴墨镜的柴犬坐在冲浪板上,黄昏海面,电影感",
size="1024x1024",
quality="medium",
)
with open("shiba.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
print(result.usage)
import { writeFileSync } from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.LYROUTER_API_KEY,
baseURL: "https://api.lyrouter.com/v1",
timeout: 300_000,
});
const result = await client.images.generate({
model: "openai/gpt-image-2",
prompt: "一只戴墨镜的柴犬坐在冲浪板上,黄昏海面,电影感",
size: "1024x1024",
quality: "medium",
});
writeFileSync("shiba.png", Buffer.from(result.data[0].b64_json, "base64"));
console.log(result.usage);
响应
成功时返回 OpenAI Images 格式的对象,图片在顶层 data 数组中;出错时返回 error 对象。下面的 200 分别是 Seedream(返回 URL)和 GPT-Image(返回 Base64),400 是开启严格模式时给 Gemini 传了它不支持的参数,403 是模型未开通,或使用了虚拟模型、Auto。
{
"model": "doubao-seedream-5-0-260128",
"created": 1789454321,
"data": [
{
"url": "https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/…",
"size": "1920x1920"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 14400,
"total_tokens": 14400
}
}
{
"created": 1791950400,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA…" }
],
"size": "1024x1024",
"quality": "medium",
"output_format": "png",
"background": "opaque",
"usage": {
"input_tokens": 29,
"input_tokens_details": { "text_tokens": 29, "image_tokens": 0 },
"output_tokens": 1756,
"total_tokens": 1785
}
}
{
"error": {
"message": "unsupported parameters for this model: n,quality",
"type": "invalid_request_error",
"code": "unsupported_parameters"
}
}
{
"error": {
"message": "Model is not available in the model plaza",
"type": "access_denied",
"code": "model_not_available"
}
}
| 字段 | 说明 |
|---|---|
created |
Unix 时间戳(秒)。Gemini 不返回这个字段 |
model |
服务商侧的模型名(Seedream 返回),例如 doubao-seedream-5-0-260128,与请求中的模型 ID 不同 |
data |
产物数组,只生成一张时也是数组 |
data[].url |
图片下载地址,Seedream 默认返回。这是服务商签发的临时地址,约 24 小时后失效,请及时下载保存 |
data[].b64_json |
Base64 编码的图片。GPT-Image、Gemini 固定返回;Seedream 在 response_format 为 b64_json 时返回 |
data[].size |
实际生成的尺寸(Seedream 返回) |
data[].output_format |
图片格式(Seedream pro 返回) |
size、quality、output_format、background |
本次实际使用的生成参数(GPT-Image 返回) |
usage |
计量信息,字段随模型变化,见下表 |
usage 的字段
| 模型系列 | usage 中的字段 |
计量方式 |
|---|---|---|
| Seedream | generated_images(生成张数)、output_tokens、total_tokens;pro 带参考图时另有 input_images(输入的参考图张数) |
按张 |
| GPT-Image | input_tokens、input_tokens_details.text_tokens / image_tokens、output_tokens、total_tokens |
按 Token |
| Gemini | input_tokens、output_tokens、total_tokens,有思考 Token 时另有 output_tokens_details.reasoning_tokens |
按 Token |
不要假设某个字段一定存在,读取前先判断。各模型的计费方式见上文模型小节,单价以控制台模型广场为准,每次调用的实际扣费在请求日志中查看。
响应头
| 响应头 | 说明 |
|---|---|
X-Gateway-Unsupported-Parameters |
网关丢弃了参数时出现,值为逗号分隔的参数名,例如 n,quality。请求照常执行,列出的参数没有生效 |
配置了配额时,响应还会带 x-aigw-quota-* 系列响应头,见网关扩展请求头与响应头。
这样读取被丢弃的参数(Python、Node.js 沿用上文示例中的 client):
curl -sS -D - -o result.json https://api.lyrouter.com/v1/images/generations \
--max-time 300 \
-H "Authorization: Bearer $LYROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"google/gemini-3.1-flash-image","prompt":"一片绿色的叶子,扁平风格","size":"1376x768","n":2}'
# 响应头中出现:X-Gateway-Unsupported-Parameters: n
raw = client.images.with_raw_response.generate(
model="google/gemini-3.1-flash-image",
prompt="一片绿色的叶子,扁平风格",
size="1376x768",
n=2,
)
print(raw.headers.get("X-Gateway-Unsupported-Parameters")) # n
result = raw.parse()
const { data: result, response } = await client.images
.generate({
model: "google/gemini-3.1-flash-image",
prompt: "一片绿色的叶子,扁平风格",
size: "1376x768",
n: 2,
})
.withResponse();
console.log(response.headers.get("X-Gateway-Unsupported-Parameters")); // n
网关行为
与直接调用上游相比,经 LYRouter 调用有以下差别:
-
只用指定的模型:图像接口不会改用其他模型。同一模型有多个通道时,失败后依次尝试其他通道;虚拟模型、Auto 智能路由和工作空间默认模型的回退都不用于图像接口,见失败重试与备用模型。
-
丢弃参数与严格模式:网关只丢弃上文「各模型的处理方式」中列出的参数,并在响应头
X-Gateway-Unsupported-Parameters中列出。生产环境建议检查这个响应头,或者带上X-Gateway-Strict-Parameters: true,让请求在出现会被丢弃的参数时直接返回 400、不调用上游、不计费。用 SDK 时通过extra_headers={"X-Gateway-Strict-Parameters": "true"}(Python)或请求选项{ headers: { "X-Gateway-Strict-Parameters": "true" } }(Node.js)传入。透传给上游的参数不受这个请求头影响,参数是否被接受由上游判断。 -
上游在成功响应里声明错误:Gemini 的上游拒绝请求时可能返回 HTTP 200 而没有图片。网关把它改写成错误响应,状态码取上游声明的错误:上游拒绝时
error.code为upstream_rejected,error.message是上游原文;没有产出图片时为upstream_no_artifact,并带upstream_finish_reason(如NO_IMAGE、SAFETY)。upstream_status保留上游原本的 200。这类错误不换通道重试,请按提示修改提示词或参数:{ "error": { "message": "upstream produced no image (finishReason: NO_IMAGE)", "type": "invalid_request_error", "code": "upstream_no_artifact", "upstream_status": 200, "upstream_finish_reason": "NO_IMAGE", "generated_by": "ai-gateway" } } -
上游错误原样返回:透传模型的参数错误由上游返回,格式和错误码以上游为准,例如 Seedream 返回
{"error":{"code":"InvalidParameter","message":"..."}}。上游返回错误状态却没有响应体时,网关补一个错误体,带upstream_status和generated_by: "ai-gateway";上游提供了请求 ID 时还带upstream_request_id,向服务商报障时提供它。 -
日志中不保存图片:请求和响应中的 Base64 图片在日志里替换成
[base64 <字节数>B #<CRC32>]摘要,日志详情里看不到图片不代表请求失败,图片在响应体里。返回 URL 的模型,URL 保留在日志中。 -
超时:图像接口同步返回,Seedream 约 20 秒,GPT-Image 系列实测约 20~60 秒,Gemini 实测 20~250 秒、偶有超过 300 秒。客户端超时请按分钟设置,不低于 300 秒,不要沿用文本接口的 30 秒;客户端超时后不要立即重复提交,先在请求日志中确认上一次请求的结果。
常见错误
网关返回的错误为 {"error":{"message":"...","type":"...","code":"..."}};透传模型的参数错误由上游返回,格式以上游为准。
| 状态码 | error.message |
error.code |
原因与处理 |
|---|---|---|---|
| 400 | you must provide a model parameter |
missing_model |
没有写 model,工作空间也没有默认模型。图像接口请总是写明模型 ID |
| 400 | unsupported parameters for this model: <参数名> |
unsupported_parameters |
带了 X-Gateway-Strict-Parameters: true,且请求中有会被丢弃的参数。删掉列出的参数,或换用支持它们的模型 |
| 400 | prompt is required for this model |
invalid_parameter |
调用 Gemini 时没有写 prompt 或为空 |
| 400 | 上游原文,例如 Request contains an invalid argument. |
upstream_rejected |
Gemini 的上游拒绝了请求,例如 size 写成了 16:9。按原文修改参数 |
| 400 | upstream produced no image (finishReason: <原因>) |
upstream_no_artifact |
Gemini 没有产出图片,按 upstream_finish_reason 修改提示词或内容后重试 |
| 400 | The parameter `size` specified in the request is not valid: image size must be at least 3686400 pixels |
InvalidParameter |
Seedream lite 的尺寸低于下限。改用 2K 档位或更大的宽高,如 1920x1920 |
| 400 | Invalid size '<宽>x<高>'. Width and height must both be divisible by 16. |
— | GPT-Image 的宽或高不是 16 的倍数,由上游返回 |
| 400 | Invalid size '<宽>x<高>'. The longest edge must be less than or equal to 3840.、Invalid size '<宽>x<高>'. Requested resolution is below the current minimum pixel budget.、Invalid size '<宽>x<高>'. Requested resolution exceeds the current pixel budget. |
— | GPT-Image 的 size 最长边超过 3840,或总像素不在约 100 万到约 830 万之间,由上游返回。按上文 size 的四条硬约束调整 |
| 400 | Invalid size '4K'. Expected WIDTHxHEIGHT, for example '1824x1024'. |
— | 给 GPT-Image 传了档位名。改写成 宽x高 |
| 400 | Invalid value: 'xhigh' |
— | 上游账号不支持 xhigh / max 这两档 quality(是否可用由上游账号能力决定)。改用 high |
| 400 | 上游原文 | INVALID_REQUEST_BODY |
GPT-Image 请求体不合法,先检查是否传了 quality:gpt-image-2 不传会间歇性返回 400 |
| 400 | This model does not support the images API |
unsupported_model_api |
模型声明的接口类型(列出模型中的 api_types)不含图像接口,例如用对话模型调用本接口。没有声明 api_types 的对话模型不会触发这条,请求会转发给上游,可能返回 404 upstream_not_found,或返回没有图片的 200(如 {"data":{"content":null}})。图像接口请只用图像模型 |
| 403 | Model is not available in the model plaza |
model_not_available |
工作空间没有开通这个模型,或者写了 @vmodel/<名称>、lyrouter/auto。请管理员在模型广场开通,或改写已开通的具体模型 ID |
- 401 / 403 鉴权问题见401 / 403:鉴权与权限,429 见429:限流与配额。
- 500 / 504 是连接上游失败或等待上游超时,响应体是 HTML 页面而不是 JSON,见超时与流式中断。
- 完整列表见错误码与请求标识。