submit
提交生图或编辑任务。
使用 OpenAI Images 兼容格式提交图片任务。服务会先返回
task_id,你再轮询任务状态并读取图片内容。
https://maolaoapi.com/v1/images/tasks
提交生图或编辑任务。
用 task_id 查询状态。
下载受保护的图片正文。
在请求头中放入 MaolaoAPI 令牌。示例里的密钥只是占位符,不要把真实密钥写进前端源码或公开仓库。
Authorization: Bearer sk-你的API_KEY
任务归属于令牌对应的账号。同一账号下的其他有效令牌可以查询任务,其他账号会得到
404 task not found。
不传 action 时,默认创建图片生成任务。请求体与
/v1/images/generations 保持兼容。
curl -X POST "https://maolaoapi.com/v1/images/tasks" \
-H "Authorization: Bearer sk-你的API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-enterprise",
"prompt": "一只坐在月球上的橘猫,电影级光影",
"size": "1024x1024",
"quality": "high",
"n": 1,
"response_format": "b64_json"
}'
{
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"status": "queued"
}
HTTP 202 表示任务已接收。生成结果、参数错误、余额错误或模型错误都会在任务状态中返回。
请求时直接传 MaolaoAPI 对外模型名即可。下面列出当前常用 GPT 图片模型的
size 支持情况,其中 gpt-image-2-4K 是既有 4K 档位模型。
| 模型 | 默认 size | 支持尺寸 |
|---|---|---|
gpt-image-1-enterprise |
1024x1024 |
1024x1024、1024x1536、1536x1024
|
gpt-image-1.5-enterprise |
1024x1024 |
1024x1024、1024x1536、1536x1024
|
gpt-image-2-enterprise |
1024x1024 |
1024x1024、1024x768、768x1024、
1024x1536、1536x1024、2048x2048、
2048x1152、1152x2048、2560x1088、
1088x2560、2880x2160、2160x2880、
3840x2160、2160x3840,以及符合规则的
WIDTHxHEIGHT 自定义尺寸。
|
gpt-image-2-4K |
1024x1024 |
支持 4K 档位输出,可使用 1024x1024、1024x1536、
1536x1024、3840x2160、2160x3840
等合法 WIDTHxHEIGHT 尺寸。
|
gpt-image-2-enterprise 和 gpt-image-2-4K
使用自定义尺寸时,宽高都需要是 16 的倍数,宽高比需要在 1:3 到 3:1 之间,
最大不超过 3840x2160 等效边界。
size
1024x1024、1024x1536、1536x1024
quality
默认 medium。建议使用 low、medium、high。
size
1024x1024、1024x1536、1536x1024
quality
默认 medium。建议使用 low、medium、high。
size
支持上方尺寸表中的全部预设尺寸,也支持符合规则的 WIDTHxHEIGHT。
quality
默认 medium。建议使用 low、medium、high。
size
支持合法 WIDTHxHEIGHT 尺寸,可用于 3840x2160、2160x3840 等 4K 档位。
quality
建议使用 low、medium、high。
resolution 和 aspect_ratio 表达尺寸。
quality。
{
"model": "grok-imagine-image",
"prompt": "一辆停在雨夜街角的复古跑车",
"extra_fields": {
"resolution": "2k",
"aspect_ratio": "16:9"
},
"response_format": "b64_json"
}
model
图片模型名称。建议始终显式填写。
prompt
图片描述或编辑指令。
n
请求图片数量,默认 1。实际交付数量以 result.data.length 为准。
size
GPT Enterprise 模型不传时默认 1024x1024。
quality
GPT Enterprise 模型不传时默认 medium。
response_format
建议使用 b64_json,结果会转换成站内图片内容地址。
把 action=edits 放在查询参数中。图片编辑任务使用同一个对外模型名。
curl -X POST "https://maolaoapi.com/v1/images/tasks?action=edits" \
-H "Authorization: Bearer sk-你的API_KEY" \
-F "model=gpt-image-2-enterprise" \
-F "prompt=把背景替换成夜晚的东京街道" \
-F "image=@input.png" \
-F "size=1024x1024" \
-F "quality=high"
异步执行可以避免等待生成结果时的 HTTP 超时,但不能绕过请求体大小限制。
可以重复传 image 字段上传多张图片。不同模型的输入图数量上限不同,超出上限会返回错误。
curl -X POST "https://maolaoapi.com/v1/images/tasks?action=edits" \
-H "Authorization: Bearer sk-你的API_KEY" \
-F "model=gpt-image-1.5-enterprise" \
-F "prompt=合并两张图的主体,保持自然光照" \
-F "image=@input-a.png" \
-F "image=@input-b.png" \
-F "size=1024x1024" \
-F "quality=medium"
/v1/images/tasks/{task_id}
curl "https://maolaoapi.com/v1/images/tasks/task_xxx" \
-H "Authorization: Bearer sk-你的API_KEY"
{
"task_id": "task_xxx",
"status": "succeeded",
"progress": "100%",
"expires_at": 1784200000,
"result": {
"created": 1784196400,
"data": [
{
"url": "/v1/images/tasks/task_xxx/content/0",
"revised_prompt": "..."
}
]
}
}
如果 result.data[].url 以 /v1/ 开头,请拼接 API 域名,并继续携带 Bearer Token。
curl "https://maolaoapi.com/v1/images/tasks/task_xxx/content/0" \
-H "Authorization: Bearer sk-你的API_KEY" \
-o result.png
普通 <img src> 不能附加 Authorization 请求头,不要直接把受保护的相对地址放进
src。
const baseURL = 'https://maolaoapi.com'
const apiKey = 'sk-你的API_KEY'
async function createImageTask() {
const response = await fetch(`${baseURL}/v1/images/tasks`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'gpt-image-2-enterprise',
prompt: '一座漂浮在云海上的未来城市',
size: '1024x1024',
quality: 'high',
n: 1,
response_format: 'b64_json',
}),
})
if (!response.ok) throw new Error(await response.text())
return response.json()
}
async function waitForTask(taskId) {
while (true) {
const response = await fetch(
`${baseURL}/v1/images/tasks/${encodeURIComponent(taskId)}`,
{ headers: { Authorization: `Bearer ${apiKey}` } },
)
if (!response.ok) throw new Error(await response.text())
const task = await response.json()
if (task.status === 'succeeded') return task.result
if (task.status === 'failed') {
throw new Error(task.error || '图片生成失败')
}
await new Promise((resolve) => setTimeout(resolve, 2500))
}
}
请求体仍然采用 OpenAI Images 格式。当前 Gemini 图片适配器支持最终模型名称以
imagen 开头的模型。
curl -X POST "https://maolaoapi.com/v1/images/tasks" \
-H "Authorization: Bearer sk-你的API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "imagen-4.0-generate-001",
"prompt": "赛博朋克风格的重庆夜景",
"n": 1,
"size": "16:9",
"quality": "2K",
"response_format": "b64_json"
}'
imagen-* 以及映射后为 imagen-* 的业务别名。
Gemini 原生 contents、parts、generationConfig 请求体。
200任务查询或图片读取成功。202任务已接收,需要继续轮询。400action、参数或当前任务状态不合法。401API Key 缺失或无效。404任务、图片序号不存在,或任务不属于当前账号。410图片正文已经过期。413请求超过上传限制。{
"error": {
"message": "task not found",
"type": "invalid_request_error"
}
}
到期后任务状态和审计记录仍然保留,但图片正文无法继续读取。
{
"task_id": "task_xxx",
"status": "succeeded",
"progress": "100%",
"result_expired": true,
"expires_at": 1784200000
}
?group=xxx 不能覆盖 API Key 对应的分组。n。