OpenRouter 入门与概览
OpenRouter 入门与概览
图像生成
6 分钟阅读
图像生成
如何使用 OpenRouter 的专用图像 API 生成图像
OpenRouter 提供专用的图像 API,可根据文本提示词(以及可选的参考图)生成图像。该 API 覆盖模型发现、各端点能力以及生成。你可以在按图像输出筛选的模型页面浏览可用模型和定价。

提示词与参数
提示词与参数
蓝调时分的当代街区店面建筑摄影,暖光在暮色中柔和发光。入口上方,暖白色手弯霓虹灯以流畅草书精确写着 "OpenRouter",这是画面中唯一的文字。大玻璃窗内可见温馨、有生活气息的室内:木架上摆着书籍与陶瓷,茂盛的垂吊植物,以及柔和的吊灯。门口放着盆栽和一辆自行车,金色灯光洒在湿漉漉的路面上,形成轻柔的反射。正面构图,材质写实,安静的街道上没有行人。
- 模型:
openai/gpt-image-2 - 参数:
quality: "high"、aspect_ratio: "16:9"、n: 1 - 输出:
1536×864PNG - 生成时间:94 秒
- 费用:$0.13
查找模型
通过图像模型 API
专用的图像模型端点会列出所有可用图像模型及其能力:
data 数组中的每条记录包含:
| 字段 | 说明 |
|---|---|
id | 生成请求中使用的模型 slug |
architecture | 模型接受的输入和输出模态 |
supported_parameters | 所有端点能力的并集。每个键是请求字段名;值是能力描述符 |
supports_streaming | 是否有任一端点支持原生服务器发送事件(SSE)流式传输(stream: true) |
endpoints | 指向该模型完整各端点记录的 URL |
各端点记录
同一模型可能由多家模型服务提供商提供。要查看各端点的最终能力、定价和透传选项:
| 字段 | 说明 |
|---|---|
provider_slug | 用于在 provider.options[slug] 中传入模型服务提供商特定参数 |
provider_tag | 用于将请求固定到特定模型服务提供商。当无法进行模型服务提供商级路由时为 null |
supported_parameters | 该端点接受的最终参数集合(模型级并集的子集) |
allowed_passthrough_parameters | 在 provider.options[provider_slug] 下接受的模型服务提供商特定键 |
supports_streaming | 该端点是否支持原生 SSE 流式传输 |
pricing | 该端点的计费价格项。每条记录包含 billable(例如 output_image、input_image、input_reference)、unit(image、megapixel 或 token)、cost_usd,以及可选的 variant 档位(例如分辨率分档定价中的 2k、4k) |
能力描述符
supported_parameters 映射使用带类型的描述符,说明每个请求字段接受什么:
| 类型 | 形状 | 含义 |
|---|---|---|
enum | { type: "enum", values: ["1K", "2K", "4K"] } | 可接受字符串值的离散允许列表 |
range | { type: "range", min: 0, max: 100 } | [min, max] 范围内的任意整数均有效 |
boolean | { type: "boolean" } | 支持(存在)或不支持(不存在) |
若某个键不存在,表示该端点不支持该参数。
通过 Models API
你也可以通过通用的 Models API 发现图像模型:
在模型页面上
访问模型页面,按输出模态筛选,查找具备图像生成能力的模型。
API 用法
向 /api/v1/images 发送包含模型和提示词的 POST 请求:
Unsupported component: <Template>
响应格式
图像以 Base64 编码的字节形式返回。usage 字段在可用时报告 Token 计数和费用。
只要能识别格式(包括 image/png),就会出现 media_type 字段;仅在无法确定格式时才会省略:
对于非 PNG 输出(例如 JPEG、WebP,或 Recraft 矢量模型的 SVG),media_type 会反映实际格式:
图像配置选项
分辨率与宽高比
使用 resolution、aspect_ratio 或便捷简写 size 控制输出尺寸:
resolution:标准化档位(512、1K、2K、4K)。具体像素尺寸由各模型服务提供商推导。aspect_ratio:标准化比例。传入auto可由模型服务提供商自行选择。常见值包括1:1、16:9、9:16、4:3、3:4、3:2、2:3、4:5、5:4,以及扩展比例如1:2、2:1、1:4、4:1、1:8、8:1、9:21、21:9。模型服务提供商会将取值限制在其所支持的子集内。请查看模型的supported_parameters以了解可接受的值。size:便捷简写。传入档位("2K")或明确像素("2048x2048"),会为该模型服务提供商进行标准化。档位尺寸等价于设置resolution,并可与aspect_ratio组合使用。明确的像素尺寸具有决定性。若同时提供了不匹配的resolution或aspect_ratio,请求会以 400 被拒绝。
查看模型的 supported_parameters,了解各端点接受哪些值。
质量与输出格式
quality—auto、low、medium或high。没有质量调节选项的模型服务提供商会忽略该参数。output_format—png、jpeg、webp或svg(仅限矢量化模型;SVG 标记会以 Base64 编码放入b64_json)。background—auto、transparent或opaque。transparent需要支持透明通道的格式(png 或 webp)。output_compression— webp/jpeg 为 0-100。对 png 忽略。
多张图像
使用 n 每次请求最多 10 张图像:
并非所有模型服务提供商都支持 n > 1。请查看模型的 supported_parameters 以确认是否可用。
图生图(参考图)
通过 input_references 传入参考图以引导生成:
参考图可以是 HTTP(S) URL 或 Base64 Data URL。可接受的参考图数量因模型服务提供商而异。
模型服务提供商路由
当一个模型有多家模型服务提供商时,使用 provider 对象指定可由哪些端点处理该请求:
图像 API 支持以下路由字段:
only— 仅允许列出的模型服务提供商 slug。order— 按列出的顺序尝试各模型服务提供商。ignore— 排除列出的模型服务提供商 slug。sort— 按price、throughput或latency对符合条件的端点排序。allow_fallbacks— 为false时,在主模型服务提供商之后停止,不再尝试其他符合条件的模型服务提供商。
使用各端点记录中的 provider_tag 作为基础的模型服务提供商 slug。各 OpenRouter API 共享的路由行为见模型服务提供商路由。
模型服务提供商特定选项
通过 provider.options 传入模型服务提供商特定参数,键名为端点 API 中的模型服务提供商 slug:
各端点记录中的 allowed_passthrough_parameters 字段列出可接受的键。
流式图像生成
支持原生 SSE 流式传输(在发现 API 中 supports_streaming: true)的模型可以在生成过程中返回部分图像:
响应为包含三种事件类型的 SSE 流:
部分图像 — 每当有部分渲染结果可用时发出:
已完成 — 最终图像就绪时发出。只要能识别格式,就会出现 media_type 字段:
对于非 PNG 输出(例如 Recraft 矢量模型的 SVG),media_type 会反映实际格式:
completed 事件中的 usage 对象包含 cost(美元),形状与缓冲响应一致。
错误 — 若生成在流中途失败则发出:
流以 data: [DONE] 结束。
Unsupported component: <Template>
计费与取消
图像生成的计费是全额或零计费。一次生成要么完成并全额计费,要么失败且不计费 — 不存在部分或按比例的图像计费。这与对话补全不同:在对话补全中,即使取消流式请求,仍会按取消前已产生的 Token 计费。
- 已完成的生成按该端点的定价对完整图像输出计费。
- 失败或已取消的生成不计费。当生成未完成时,请求返回
502 Bad Gateway而非部分结果,且不会记录任何费用。
如果客户端在生成过程中断开连接,上游模型服务提供商仍可能完成图像渲染并向 OpenRouter 收费。但无论何种情况,客户端只会看到两种结果之一:已全额计费的完整结果,或错误。OpenRouter 不会对用户未收到的结果尝试计费。
对于流式请求,流结束前送达的任何部分预览图像都不会产生部分费用。计费取决于最终图像是否完成,因此提前终止的流(客户端断开或流中途出错)的计费方式与失败的生成完全相同:完全不计费。
请求参数
| 参数 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 slug(例如 bytedance-seed/seedream-4.5) |
prompt | string | 是 | 所需图像的文本描述 |
n | integer | 否 | 要生成的图像数量(1-10) |
resolution | string | 否 | 分辨率档位(512、1K、2K、4K) |
aspect_ratio | string | 否 | 宽高比(1:1、16:9、9:16、4:3、3:4、1:4、4:1 等) |
size | string | 否 | 便捷简写 — 档位或明确像素("2048x2048") |
quality | string | 否 | auto、low、medium 或 high |
output_format | string | 否 | png、jpeg、webp 或 svg |
background | string | 否 | auto、transparent 或 opaque |
output_compression | integer | 否 | webp/jpeg 的压缩级别(0-100) |
seed | integer | 否 | 用于确定性生成的种子(在支持的情况下) |
stream | boolean | 否 | 通过 SSE 流式传输部分图像 |
input_references | array | 否 | 用于图生图的参考图 |
provider.only | string[] | 否 | 仅允许这些模型服务提供商 slug |
provider.order | string[] | 否 | 按此顺序尝试模型服务提供商 slug |
provider.ignore | string[] | 否 | 排除这些模型服务提供商 slug |
provider.sort | string or object | 否 | 按价格、吞吐量或延迟对符合条件的端点排序 |
provider.allow_fallbacks | boolean | 否 | 当主模型服务提供商失败时,允许改用其他符合条件的模型服务提供商 |
provider.options | object | 否 | 以模型服务提供商 slug 为键的特定参数 |
使用图像模型 API查看各模型和端点支持哪些参数。