API 参考
图片:异步任务
POST
/v1/images/tasksGET
/v1/images/tasks/{task_id}GET
/v1/images/tasks/{task_id}/content异步图片生成,目录里的图片模型都走这个接口。提交后返回 task_id;轮询状态接口,再从 /content 读取长期有效的结果 URL;也可以注册回调,省去轮询。
#请求参数
modelstring必填异步图片模型 ID,如 gpt-image-2。同步模型会拒绝该端点。
promptstring必填要画什么。
sizestring可选宽高比,如 "16:9",大多数图片模型都用这种写法,可选值见模型卡。部分老模型也接受像素写法 WIDTHxHEIGHT。
resolutionstring可选输出分辨率档位,如 "1K"、"2K"、"4K",模型卡里有这个参数时才能用;也影响计费档位。
qualitystring可选厂商质量级别(如 standard / hd)——同样是计费档位维度。
ninteger可选生成张数(按张数叠加计费)。
imagesarray可选要修改或参照的图片,填网址或 data URI。每个模型最多收几张,以模型卡为准。
maskstring可选只重画第一张参考图上的一块区域,见下方「只改图片的一部分」。模型卡里列出 mask 的模型才收这个字段;写成 mask_url 也一样。
webhook_urlstring可选任务到达终态时回调的 HTTPS 地址——回调契约见视频指南。
webhook_secretstring可选设置后,回调带 X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret))。
每个模型的参数不一样
每个模型能填哪些字段、取哪些值,以模型卡为准。gpt-image-2.5-ext 的 size 填宽高比,再配 resolution;像 2560x1088 这样的像素尺寸会换成最接近的宽高比和分辨率(21:9、2K)。它不能设置 background:"auto" 会被忽略,其他值会被拒绝。每次只出一张图,也不能选 version:不传,或者传 "flare"。
字段名可能因模型家族而异
任务状态载荷来自上游厂商的原样上报;具体字段以实际响应为准,可依赖的是跨厂商稳定的 task_id、status 和 /content 端点。
#只改图片的一部分
在 images 里放原图,再传一个 mask:只重画蒙版圈出的区域,其他地方保持不变。在 prompt 里写清那块要变成什么。目前 gpt-image-2.5-flare 和 gpt-image-2.5-sunburst 支持;模型卡上显示为 mask 字段。
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "Replace the mug with a glass of orange juice; keep everything else",
"images": ["https://example.com/desk.png"],
"mask": "https://example.com/desk-mask.png",
"resolution": "1K"
}'蒙版怎么做
用带透明通道的 PNG:完全透明的像素就是要重画的地方,其余保留。尺寸必须和第一张参考图的像素尺寸完全一样(不是输出尺寸),不超过 4 MB。每次只能传一张蒙版;有多张参考图时,只作用在第一张上。用 gpt-image-2.5 模型时不要传 size,结果会保持原图的比例。
- 400 invalid_request传了 mask 但没有参考图,或者这个模型不收 mask(gpt-image-2.5-ext 会返回 "mask is not supported on Ext")。
#相关错误码
- 404 not_found路径不存在、模型名不存在,或 task_id 已过期 / 不属于当前账号。
- 401Bearer 令牌无效或缺失。这条路径不带 error.code,请按状态码判断。
- 402 insufficient_user_quota钱包余额不足以覆盖预扣估算。
- 429密钥级限流。响应体为空,按 Retry-After 等待。若 429 带有 insufficient_user_quota,那是每日消费上限,不是限流。
- 503 model_not_found模型名不存在,或当前没有健康渠道可以服务它。
#请求示例
# 1. submit
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-image-2.5-ext", "prompt": "A red paper crane on a desk", "size": "16:9", "resolution": "1K"}'
# 2. poll every 3s until a terminal status
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. fetch persistent result URLs
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID/content -H "Authorization: Bearer sk-YOUR_KEY"#响应
response.json
// POST /v1/images/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/images/tasks/{task_id}
{"task_id": "task_xxx", "status": "in_progress", "progress": "60%"}
// GET /v1/images/tasks/{task_id}/content — after completion
{"created": 1720000000, "data": [{"url": "https://…"}]}还是没解决?
把请求 ID 或报错信息发给我们,我们来查。