GPT Image 2.5 Flare 与 Sunburst 已上线 EvoLink立即体验
跳到正文
概念插画:带蓝色物体和珊瑚色点缀的米白设计分离为透明薄层
教程

Seedream 5.5 图层拆分后,如何重组画面与修改文字

按位置框和叠放顺序重组 Seedream 5.5 PNG 图层,将可用 OCR 转为可编辑文字,并在制作广告或语言变体前检查排版与交付。

JessieCOO
16 分钟阅读

Seedream 5.5 图层拆分返回底图、透明 PNG 图层和位置元数据。要把这些结果变成可编辑设计,应用还需要缩放并定位图层、保留叠放顺序,并根据可用的 OCR 创建文字对象。下载 PNG 只是这项工作的起点。

本文面向通过 EvoLink 开发广告变体、多语言海报或设计编辑工具的工程师,依据 2026 年 11 月 13 日核验的路由文档编写。配图使用已归因的 BytePlus 官方样例与说明示意,不是 EvoLink API 实测结果。如果只需要一张可复用切图,请看透明 PNG 指南。

先确定哪些内容需要保持可编辑

从一张已确认的海报和一个具体修改开始:移动商品、替换标题,或制作另一种语言的版本。修改任务决定了你需要什么交付物。

交付物可以改什么应用还要完成什么
一张透明 PNG整张图片的位置构图与导出
底图与 PNG 图层独立元素的位置和可见性缩放、定位、叠放与检查
图层与富文本 OCR已识别文字及近似样式原生文字对象、字体映射、排版与保存
图层拆分不直接导出 PSD,也不是恢复原始设计源文件。多个物体可能共用一层,文字也可能仍是栅格图像。在此基础上开发流程前,先确认要修改的元素是否已独立拆出。模型选择说明解释了普通生成与 Layerize 的适用区别。

请求工作流真正需要的元素

在 EvoLink 使用 doubao-seedream-5.5-layerize,输入必须恰好是一张可访问的 PNG 或 JPEG。普通生成接受的输入不同,不要把多参考图设置直接带入这个路由。密钥保存在服务端。
首次梳理元素时,可以不传可选 prompt,并用 model_params.text_recognition: true 请求 OCR。需要特定元素时,采用文档支持的自然语言或 bbox 定位,不要假定所有可见物体都会独立拆出。即使请求了 OCR,也必须允许响应不包含该字段。
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.5-layerize",
    "image_urls": ["YOUR_PUBLIC_IMAGE_URL"],
    "quality": "auto",
    "output_format": "png",
    "n": 30,
    "model_params": {"text_recognition": true}
  }'
将 YOUR_PUBLIC_IMAGE_URL 替换为服务器可访问的图片 URL。n: 30 是包含底图的输出上限,不承诺一定返回 30 张。EvoLink 接受 2 至 100 的 n,实际输出可能更少。清晰度使用 quality: auto、1K、1.5K 或 2K,不使用 16:9 这样的比例。
保存返回任务的 id,通过 GET /v1/tasks/{task_id} 查询完成情况或处理失败。读取实际 result_data,不按固定数组长度处理。按路由文档,任一图层失败会导致整项请求失败并退款。完成后及时保存文件,结果链接有效期为 24 小时。完整契约见图层拆分 API 文档。

重组 Seedream 5.5 拆出的 PNG 图层

