图片生成
POST /v1/images/generations
OpenAI 兼容的图片生成接口,当前主力模型为 gpt-image-2。支持同步与异步两种模式:
- 同步:一次请求阻塞到出图,直接返回图片(适合低并发、即时场景)。
- 异步:提交后立即拿到任务 ID,再轮询取结果(适合大批量、避免长连接超时)。
同步:POST /v1/images/generations
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 是 | 模型 ID,如 gpt-image-2。 |
prompt |
string | 是 | 图片描述提示词。 |
n |
integer | 否 | 生成数量,当前仅支持 1(默认 1)。 |
size |
string | 否 | 图片尺寸,如 1024x1024、1536x1024(gpt-image-2 支持;部分模型不支持)。 |
quality |
string | 否 | 画质参数(gpt-image-2 支持;部分模型不支持)。 |
注意:
gpt-image-2不接受response_format参数,网关会自动忽略它,无需传入。
请求示例
cURL
curl https://api.openbili.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-image-2",
"prompt": "a red fox running in snow, studio lighting",
"n": 1
}'Python
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.openbili.com/v1",
)
resp = client.images.generate(
model="gpt-image-2",
prompt="a red fox running in snow, studio lighting",
n=1,
)
b64 = resp.data[0].b64_json # base64 编码的 PNG响应
返回 base64 内联的图片:
{
"created": 1730000000,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": "..."
}
]
}前端展示时加前缀:data:image/png;base64,<b64_json>。
异步:POST /v1/images/generations/async
请求体与同步完全一致(model / prompt / n / size / quality),但立即返回任务 ID,不阻塞出图。适合批量生成或客户端不希望长连接等待的场景。
1. 提交任务
curl https://api.openbili.com/v1/images/generations/async \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-image-2",
"prompt": "a red fox running in snow",
"n": 1
}'返回 202 Accepted:
{
"id": "nximg_xxxxxxxx",
"status": "queued",
"created": 1730000000,
"object": "image.generation.async"
}2. 轮询结果:GET /v1/images/generations/async/{job_id}
curl https://api.openbili.com/v1/images/generations/async/nximg_xxxxxxxx \
-H "Authorization: Bearer YOUR_API_KEY"status 取值:queued → processing → succeeded(或 failed)。建议每 1–2 秒轮询一次,通常数秒到数十秒完成。
进行中:
{ "id": "nximg_xxxxxxxx", "status": "processing", "created": 1730000000 }完成:
{
"id": "nximg_xxxxxxxx",
"status": "succeeded",
"created": 1730000000,
"data": [
{
"url": "https://<bucket>.r2.cloudflarestorage.com/...&X-Amz-Signature=...",
"revised_prompt": "..."
}
]
}失败:
{
"id": "nximg_xxxxxxxx",
"status": "failed",
"created": 1730000000,
"error": { "type": "upstream_error", "message": "generation failed", "code": "..." }
}关于
url:与同步返回内联 base64 不同,异步成功时返回一个带签名的下载链接(有效期约 2 小时)。请在有效期内下载/转存,过期需重新生成。失败任务不计费。
参数说明
| 字段 | 说明 |
|---|---|
id |
任务 ID(nximg_ 前缀),用于轮询。与你的 API Key 所属组织绑定,他人无法访问。 |
status |
queued / processing / succeeded / failed。 |
data[].url |
成功时的图片下载链接(presigned,约 2h 有效)。 |
data[].revised_prompt |
模型改写后的提示词(可能为空)。 |