Appearance
Images Api
接口用途
OpenAI Images API 兼容入口,用于图片生成和图片编辑。
图片生成和图片编辑都支持同步返回,也支持异步任务模式。异步模式适合处理耗时较长、客户端不想一直等待连接返回的场景。
请求路径
text
POST /v1/images/generations
POST /v1/images/edits也可以使用更短的路径:
text
POST /images/generations
POST /images/edits认证方式
任选一种即可:
Authorization: Bearer <API_KEY>x-api-key: <API_KEY>
适用场景
- 图片生成:
POST /images/generations或POST /v1/images/generations - 图片编辑:
POST /images/edits或POST /v1/images/edits - 异步图片生成:
POST /images/generations或POST /v1/images/generations,并传入异步开关 - 异步图片编辑:
POST /images/edits或POST /v1/images/edits,并传入异步开关 - 异步任务查询:
GET /gpt/images/:task_id
官方 API 参考
支持说明
- 支持 JSON 与 multipart 图片请求
- 支持常见 OpenAI Images API 参数
- API Key 需要具备 OpenAI 图片能力
- 图片生成和图片编辑都可以使用异步任务模式
参数说明
常用字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 通常是 | 图片模型 |
prompt | string | 生成时通常是 | 图片生成提示词 |
image | file | 编辑时通常是 | 原始图片文件 |
mask | file | 否 | 蒙版文件 |
size | string | 否 | 尺寸 |
stream | boolean | 否 | 是否启用流式 |
完整字段请参考 OpenAI 官方规范。
使用限制
| 字段 / 行为 | 说明 |
|---|---|
| API Key 能力 | API Key 必须支持 OpenAI 图片能力 |
| 图片生成权限 | 当前账号或套餐必须允许图片生成 |
| multipart | 图片编辑等上传文件场景可使用 multipart 请求 |
| 空图片结果 | 如果服务没有拿到有效图片结果,会返回错误 |
| 异步模式 | 图片生成和图片编辑都可通过请求头或请求体切换为异步任务 |
| 异步模型限制 | 异步图片任务要求模型名以 gpt-image- 开头 |
stream=true + 异步 | 异步模式不支持 stream=true |
stream=true + 同步 | 不传异步开关时,可以按普通同步链路使用流式 |
同步返回
默认情况下,接口会直接返回标准 OpenAI Images JSON 响应。
示例响应
json
{
"created": 1747470000,
"data": [
{
"url": "https://example.com/generated-image.png"
}
]
}异步图片模式
异步模式会先返回一个任务 ID,客户端再用这个任务 ID 查询任务状态和图片结果。
触发方式
以下两种方式任选其一:
方式一:请求头
http
X-KToken-Async: true推荐使用请求头方式,尤其是图片编辑这类 multipart/form-data 上传文件的请求。
方式二:请求体字段
json
{
"async": true
}请求体字段方式适合 JSON 请求。multipart/form-data 请求请使用 X-KToken-Async: true。
适用接口
POST /v1/images/generationsPOST /images/generationsPOST /v1/images/editsPOST /images/edits
异步返回示例
提交成功后,接口不会直接返回图片结果,而是返回任务对象:
json
{
"object": "task",
"task_id": "f4b8b4f0b1c34d6a9e8f1029384756ab",
"provider": "gpt",
"capability": "image",
"action": "generate",
"status": "queued",
"created": 1747470000
}字段说明
| 字段 | 说明 |
|---|---|
object | 固定为 task |
task_id | 异步任务 ID |
provider | 服务类型,图片任务为 gpt |
capability | 能力类型,图片任务为 image |
action | 操作类型;图片生成是 generate,图片编辑是 edit |
status | 初始状态通常为 queued |
created | 任务创建时间戳 |
轮询接口
使用返回中的 task_id 查询任务状态。推荐使用:
text
GET /gpt/images/:task_id也支持:
text
GET /v1/gpt/images/:task_id轮询接口同样需要 API Key,并且只能查询由同一个 API Key 创建的图片异步任务。
路径参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 异步任务 ID,来自图片异步提交响应 |
轮询响应字段
| 字段 | 说明 |
|---|---|
task_id | 任务 ID |
request_id | 上游任务 ID;没有时会省略 |
status | 任务状态 |
created_at | 创建时间戳 |
started_at | 开始处理时间戳 |
finished_at | 完成时间戳 |
expires_at | 任务过期时间戳 |
url | 成功后返回的第一张图片 URL |
download_url | 当前与 url 相同 |
error | 失败时返回,包含 code 与 message |
常见状态包括:queued、running、succeeded、failed、expired、cancelled。
轮询响应示例
排队或运行中:
json
{
"task_id": "f4b8b4f0b1c34d6a9e8f1029384756ab",
"request_id": "upstream_task_id",
"status": "running",
"created_at": 1747470000,
"started_at": 1747470001,
"expires_at": 1747473600
}成功后:
json
{
"task_id": "f4b8b4f0b1c34d6a9e8f1029384756ab",
"request_id": "upstream_task_id",
"status": "succeeded",
"created_at": 1747470000,
"started_at": 1747470001,
"finished_at": 1747470020,
"expires_at": 1747473600,
"url": "https://example.com/generated-image.png",
"download_url": "https://example.com/generated-image.png"
}失败时:
json
{
"task_id": "f4b8b4f0b1c34d6a9e8f1029384756ab",
"status": "failed",
"created_at": 1747470000,
"finished_at": 1747470020,
"error": {
"code": "upstream_error",
"message": "Image generation failed"
}
}常见状态包括:queued、running、succeeded、failed、expired、cancelled。
错误响应
当前 API Key 不支持图片接口
json
{
"error": {
"type": "not_found_error",
"message": "Images API is not supported for this platform"
}
}没有图片生成权限
json
{
"error": {
"type": "permission_error",
"message": "Image generation is not allowed for this group"
}
}异步模式不支持流式
json
{
"error": {
"type": "invalid_request_error",
"message": "Async mode does not support stream=true"
}
}异步模型不符合要求
json
{
"error": {
"type": "invalid_request_error",
"message": "k-token image generation requires an image model such as gpt-image-2"
}
}示例请求
同步生成
bash
curl https://api.nvue.dev/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只戴眼镜的橘猫坐在书桌前"
}'异步生成:请求头触发
bash
curl https://api.nvue.dev/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "X-KToken-Async: true" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只戴眼镜的橘猫坐在书桌前"
}'异步生成:请求体触发
bash
curl https://api.nvue.dev/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只戴眼镜的橘猫坐在书桌前",
"async": true
}'异步编辑:请求头触发
bash
curl https://api.nvue.dev/images/edits \
-H "Authorization: Bearer sk-xxxx" \
-H "X-KToken-Async: true" \
-F model=gpt-image-2 \
-F prompt="把背景改成夜晚的城市街道" \
-F image=@input.png同步流式请求
不传异步开关时,请求会走普通图片链路,可以使用 stream=true。
bash
curl https://api.nvue.dev/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只戴眼镜的橘猫坐在书桌前",
"stream": true
}'轮询异步任务
bash
curl https://api.nvue.dev/gpt/images/f4b8b4f0b1c34d6a9e8f1029384756ab \
-H "Authorization: Bearer sk-xxxx"注意事项
- 图片接口不是所有 API Key 都可用;如果不确定,请先确认当前 API Key 是否支持 OpenAI 图片能力
- 异步模式依赖图片异步任务能力;如果未开通,会按普通同步图片接口处理或返回相关错误
- 异步提交响应不包含
poll_url字段;请用返回的task_id拼接/gpt/images/:task_id轮询 - 使用异步模式时,不要等待提交请求直接返回图片 URL,应轮询任务状态
- 异步模式不能和
stream=true同时使用;需要流式返回时,请不要传X-KToken-Async: true或"async": true