Images Generations
使用 OpenAI 兼容 Images API 生成图片,支持非流式 Base64 JSON 与 typed SSE。
最后更新: 2026-08-14POST
/v1/images/generations按提示词生成一张或多张图片。
| 参数 | 类型 | 要求 | 说明 |
|---|---|---|---|
model | string | 必填 | 已启用且具备 image_generation 能力的模型编码。 |
prompt | string | 必填 | 非空提示词。 |
n | integer | 可选 | 输出张数,默认 1;计费按实际成功图片张数结算。 |
size | string | 可选 | 模型价格矩阵支持的尺寸,默认 auto。 |
quality | string | 可选 | 模型价格矩阵支持的质量,默认 auto。 |
stream | boolean | 可选 | true 时返回 typed SSE;默认 false。 |
partial_images | integer | 可选 | 流式预览张数,仅 stream=true 时使用。 |
curl --request POST 'https://api.easerouter.com/v1/images/generations' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"model":"gpt-image-1","prompt":"雨后霓虹街道","n":1,"size":"1024x1024","quality":"medium"}'{
"created": 1786670000,
"data": [{ "b64_json": "iVBORw0KGgo..." }],
"usage": { "total_tokens": 128 }
}from openai import OpenAI
client = OpenAI(base_url="https://api.easerouter.com/v1", api_key="YOUR_API_KEY")
response = client.images.generate(
model="gpt-image-1", prompt="雨后霓虹街道", size="1024x1024", quality="medium"
)
png_base64 = response.data[0].b64_jsonimport OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://api.easerouter.com/v1', apiKey: 'YOUR_API_KEY' })
const response = await client.images.generate({
model: 'gpt-image-1', prompt: '雨后霓虹街道', size: '1024x1024', quality: 'medium'
})
const pngBase64 = response.data[0].b64_jsonTyped SSE 流
event: image_generation.partial_image
data: {"type":"image_generation.partial_image","partial_image_index":0,"b64_json":"..."}
event: image_generation.completed
data: {"type":"image_generation.completed","created":1786670000,"b64_json":"..."}- 客户端必须按 event 字段处理 image_generation.partial_image 与 image_generation.completed;completed 事件本身就是终止事件,服务端不会追加 Chat 风格的结束哨兵。
- 网络中断、超时或未知提交结果可能进入 SUBMIT_UNKNOWN;最终图片已产生但结算未完成时可能进入 BILLING_PENDING。不要盲目重试。
- 每个 partial/final Base64 图片解码后不得超过 50 MB;单次 final 总量不得超过 300 MB,流式累计传输不得超过 2560 MB。
计费与可靠性
价格由模型、size、quality 和每张固定价格共同决定。请求前冻结 n 张的上限金额,完成后按实际成功图片张数结算;拒绝、明确失败或未产生图片时释放冻结。流断开不代表调用未发生。
安全与保留
- 仅在服务端保存 API Key;不要把 Key、完整提示词、Base64 图片或上游凭据写入日志。
- EaseRouter 不持久化输入图片、输出图片、partial 图片或完整提示词,只保留计费、路由、状态与脱敏审计元数据;临时文件在请求结束后删除。
- 不要依赖响应中的图片长期可用;b64_json 应由调用方解码并安全保存。
错误
{"error":{"message":"model is required","type":"invalid_request_error","param":"model","code":"invalid_request"}}鉴权、参数、并发/配额、上游超时和处理失败使用真实非 2xx HTTP 状态及顶层 error 对象,不使用 code/msg/result。