Seedance 2.5 已上线 EvoLink立即体验
一张平面海报被拆分为底图与文字、主体、装饰等多个独立透明图层
教程

用 Seedream 5.0 Pro Layerize API 把一张图拆成可编辑图层

Jacey
Jacey
2026年8月15日
12 分钟阅读
现在多数所谓的「AI 修图」,本质上还是把整张图重新生成一遍,然后祈祷你满意的部分能活下来。Seedream 5.0 Pro Layerize(图层拆分)换了个思路:你给它一张成品图,它把这张图拆开还给你——一张底图,加上若干张透明 PNG 图层,每一层都是一个可以单独移动、缩放、替换的元素。
最短路径:向 https://api.evolink.ai/v1/images/generations 发 POST,modeldoubao-seedream-5.0-pro-layerize,带上恰好一张图片 URL。返回的是任务 ID 而不是图片——这个模型是异步的,耗时约 120 秒。之后轮询 GET /v1/tasks/{task_id},等 status 变成 completed,再从 result_data 里取图层。

本文重点讲容易踩坑的地方:三种「指定拆哪些元素」的方式、为什么按张计费让图层数量成为成本的主要变量,以及比普通生成更严格的输入限制。

你会拿到什么

一次请求产出 1 到 17 张图:1 张底图,加最多 16 个图层。
产出格式是什么
底图跟随 output_format(默认 jpeg背景,且被拿走的元素下方会自动补全
图层 1…16恒为带 alpha 通道的 PNG,不受 output_format 影响每层一个元素,其余区域透明

值得停一下的是底图。当 Layerize 把标题文字从海报上揭下来时,它不会留一个洞——而是把文字底下原本的内容重建出来。这正是它和「抠图 / 分割蒙版」的本质区别,也是产出能直接丢进设计软件、不用二次修补的原因。

图层数量不由你决定。没有任何参数能控制它,拆出几层取决于拆分结果。而且没有部分成功——只要有任意一个图层失败,整个请求失败,并全额退款

三种指定图层的方式

prompt 是可选的,三种用法各对应一类活。
Seedream 5.0 Pro Layerize API 的三种图层指定方式:自动全量拆分、自然语言点名元素与 bbox 坐标精确框选
Seedream 5.0 Pro Layerize API 的三种图层指定方式:自动全量拆分、自然语言点名元素与 bbox 坐标精确框选

1. 不传 prompt —— 自动全量拆分

{
  "model": "doubao-seedream-5.0-pro-layerize",
  "image_urls": ["https://example.com/poster.png"],
  "quality": "auto",
  "output_format": "jpeg"
}

完全不给提示词时,模型自己识别图中所有主要元素——文字块、主体、装饰、背景——逐个拆成独立图层。这是这个模型最主要的用法,一张复杂海报通常能拆出十层以上。

有个实现细节反复坑人:要整个键不发,而不是发空字符串。"prompt": "" 会被上游理解成「用户给了一个空提示词」,从而丢掉自动识别的语义。正确做法是请求体里根本没有 prompt 这个键。

2. 自然语言 —— 点名要哪些元素

{
  "model": "doubao-seedream-5.0-pro-layerize",
  "prompt": "把鹦鹉和标题文字拆出来",
  "image_urls": ["https://example.com/poster.png"],
  "quality": "2K"
}

只关心两三个元素、不想为全量拆分买单时用这个。元素是按语义识别的,所以你说「标题文字」就行,不需要知道它在哪个位置。

3. bbox 坐标 —— 精确框定区域

{
  "model": "doubao-seedream-5.0-pro-layerize",
  "prompt": "标题文字<bbox>179 58 809 197</bbox>, 1 只鹦鹉<bbox>330 274 641 991</bbox>",
  "image_urls": ["https://example.com/poster.png"],
  "quality": "1.5K"
}
<bbox> 标签内是四个数字,用归一化的 01000 坐标(不是像素),顺序为 左 上 右 下。当自然语言有歧义时用它——比如同一画面里有两个相似产品,或者有多个文字块、「那个标题」可能指其中任意一个。
一个实用套路:先跑一次自动拆分,从结果里读出各图层的 bounding_box.normalized,再用这些坐标重跑一次,就能拿到你想要的精确切分。

异步流程

第一步 —— 提交任务

curl -X POST https://api.evolink.ai/v1/images/generations \
  -H "Authorization: Bearer $EVOLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedream-5.0-pro-layerize",
    "image_urls": ["https://example.com/poster.png"],
    "quality": "auto"
  }'

返回的是任务句柄,不是图片:

{
  "id": "task-unified-1757165031-seedream5prolayerize",
  "object": "image.generation.task",
  "model": "doubao-seedream-5.0-pro-layerize",
  "status": "pending",
  "progress": 0,
  "type": "image",
  "task_info": { "can_cancel": true, "estimated_time": 120 },
  "usage": { "billing_rule": "per_call", "credits_reserved": 39.168 }
}
注意 credits_reserved:这是按最坏情况预留的预估值,实际扣费按真正产出的图片数量和尺寸结算。

第二步 —— 轮询直到完成

