XRToken API 文档

异步生成图片

API 配置
保存后下方「Try It」面板会自动携带此 API Key 发送真实请求。
Base: api.xrtoken.net

提交异步图片任务,立即返回任务 id。通过 GET /v1/images/async/{taskId} 轮询状态;处理时间取决于模型和路由,请持续轮询至终态。 请求体为 multipart/form-data。image 或 image[] 可直传参考图,image_urls 或 image_urls[] 可传 URL。 URL 入口接受单 URL、JSON URL 数组文本或重复同名字段。分层须只选一种入口,并且仅含一张图片;不传参考图时普通生成为文生图。 提交时冻结预估金额,status=succeeded 时按实际用量扣费;失败、拒绝或错误自动退还冻结金额。 分层成功时,result.data 返回底图和图层元数据。平台归档时可能将内嵌 b64_json 转为 url,但仍保留 z_index、name、description、bounding_box 等图层字段。

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/async \
  -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"

也可使用已上传图片 URL;如传数组,分层数组仍须仅含一个 URL:

curl https://api.xrtoken.net/v1/images/async \
  -H "Authorization: Bearer $XRTOKEN_API_KEY" \
  -F "model=volcengine/doubao-seedream-5.0-pro" \
  -F 'image_urls=["https://example.com/source.png"]' \
  -F "layer_decomposition=true" \
  -F "size=auto"
POST
/v1/images/async

Authorization

BearerAuth
AuthorizationBearer <token>

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

curl -X post "https://api.xrtoken.net/v1/images/async" \  -F model="volcengine/doubao-seedream-5.0-pro" \  -F layer_decomposition="true"
{
  "id": "4efa6a93-c0c8-4418-b11f-60152b3ce130",
  "request_id": "tr-req-2ee8d1734e29472c9c7a15c7bd07bc76",
  "status": "queued",
  "model": "string",
  "created_at": 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"
}