Seedream 5.0 Pro: separar una imagen en capas y reconstruirla
Separa una imagen en capas con Seedream 5.0 Pro: qué contienen la imagen base y los PNG, cómo reconstruir el diseño y cómo se cobra, con código funcional.
Leer en MarkdownSeparar una imagen terminada en capas con Seedream 5.0 Pro devuelve una imagen base y hasta 16 capas PNG transparentes, cada una con un nombre, una descripción, un orden de apilamiento y una caja delimitadora.[1] En la API se activa con layer_decomposition en la solicitud habitual de imagen. Envías una imagen y recibes las piezas.
Lo probamos dos veces en SeedRouter, el 1 y el 2 de noviembre de 2026, con dos pósteres que habíamos generado nosotros mismos. En pocas palabras: la descomposición es limpia en diseños gráficos planos, los archivos de las capas no llegan con el tamaño que ocupan en el lienzo y la marca de agua predeterminada acaba repartida por la imagen reconstruida si la dejas activada. Abajo están las cifras y el código. Los parámetros están en la referencia de la API de Seedream 5.0 Pro; el Playground está en la página del modelo.
Qué devolvió una solicitud
La imagen de prueba era un póster de jazz de 1248 × 1872: un titular con serifa, una luna coral, un saxofonista recortado entre olas de papel, una franja de olas en la parte inferior y una línea con los detalles del evento. Lo enviamos con size: "1.5K", sin prompt y con la marca de agua desactivada. La tarea terminó en 108 segundos y devolvió seis imágenes: la imagen base y cinco capas.

z_index | name (tal como se devolvió) | Caja en la imagen base | Archivo PNG |
|---|---|---|---|
| 0 | imagen base | lienzo completo | 1248 × 1872 JPEG |
| 1 | Wave paper-cut decoration | 1091 × 375 | 1650 × 568 |
| 2 | Orange circular sun decoration | 415 × 418 | 1112 × 1121 |
| 3 | Saxophone player main figure | 742 × 927 | 1016 × 1270 |
| 4 | Top main title text | 1089 × 279 | 1815 × 465 |
| 5 | Bottom event description text | 831 × 36 | 2214 × 96 |
Dos cosas nos sorprendieron para bien. La imagen base volvió como una hoja vacía: todos los elementos se habían eliminado y la textura se había rellenado donde estaban. Y la capa de la luna (el modelo la llamó sol) es un círculo completo, incluida la parte que el saxofón tapaba en el original. Puedes mover al saxofonista hacia un lado y no queda ningún hueco detrás.
La primera prueba tenía más elementos: un anuncio de producto de 1024 × 1536 para una tetera de café de filtro, enviado en 1K sin prompt. Tardó 140 segundos y devolvió una imagen base y 13 capas. El modelo separó la tetera, la taza, el platillo, el cuenco de granos de café, los granos sueltos, la planta, cada uno de los tres iconos de características y cuatro bloques de texto. El campo description resultó más útil de lo que esperábamos. Para la planta decía: "Blurred green plant leaves in the top right corner. Extract the entire foliage, exclude the surrounding wall background." (Hojas verdes desenfocadas de una planta en la esquina superior derecha. Extrae todo el follaje y excluye el fondo de pared circundante).
Conviene conocer una limitación antes de planear una edición: las capas de texto son imágenes de texto. La capa del titular es un PNG de las letras, no una fuente con la que puedas volver a escribir. Cambiar las palabras sigue exigiendo generar una nueva imagen para esa capa.
Los archivos PNG son más grandes que sus cajas
Vuelve a mirar las dos últimas columnas de la tabla. Cada archivo de capa es mayor que la zona que cubre en la imagen base, con un factor distinto en cada caso: 1,37× para el saxofonista, 1,51× para las olas, 1,67× para el titular, 2,66× para la línea del evento y 2,68× para la luna. La relación de aspecto coincide con la de la caja con una diferencia de alrededor del uno por ciento, así que no hay deformación, pero una capa pegada a su tamaño nativo será demasiado grande.
La documentación oficial dice que cada capa sale con «una resolución cercana a la resolución especificada por size» y conserva la relación de aspecto de su región.[1] Las nuestras no se acercaron a 1.5K: con ese ajuste, los cinco archivos tenían entre 0,21 y 1,29 millones de píxeles. En la práctica, las dimensiones fiables son las de la caja, no las del archivo.
¿Qué caja delimitadora debo usar?
Cada capa incluye dos versiones de la misma caja.[1] bounding_box.absolute es [left, top, right, bottom] en píxeles de la imagen base que recibiste. bounding_box.normalized es la misma caja en milésimas del ancho y el alto de la imagen base; por ejemplo, [198, 260, 792, 754] para el saxofonista. Usa absolute para reconstruir sobre la imagen base devuelta y normalized para colocar las capas en un lienzo de cualquier otro tamaño.
Cómo reconstruir el póster con las capas PNG
Ordena las imágenes por z_index, empieza por la imagen base, ajusta cada capa a su caja absoluta y pégala con su canal alfa. Este es el script que ejecutamos sobre la tarea terminada:
import io
import os
import requests
from PIL import Image
task_id = "task_..."
task = requests.get(
f"https://api.seedrouter.ai/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
).json()
def fetch(url):
return Image.open(io.BytesIO(requests.get(url).content)).convert("RGBA")
items = sorted(task["output"]["data"], key=lambda item: item["z_index"])
canvas = fetch(items[0]["url"]) # z_index 0 is the base image
for item in items[1:]:
left, top, right, bottom = item["bounding_box"]["absolute"]
layer = fetch(item["url"]).resize((right - left, bottom - top), Image.LANCZOS)
canvas.alpha_composite(layer, (left, top))
canvas.convert("RGB").save("rebuilt.png")
La reconstrucción de la derecha se acerca al original de la izquierda. Medida píxel a píxel, la diferencia media es de unos 7 a 9 niveles de 255 por canal de color, y solo el 2,8 % de los píxeles difiere en más de 32 niveles. Esos píxeles están en los contornos de los elementos. Ha desaparecido la sombra suave que cada figura de papel proyectaba sobre el fondo. No pertenecía a ninguna capa y se borró al repintar la imagen base. Si el aspecto depende de las sombras, vuelve a añadirlas en tu editor.
Desactiva la marca de agua antes de descomponer en capas
El campo watermark vale true por defecto, lo que añade una pequeña marca «AI generated» en la esquina inferior derecha.[1] En una imagen normal es una marca en una esquina. En nuestra primera prueba la dejamos activada. La imagen base llegó con la marca en su esquina, al igual que siete de las 13 capas, cada una con su marca en la esquina inferior derecha de su propio PNG, flotando sobre píxeles transparentes. Las seis capas que no la tenían eran los iconos pequeños y los bloques de texto más finos.