curl https://api.evolink.ai/v1/tasks/task-unified-1757165031-seedream5prolayerize \
  -H "Authorization: Bearer $EVOLINK_API_KEY"
status 会走 pendingprocessingcompleted(或 failed)。按 120 秒左右预算,每 5 秒轮询一次足够。不想轮询就在提交时传 callback_url:仅支持 HTTPS、禁止内网地址、在计费确认后触发,失败最多重试 3 次(间隔 1 秒 / 2 秒 / 4 秒)。

第三步 —— 读取图层

result_data 里每一项都带着足以在任意画布上还原构图的元数据:
字段含义
z_index叠放次序。0 是底图,图层从 1 开始递增
bounding_box.absolute在底图像素坐标系中的位置
bounding_box.normalized同一个框,01000 归一化坐标
name模型生成的名称,例如「绯红金刚鹦鹉」
description对该元素更长的描述
底图只带 z_index: 0,没有 namebounding_box。按 z_index 排序、把每个图层放到它的 absolute 框位置合成,就能精确还原原图。
及时保存文件:生成的图片链接 24 小时后失效。

输入限制比普通生成更严

整条链路里失败最多的就是这一步,因为 Layerize 并不接受普通 Seedream 生成能接受的全部输入。

限制取值
图片数量恰好 1 张。不传或传 2 张及以上都会报错
格式.png.jpeg.jpg——webp 会被拒绝
文件大小≤ 30MB
总像素总量 262,144 到 36,000,000——512×512 是刚好达标的最小正方形
宽高比1:16 到 16:1 之间
URL必须能被服务端直接访问,或访问即触发直接下载
其中两条反复坑人:webp 在普通生成里没问题,在这里会被拒——如果你的管线存的是 webp,调用前先转格式。另外 262,144 的总像素下限比普通生成更高,缩略图会直接失败。
quality 的取值也更窄:图层模式只接受档位 auto1K1.5K2K。传比例(如 16:9)或具体像素(如 2048x2048)会报错。用 auto 时输出跟随原图——原图落在 921,600 到 4,624,220 像素之间就保持原样,低于 1K 则按 1K 输出,高于 2K 则按 2K 输出。

计费:数的是输出图片,不是请求次数

这是第一次看账单时最容易意外的地方。每张输出图按它自己的像素数定档计费——不看底图尺寸,也不是按请求计费。

EvoLink 上的 Layerize 比 BytePlus 官方价低 20%:

项目BytePlus 官方价EvoLink
输入图$0.003$0.0024
输出图 低档(≤ 2,610,000 像素)$0.0225$0.018
输出图 高档(> 2,610,000 像素)$0.045$0.036
1K1.5K 同价,都落在低档。档位是逐张判定的,所以 2K 底图按高档计费,而从它上面揭下来的小文字层按低档计费。

两个实算例子:

简单的 1K 拆分,拆出三个图层: 1 张输入图($0.0024)+ 1 张底图($0.018)+ 3 个图层($0.054)= $0.0744
一张 2K 海报拆出 8 个小文字层: 1 张输入图($0.0024)+ 1 张高档底图($0.036)+ 8 个低档图层($0.144)= $0.1824
结论很清楚:决定成本的是图层数量,不是分辨率。八个小文字层的花费是那张 2K 底图的四倍。所以如果你只需要产品和标题两个元素,就在 prompt 里说清楚,别跑全量自动拆分——把目标从十个元素收窄到两个,省下的是实打实的钱,不是抠细节。

四个会让你翻车的点

  1. "prompt": "" 而不是不发这个键。会直接废掉自动识别——这个模型最好用的能力。
  2. 以为 output_format: "png" 能影响图层。它只管底图。图层恒为带 alpha 的 PNG。
  3. 把失败当成部分成功来处理。没有部分成功。任一图层失败即整体失败并全额退款,所以重试逻辑要按「全有或全无」来写。
  4. 让链接过期。24 小时后就没了。在同一个任务里轮询完就立刻下载。

常见问题

最多能拆出多少层?

1 到 16 个图层,加上底图,最多 17 张输出图。不能指定具体数量,由拆分结果决定。

能控制拆哪些元素吗?

可以,三种方式:不传 prompt 走自动全量拆分;用自然语言描述元素;或用 <bbox> 标签以归一化 0–1000 坐标精确框定。

图层真的是透明 PNG 吗?

是,每个图层都是带 alpha 通道的 PNG,且不受 output_format 影响。那个参数只管底图。

一次调用要多久?

约 120 秒,明显慢于普通图片生成,这也是它设计成异步的原因。不想轮询可以用 callback_url

某个图层失败了会怎样?

整个请求失败——没有部分成功——并且全额退款。

任何图片都能拆吗?

需要 PNG 或 JPEG、总像素至少 262,144(例如 512×512)、小于 30MB、宽高比在 1:16 到 16:1 之间。webp 会被拒绝,尽管普通生成接受它。


想先在浏览器里试,可以去 Seedream 5.0 Pro 模型页,Playground 里有 Layer Split 模式,同样支持上面三种指定方式。实时价格见价格页,上线说明见发布记录

准备好把 AI 成本降低 89% 吗?

现在就开始使用 EvoLink,体验智能 API 路由的强大能力。