编辑图片(图生图)
基于一张或多张参考图和文字描述生成新图。使用 OpenAI 标准 multipart/form-data 上传图片二进制。
多图通过 image[] 字段重复传入,单图也可用 image 字段;还可用 image_urls 或 image_urls[] 传参考图 URL。
分层时须在这四种入口中只选一种,且仅传一张参考图,不能混用入口。
计费跟 /v1/images/generations 一致:按 token 计费模型按 usage.input_tokens / output_tokens 结算,按张计费模型按成功输出张数结算。
Seedream 5.0 Pro / Flash 图层拆分
使用支持分层的 Seedream 5.0 Pro / Flash 模型,传入 layer_decomposition: true 和一张待拆分图片。
分层输入仅支持 PNG 或 JPEG;上传文件和 Base64 Data URI 也须使用这两种格式。
prompt 可省略以自动识别主要元素,也可指定需要拆分的元素。普通图片生成仍须传入 prompt。
分层 size 支持 auto(默认)、1K、1.5K、2K;仅支持单张输入,n 须为 1。
返回 1 张底图和最多 16 个带透明通道的 PNG 图层。output_format 仅控制底图格式,图层始终为 PNG。
data 中保留 z_index、name、description、bounding_box;底图 z_index=0,其余图层按数值递增叠放。
bounding_box.absolute 是输出底图中的像素坐标,normalized 是 0–1000 的归一化坐标,均为 [left, top, right, bottom]。
还原时将图层缩放至框的宽高,再放到框的左上角,按 z_index 从小到大叠放;各图层文件尺寸可以与底图不同。
底图和每个成功输出图层分别按实际输出分辨率计费;n=1 不表示只收一张的费用。
这与 sequential_image_generation 组图生成不同;5.0 Pro 不支持组图生成。
Seedream 5.0 Pro 计费方式
普通生成与图层拆分分别按实际输出分辨率结算。每张成功输出的实际像素数为其宽 × 高;261 万像素(2,610,000)及以下为低档,超过该值为高档。
底图也算一张输出;底图和所有成功图层各按自己的实际像素档位计费,同一请求可混合高低档。n=1 是一次拆分请求,不是只计一张费用。
只有成功输出计费,失败请求不扣费并退还冻结金额。
Pro 的首张参考图免费,第 2 张起按参考图张数收取输入费用。每次请求参考图费用为 max(参考图张数 − 1, 0) × 当前账户输入单价,仅计算一次,不按输出张数倍增;输出图片费用另算。分层恰好一张参考图,因此没有参考图输入费用。
适用的账户折扣同时作用于输入和输出单价。具体单价和适用折扣以当前调用站点的模型价格列表为准。
以下请求示例使用国内站;海外调用请使用对应站点和模型 ID。
curl https://api.xrtoken.net/v1/images/edits \
-H "Authorization: Bearer $XRTOKEN_API_KEY" \
-F "model=volcengine/doubao-seedream-5.0-pro" \
-F "image=@source.png" \
-F "layer_decomposition=true" \
-F "size=auto" \
-F "response_format=url"Authorization
BearerAuth API 密钥认证(OpenAI 格式)。在 Authorization 请求头中传入:
Authorization: Bearer tr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X post "https://api.xrtoken.net/v1/images/edits" \ -F model="volcengine/doubao-seedream-5.0-pro" \ -F layer_decomposition="true"{
"created": 0,
"data": [
{
"url": "http://example.com",
"b64_json": "string",
"size": "1273x265",
"output_format": "string",
"z_index": 0,
"name": "string",
"description": "string",
"bounding_box": {
"absolute": [
383,
120,
1655,
384
],
"normalized": [
187,
59,
808,
188
]
}
}
],
"usage": {
"input_images": 0,
"generated_images": 0,
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
}
}{
"error": "model field is required",
"type": "invalid_request_error"
}{
"error": "invalid or missing API key",
"type": "auth_error"
}{
"error": "insufficient balance -- please top up or upgrade your plan",
"type": "billing_error"
}{
"error": "rate limit exceeded",
"type": "rate_limit_error"
}{
"error": "upstream provider error",
"type": "server_error"
}