同步生成与编辑
同步接口使用普通模型 API Token,在同一个 HTTP 请求中等待图片生成完成。结果通常位于 data[].url;请求 response_format: "b64_json" 时,从 data[].b64_json 读取。
端点
| 能力 | 方法与路径 | 请求格式 |
|---|---|---|
| 文生图 | POST /v1/images/generations | JSON |
| URL / Base64 图片编辑 | POST /v1/images/edits | JSON |
| 本地文件 / Mask 编辑 | POST /v1/images/edits | multipart/form-data |
bash
export SUPERTOKEN_BASE_URL="https://api.supertoken.cc"
export SUPERTOKEN_KEY="YOUR_MODEL_API_TOKEN"
export IMAGE_MODEL="gpt-image-2"同步文生图
POST /v1/images/generations
bash
curl -sS "$SUPERTOKEN_BASE_URL/v1/images/generations" \
-H "Authorization: Bearer $SUPERTOKEN_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$IMAGE_MODEL"'",
"prompt": "一张电影感产品摄影,透明玻璃杯放在黑色石材桌面上,柔和侧光",
"n": 1,
"size": "1024x1024",
"quality": "low",
"output_format": "png"
}' | jq .典型响应:
json
{
"created": 1784682000,
"data": [
{
"url": "https://example.com/generated/image.png"
}
],
"output_format": "png",
"quality": "low",
"size": "1024x1024"
}具体响应字段和可用参数以所选模型的实际返回为准。
同步图片编辑
POST /v1/images/edits
本地多图
本地文件使用 multipart,请重复传入 image 字段。客户端会自动生成 boundary,不要手动设置 Content-Type。
bash
curl -sS "$SUPERTOKEN_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SUPERTOKEN_KEY" \
-F "model=$IMAGE_MODEL" \
-F "prompt=融合两张参考图的主体与场景,保持自然光影" \
-F "image=@./reference-1.png" \
-F "image=@./reference-2.png" \
-F "size=1024x1024" \
-F "quality=low" \
-F "output_format=png" | jq .关于 image[]
推荐统一重复使用 image。部分客户端会把多文件字段写成 image[],但重复 image 最直观。
公开 URL 多图
URL 编辑使用 JSON,字段名是单数 image,值可以是 URL 字符串或 URL 数组:
bash
jq -nc \
--arg model "$IMAGE_MODEL" \
--arg image1 "https://img.example.com/reference-1.png" \
--arg image2 "https://img.example.com/reference-2.png" \
'{
model: $model,
prompt: "将两张参考图融合,保留第一张主体和第二张背景",
image: [$image1, $image2],
size: "1024x1024",
quality: "low",
output_format: "png"
}' |
curl -sS "$SUPERTOKEN_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SUPERTOKEN_KEY" \
-H "Content-Type: application/json" \
--data-binary @- | jq .URL 必须是服务端可直接访问的 http:// 或 https:// 图片直链,不能依赖 Cookie、登录态或浏览器临时授权。
不支持 images[].image_url
同步编辑当前不接受 {"images":[{"image_url":"https://..."}]}。请改为 {"image":["https://..."]},否则对象会按 Base64 输入解析,并返回缺少 b64_json、base64、data 或 image 的错误。
Base64
Base64 可以传纯编码或 data:image/png;base64,... 数据 URL。对象形式还可以指定文件名:
bash
IMAGE_BASE64="$(base64 < ./reference-1.png | tr -d '\n')"
jq -nc \
--arg model "$IMAGE_MODEL" \
--arg image "$IMAGE_BASE64" \
'{
model: $model,
prompt: "把图片背景改为日落海边",
image: [
{b64_json: $image, filename: "reference-1.png"}
],
size: "1024x1024",
quality: "low",
output_format: "png"
}' |
curl -sS "$SUPERTOKEN_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SUPERTOKEN_KEY" \
-H "Content-Type: application/json" \
--data-binary @- | jq .Mask 局部编辑
mask 最多一张。透明区域表示需要编辑的部分,建议原图和 Mask 使用相同尺寸:
bash
curl -sS "$SUPERTOKEN_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SUPERTOKEN_KEY" \
-F "model=$IMAGE_MODEL" \
-F "prompt=仅将透明区域替换为一盆绿色植物" \
-F "image=@./source.png" \
-F "mask=@./mask.png" \
-F "size=1024x1024" \
-F "quality=low" \
-F "output_format=png" | jq .选择输入格式
| 图片来源 | 推荐请求格式 | 字段 |
|---|---|---|
| 本地文件 | multipart/form-data | 重复 image |
| 公开图片直链 | JSON | image: ["https://..."] |
| 已有 Base64 | JSON | image: [{"b64_json":"..."}] |
| 局部编辑 | multipart/form-data | image + 单个 mask |
完整 Python 和 Node.js 程序见代码示例,字段范围和上传限制见参数与错误。