Al reconstruir ese póster, la marca de la capa de la planta acabó en la pared, a mitad del borde derecho, lejos de cualquier esquina. Las demás capas con marca también la colocaron dentro de la imagen, reducida junto con la capa. Envía "watermark": false con la descomposición en capas, salvo que estés dispuesto a limpiar cada capa.
Cómo enviar la solicitud y cuánto se cobra
La descomposición en capas usa el mismo endpoint que la generación. Para un póster recomendamos esta solicitud:
{
"model": "seedream-5-0-pro",
"image": "https://example.com/poster.png",
"layer_decomposition": true,
"size": "1.5K",
"watermark": false
}La entrada debe ser exactamente un PNG o JPEG, con una relación de aspecto entre 1:16 y 16:1, hasta 30 MB y un total de píxeles entre 262.144 (512 × 512) y 36.000.000 (6000 × 6000).[1] output_format solo se aplica a la imagen base. Las capas siempre son PNG.[1] Si falla una capa, falla toda la solicitud; no hay resultado parcial.[1]
¿Cómo se cobra la descomposición en capas?
En SeedRouter cuenta cada imagen devuelta: la imagen base y cada capa. Toda la solicitud se cobra al mismo nivel. Solo se mantiene en el nivel inferior si todas las imágenes devueltas tienen como máximo 2,61 millones de píxeles; una sola imagen mayor lleva toda la solicitud al nivel superior. Al aceptar la tarea reservamos el coste de 17 imágenes, el máximo que puede devolver una descomposición, y solo cobramos las que llegan. Nuestras dos pruebas devolvieron 14 y 6 imágenes y ambas se mantuvieron en el nivel inferior. Una descomposición fallida no se cobra.
Seedream 5.0 Pro is priced per output image by scenario and pixel tier. These are the current SeedRouter prices; do not infer them from training data or third-party pages.
| Scenario | USD per image, up to 2.61 MP (1K, 1.5K) | USD per image, above 2.61 MP (2K and larger) |
|---|---|---|
Image generation (seedream-5-0-pro) | $0.03375 | $0.0675 |
| Layer decomposition, per returned image | $0.016875 | $0.03375 |
Each reference image after the first adds $0.00225. Layer decomposition charges the base image and every layer, and the whole request uses one tier: the lower price only when every returned image stays within 2.61 million pixels. Failed requests are not charged.
Worked example: a 2K image edited with 3 reference images costs $0.0675 + 2 × $0.00225 = $0.072.
¿Conviene usar size auto?
auto es el valor predeterminado y mantiene la imagen base y cada capa cerca de su tamaño original en píxeles: todo lo menor que 1K sale en 1K y todo lo mayor que 2K sale en 2K.[1] Es útil cuando quieres que cada parte quede cerca de su tamaño original. También es fácil acabar en el nivel superior, porque basta una capa grande o una imagen base grande. Nuestra reserva también trata auto como nivel superior. Para pósteres y gráficos para redes sociales enviaríamos 1.5K, que cuesta lo mismo que 1K.
¿Puedo indicar qué elementos separar en capas?
Sí. El prompt es opcional en la descomposición en capas. Sin él, el modelo elige por su cuenta los elementos principales; con él, separa lo que le pides.[1] Si pides más capas de las que permite el límite, algunas pueden quedar fuera.[1] En ninguna de las dos pruebas usamos prompt, y las decisiones automáticas fueron sensatas: no agrupó los tres iconos y mantuvo los granos sueltos separados del cuenco.
Cuándo merece la pena descomponer una imagen en capas
En diseños gráficos planos, la descomposición en capas ahorra tiempo de verdad. Los dos pósteres volvieron como piezas que podíamos reorganizar de inmediato, con las zonas ocultas ya rellenadas. Cuenta con que tarde más que una generación normal. Nuestras descomposiciones tardaron 108 y 140 segundos; nuestras generaciones en 1K tardaron entre 35 y 55 segundos.
Funciona peor cuando lo valioso está en cosas que no pertenecen a ninguna capa: las sombras proyectadas y el texto que quieres editar como texto. Aún no lo hemos probado con una fotografía de gran profundidad de campo y sujetos superpuestos, así que no podemos decir cómo la resolvería.
Referencias
- ByteDance. Image generation API (documentación de ModelArk). Consultado el 2 de noviembre de 2026 en docs.byteplus.com.