底图的 z_index 为 0,更大的值叠放在上方。图层位置来自 bounding_box,坐标基准是输出底图。输入海报、输出底图和图层文件本身,不能被当作同一个坐标系统。
BytePlus 官方海报、底图与重组画面对照
BytePlus 官方海报、底图与重组画面对照
来自 BytePlus Seedream 5.5 官方样例:左侧为输入图,中间为底图,右侧为使用其提供的 PNG 图层在本地合成的画面。各面板已缩小展示。这是官方样例文件的合成,不是 EvoLink 生成测试,也不代表像素级复原。
对于 [left, top, right, bottom],展示宽度是 right - left,高度是 bottom - top。先把图层缩放到这个矩形,再放到 (left, top)。不要把后两个数当成宽高,也不要按每个下载文件的原尺寸直接粘贴。
例如,官方样例中主讲人信息文字图层的文件为 1166×899,但底图中的位置框是 [1142, 528, 1474, 784],即 332×256 像素。这说明仅凭文件尺寸无法恢复排版。这是该公开样例的属性,不是对实际输出尺寸的承诺。
下面的本地清单是应用适配格式,不是 API 响应。下载文件后,将底图以及每层的文件、位置框和 z_index 映射为该格式。这里的坐标仅作示例,需要换成你自己结果中的元数据。
任务文档用 results 提供图片地址,Layerize 说明中的 result_data 补充位置与 OCR。先保存完整响应并下载文件,确认文件与元数据的对应关系后再制作清单。底图按 z_index: 0 识别,不靠猜文件名。除非当前响应契约有明确规定,不要自行按数组下标拼接两组信息;对应关系不清楚时应核对实际任务文档。本文未执行 EvoLink 生成请求,只运行了本地样例文件合成。
{
  "base": "base.png",
  "layers": [
    {"file": "layer-1.png", "box": [120, 80, 420, 280], "z": 1}
  ]
}
运行 python -m pip install pillow 安装 Pillow。将下段保存为 reassemble.py,把 layers.json 与图片放在一起,然后运行 python reassemble.py layers.json。脚本检查本地几何和叠放信息,输出供视觉检查的预览;不会重建可编辑文字,也不能认证模型画质。
import json
import sys
from pathlib import Path
from PIL import Image

manifest = Path(sys.argv[1])
data = json.loads(manifest.read_text())
root = manifest.parent
with Image.open(root / data["base"]) as image:
    canvas = image.convert("RGBA")
width, height = canvas.size
layers = data["layers"]
orders = [item["z"] for item in layers]
if any(type(z) is not int or z <= 0 for z in orders):
    raise ValueError("Layer order must be a positive integer")
if len(set(orders)) != len(orders):
    raise ValueError("Duplicate layer order")
for item in sorted(layers, key=lambda layer: layer["z"]):
    box = item["box"]
    if len(box) != 4 or any(type(v) is not int for v in box):
        raise ValueError("Expected four integer box coordinates")
    left, top, right, bottom = box
    if not (0 <= left < right <= width and 0 <= top < bottom <= height):
        raise ValueError("Box outside the base image or empty")
    with Image.open(root / item["file"]) as image:
        layer = image.convert("RGBA").resize(
            (right - left, bottom - top), Image.Resampling.LANCZOS
        )
    canvas.alpha_composite(layer, dest=(left, top))
canvas.save(root / "reassembled.png")
图层缺少可信位置框、顺序重复或坐标无效时,应停止并检查,不要悄悄放到原点。缩放与合成时保留 PNG 的 Alpha,并用透明度与边缘检查方法检查光边和细小结构。

将 OCR 转成可编辑文字

规整文字图层的 text_recognition 可以包含完整文本、lines、每行的 bounding_box 和带样式的 runs。官方指南也将文字行位置框定义在底图坐标中,不要再加一次父图层的位置偏移。
把识别文本作为起点,核对内容和阅读顺序,将 similar_font_family 映射到可用且已获授权的字体,再应用编辑器支持的 foreground_color 与样式标记。字体和属性都是估计值。艺术字、手写字可能没有 OCR;缺失时,应转人工重建文字或保留图片图层。

用原生文字替换文字图层时,隐藏对应的栅格版本,避免新旧文字重叠。如果一张栅格图层含多行,而你只替换其中一行,应只遮盖或移除该行的栅格文字,保留其余行;也可以先重建所有需要保留的文字,再隐藏整张栅格图层。将文字对象、字体选择和排版保存进应用文档,OCR 数据本身不等于已保存的可编辑设计。

