请先登录
立即登录图层分解 API 文档
图层分解服务提供两类能力:通用图层分解与海报图层分解。两类服务共用一套异步调用流程:通过 submit_task 提交任务获取 task_id,再通过 query_task 查询结果;如需在提交任务前生成初始检测框,可调用 object_detect。
服务能力对照
| 能力 | model | version | 无框 pipeline_type | 有框 pipeline_type | image_boxes 限制 | steps 默认值 | 特有输出 |
|---|---|---|---|---|---|---|---|
| 通用图层分解 | reveal_layer | v2.3 | all | crop | 有框模式最少 1 个、最多 6 个;无框模式不传 | 10 | 返回 layers_fg_mask |
| 海报图层分解 | ecommerce_layer | v1.1 | all | crop | 有框模式最少 1 个、最多 20 个;无框模式不传 | 28 | 不返回 layers_fg_mask |
公共请求头
| Header | 类型 | 必填 | 说明 |
|---|---|---|---|
| accept | string | 是 | 固定为 application/json |
| Content-Type | string | 是 | 固定为 application/json |
| Authorization | string | 是 | Bearer your_key |
图片输入规范
input 为图片输入数组,每个元素表示一张输入图片,结构为 { "type": "input_image", "image_url": "image_data" }。
图片支持 image_url 形式输入 https://xxx.jpg;也可以 data:image/png;base64,base64_str 形式输入。URL 形式输入目前只支持以 http/https 开头、域名非 IP 地址、以 jpg、jpeg、png 或 bmp 结尾的图片 URL。输入图片最短边的像素需要不小于 128,否则报错;同时需要满足 aspect_ratio 最大值不大于 5.0,即不允许输入长条状图片。
坐标框规范
image_boxes 使用二维数组表示,格式为 [[x1, y1, x2, y2], [x3, y3, x4, y4]]。坐标以图片左上角为原点,x1,y1 为左上点,x2,y2 为右下点。
1. submit_task 提交任务
提交图层分解任务。服务端受理后返回 task_id,客户端使用该 ID 查询任务状态与输出结果。
Request Method
POST /submit_task
Request Body
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 服务模型标识:通用图层分解传 reveal_layer;海报图层分解传 ecommerce_layer。 |
| version | string | 是 | 模型版本:通用图层分解传 v2.3;海报图层分解传 v1.1。 |
| time_out | int | 是 | 任务期望过期时间,单位秒;示例值为 3600。 |
| input | object[] | 是 | 图片输入数组,元素结构为 { "type": "input_image", "image_url": "..." }。 |
| pipeline_type | string | 是 | 无框自动检测传 all,此时不需要传 image_boxes;有框分解统一传 crop,并同时传 image_boxes。 |
| image_boxes | number[][] | 条件必填 | 有框分解时必填,无框自动检测时不传。格式为 [[x1, y1, x2, y2]];通用图层分解最多 6 个框,海报图层分解最多 20 个框。box 会按输入图最长边等比缩放到 1024,缩放后最小边不小于 8 像素,否则报错;输入框会进行 IOU 过滤,过滤后通过 boxes_mapping_index 返回与用户输入框的下标映射。 |
| seed | int | 否 | 随机种子,默认 42,范围 0 到 0xFFFFFFFF;用于控制结果的可复现性。 |
| steps | int | 否 | 采样步数,范围 [10, 30];通用图层分解默认 10,海报图层分解默认 28。 |
通用图层分解请求示例
{
"model": "reveal_layer",
"version": "v2.3",
"time_out": 3600,
"input": [
{
"type": "input_image",
"image_url": "https://example.com/input.jpg"
}
],
"pipeline_type": "crop",
"image_boxes": [[137, 224, 590, 1022], [523, 59, 988, 1022]],
"seed": 42,
"steps": 10
}
海报图层分解请求示例
{
"model": "ecommerce_layer",
"version": "v1.1",
"time_out": 3600,
"input": [
{
"type": "input_image",
"image_url": "https://example.com/poster.jpg"
}
],
"pipeline_type": "all",
"seed": 42,
"steps": 28
}
Response
| 字段 | 类型 | 说明 |
|---|---|---|
| version | string | 同输入版本 |
| model | string | 同输入模型名 |
| timestamp | int | 返回时间戳,单位毫秒 |
| task_id | string | 可供查询的任务 ID |
| message | string | 成功为 success,失败为具体原因 |
| response_status | int | 成功为 0,失败为 -1 |
2. query_task 查询任务
根据 task_id 查询任务状态。任务完成后,响应中的 output 字段会返回图层图片、检测框和处理后的辅助图片。
Request Method
POST /query_task
Request Body
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 通用图层分解传 reveal_layer;海报图层分解传 ecommerce_layer |
| version | string | 是 | 通用图层分解传 v2.3;海报图层分解传 v1.1 |
| task_id | string | 是 | submit_task 返回的任务 ID,需要完全一致 |
Response
| 字段 | 类型 | 说明 |
|---|---|---|
| version | string | 同输入版本 |
| model | string | 同输入模型名 |
| timestamp | int | 返回时间戳,单位毫秒 |
| task_id | string | 查询的任务 ID |
| message | string | 成功为 success,失败为具体原因 |
| response_status | int | 成功为 0,失败为 -1 |
| generation_time | int | 任务生成耗时,单位秒;任务成功时通常大于 0 |
| remaining_time | float | 任务预计剩余处理时间,单位秒 |
| status | string | 任务状态,见下方状态说明 |
| usage | object | 计费字段,包含 prompt_tokens 和 total_tokens |
| output | object/null | 任务完成后的图层分解结果 |
status 状态
| 状态 | 说明 |
|---|---|
| done | 任务处理结束并得到期望结果 |
| generating | 任务正在 GPU 服务推理 |
| in_queue | 任务正在排队 |
| not_found | 任务未找到,可能任务丢失、提交超过一个月或 task_id 不存在 |
| failed | 任务失败,具体原因查看 message |
output 字段
| 字段 | 类型 | 通用图层分解 | 海报图层分解 | 说明 |
|---|---|---|---|---|
| layers_base_count | int | 返回 | 返回 | 图层图片数量,比 image_boxes 数量多 1;第一张为背景图。 |
| layers_base | string[] | 返回 | 返回 | 图层分解基础结果,以 PNG 图片 URL 展示。 |
| layers_aug | string[] | 返回 | 返回 | 图层分解增强结果,以 PNG 图片 URL 展示。 |
| layers_fg_mask | string[] | 返回 | 不返回 | 通用图层分解的增强前景 mask,对应 layers_aug 的前景图层,数量通常为 layers_base_count - 1。 |
| resized_image | string | 返回 | 返回 | 图层分解流程 resize 后的原图。 |
| resized_bbox_image | string | 返回 | 返回 | 图片前处理后与 image_boxes 融合的带框图片 URL。 |
| image_boxes | number[][] | 返回 | 返回 | 检测框列表,顺序和 layers_base[1:] 图片顺序一致。无框提交时由模型检测得出;有框提交时返回经过 IOU=0.8 过滤后的用户输入框。 |
| resized_image_boxes | number[][] | 返回 | 返回 | image_boxes 经图层分解前处理 resize 后的框坐标,顺序和 layers_base[1:] 图片顺序一致。无框时为模型检测框 resize 后结果;有框时为 IOU 过滤后用户输入框 resize 后结果。 |
| boxes_mapping_index | int[] | 返回 | 返回 | 经过 IOU 过滤后的 boxes 与用户输入 image_boxes 之间的下标映射关系。 |
3. object_detect 物体检测
输入图片并直接返回检测框,可用于在提交有框分解前生成初始画框。
Request Method
POST /object_detect
Request Body
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| version | string | 是 | 通用物体检测传 v2.3;海报物体检测传 v1.1 |
| model | string | 是 | 通用物体检测传 reveal_layer;海报物体检测传 ecommerce_layer |
| input | object[] | 是 | 图片输入数组,元素结构同 submit_task 的 input 字段 |
通用物体检测示例
{
"version": "v2.3",
"model": "reveal_layer",
"input": [
{
"type": "input_image",
"image_url": "https://example.com/input.jpg"
}
]
}
海报物体检测示例
{
"version": "v1.1",
"model": "ecommerce_layer",
"input": [
{
"type": "input_image",
"image_url": "https://example.com/poster.jpg"
}
]
}
Response
| 字段 | 类型 | 说明 |
|---|---|---|
| version | string | 同输入版本 |
| model | string | 同输入模型名 |
| image_boxes | number[][] | 检测出的图片框,格式同 submit_task 的 image_boxes |
| original_bbox_image | string | 用户输入图片和 image_boxes 融合后的带框图片 URL |
| usage | object | 计费字段,包含 prompt_tokens 和 total_tokens |
| message | string | 成功为 success,失败为具体原因 |
| response_status | int | 成功为 0,失败为 -1 |
通用图层提交任务
通用图层查询任务
海报图层提交任务
海报图层查询任务
通用图层物体检测
海报图层物体检测
复制
Response
复制