Appearance
图片生成与编辑
图片 API兼容 OpenAI Images 的常用字段,并允许不同模型保留额外参数。图片生成和编辑都从对应的 /v1/images/* 入口提交;默认同步返回,设置 async: true 后返回异步任务。模型能力以对应模型页为准。
图片生成
POST /v1/images/generations 接收 JSON:
json
{
"model": "gpt-image-2",
"prompt": "A clean product photograph on a transparent background",
"n": 1,
"size": "1024x1024",
"quality": "medium",
"response_format": "url"
}图片编辑
JSON 请求适合使用 HTTPS URL 或 data URL 引用图片:
bash
curl --fail-with-body --silent --show-error \
"$SOURCESDATA_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SOURCESDATA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "Replace the background with a clean white studio",
"images": ["https://dance.sourcesdata.com/v1/images/proxy/<temporary-token>"],
"response_format": "url"
}' | jq .上传本地文件时使用 multipart/form-data:
bash
curl --fail-with-body --silent --show-error \
"$SOURCESDATA_BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $SOURCESDATA_API_KEY" \
-F 'model=gpt-image-2' \
-F 'prompt=Replace the background with a clean white studio' \
-F '[email protected]' \
-F 'response_format=url' | jq .不要假设所有模型都支持相同的参考图数量、MIME 类型和文件大小。网关可能在请求进入供应商前拒绝超出模型能力的输入。
响应格式
同步 URL响应:
json
{
"created": 1786579200,
"data": [
{ "url": "https://dance.sourcesdata.com/v1/images/proxy/<temporary-token>" }
]
}Base64 响应:
json
{
"created": 1786579200,
"data": [{ "b64_json": "<base64>" }]
}长耗时同步图片可设置 stream=true,并按模型支持情况设置 partial_images(最多 3)接收 SSE 预览事件。事件可能包含 Base64 或本站图片 URL,终止帧为 data: [DONE];客户端必须逐帧解析,不能把整个响应当作一个 JSON 对象。
默认同步图片请求不会返回 task_id。如果业务需要异步执行,请在同一个图片入口设置 async: true:
bash
curl --fail-with-body --silent --show-error \
"$SOURCESDATA_BASE_URL/v1/images/generations" \
-H "Authorization: Bearer $SOURCESDATA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "A clean product photograph on a transparent background",
"n": 1,
"size": "1024x1024",
"response_format": "url",
"async": true
}' | jq .参考图可通过非空 images 数组传入。提交后按异步任务查询,完成结果位于任务响应的 url 或 data[]。
下载与持久化
- 签名图片 URL默认有效 30 分钟,应及时下载到自己的受控存储。
- 下载时允许重定向,但客户端不应记录最终后端地址。
- 不要通过替换 URL路径、token 或任务 ID推导其他资源。