similar_font_family 为 unknown 时,应明确选择覆盖所需字形且具备使用授权的回退字体,再检查排版。样式标记为 false 表示模型没有识别到该样式,不证明原图一定没有它。这些值是识别提示,不是精确设计属性。

改编设计时避免拉伸

底图坐标与另一种版式的关系示意
底图坐标与另一种版式的关系示意
坐标示意,不是模型输出。等比缩放可保留相对位置;改变宽高比时需要明确的排版选择。
宽高比不变时,对整个构图使用同一缩放比例。使用归一化位置框时,对两个角分别计算 x = normalized_x × target_width / 1000、y = normalized_y × target_height / 1000。使用绝对框时,以实际输出底图尺寸换算。全流程使用一致的坐标路径。

方形海报改成长版广告,不能只乘坐标。你需要选择保留留白、裁剪,还是重新安排元素。横向和纵向独立缩放可能拉伸商品与文字。移动物体也可能露出重建背景的瑕疵,应检查新露出的区域,不能假定它就是原始被遮挡场景。

制作语言变体时,先替换一个标题,检查字形覆盖、换行、文本框高度、视觉层级和前景遮挡。分开保存源状态与修改状态,便于审阅者对照。翻译和重排由应用完成,不会因返回 OCR 自动完成。

批量制作变体前先验收

现象先检查什么下一步
图层过大或位置错误位置框定义、底图尺寸、文件到框的缩放再请求模型前先修正合成变换
遮挡顺序错误递增 z_index 与保留的可见性恢复正确叠放
文字重影或缺行栅格文字可见性与替换范围确保每行只保留一种呈现,避免栅格字与原生字重复
无 OCR 或样式不准是否规整文字及实际 OCR 字段人工重建文字或保留栅格图层

先检查重组的源画面,再修改;修改后按交付尺寸检查商品身份、边缘、背景补全、遮挡、文字与最终导出。坐标正确,不代表像素级复原或设计已达到可用标准。

预算按实际输出图片计算。EvoLink 文档说明,任务开始按一张输入图加 n 张 2K 输出图预留,最终根据实际生成图片及各自像素档位结算。较大上限可能多预留余额,却未必是当前修改所需。费率使用现有价格区,本文不另建价格表。
下一项任务可以打开 Seedream 5.5 Layerize。通过 EvoLink,你可以沿用同一套接入中的模型选择、密钥、余额和异步任务处理;合成、可编辑文档与验收由应用负责。

常见问题

Seedream 5.5 会直接返回 PSD 吗?

EvoLink 当前路由文档描述的是图片和元数据,不是原生 PSD。设计文档需要编辑器或导出程序来创建。

n: 30 表示 30 个独立前景图层吗?

不是。它限制包含底图的全部输出图片数,实际可能更少,应读取返回项目。

应该按图层 PNG 的原尺寸放置吗?

以它在底图中的位置框为准。文件可能比该矩形更大,需要先缩放再合成。

可以使用归一化坐标重组吗?

可以,按目标画布尺寸换算 0–1000 坐标中每个角的位置。改变宽高比时,仍需明确选择适配、裁剪或重排。

每张文字图层都会包含 OCR 吗?

不会。请求识别后,仍需检查 text_recognition 是否存在。规整文字受支持,艺术字和手写字可能需要人工处理。

OCR 能认出准确的原始字体吗?

不能保证。similar_font_family 是近似匹配,不证明字体身份或使用授权。应选择可用字体并检查效果。

图层没对齐时应该重新生成吗?

先查叠放、位置框理解与缩放,这些合成错误可以本地修正。视觉内容缺失或不可用时,才可能需要编辑或重新拆分。

不证明。它们使用官方样例和本地文件操作解释文档中的工作流,没有测量 API 成功率、复原精度或速度。

来源

通过统一 API 接入 AI 模型

比较模型能力与当前价格,再按 API 文档接入适合你任务的模型。