Seedance 2.5 ya está disponible en EvoLinkProbar Seedance 2.5
Un cartel plano se separa en una imagen base y capas transparentes independientes para texto, sujeto y decoración
Tutorial

Separar una imagen en capas editables con la API de Seedream 5.0 Pro Layerize

Jacey
Jacey
Founder
15 de agosto de 2026
10 min de lectura
La mayor parte de lo que hoy se llama «edición de imagen con IA» sigue consistiendo en regenerar la imagen entera y confiar en que sobrevivan las partes que te gustaban. Seedream 5.0 Pro Layerize hace algo distinto: le entregas una imagen terminada y te la devuelve desmontada — una imagen base más capas PNG transparentes independientes, cada una un elemento que puedes mover, escalar o sustituir por separado.
El camino más corto: POST https://api.evolink.ai/v1/images/generations con model: "doubao-seedream-5.0-pro-layerize" y exactamente una URL de imagen. Lo que recibes es un identificador de tarea, no una imagen: este modelo es asíncrono y tarda unos 120 segundos. Después consulta GET /v1/tasks/{task_id} hasta que status sea completed y extrae las capas de result_data.
Esta guía cubre los puntos donde es fácil equivocarse: las tres formas de indicar qué elementos separar, por qué la facturación por imagen generada convierte el número de capas en la variable decisiva, y las restricciones de entrada, más estrictas que en la generación normal.

Qué recibes de vuelta

Una petición produce entre 1 y 17 imágenes: una imagen base más hasta 16 capas.
SalidaFormatoContenido
Imagen basesigue output_format (jpeg por defecto)El fondo, reconstruido bajo todo lo que se ha retirado
Capas 1 a 16siempre PNG con canal alfa, con independencia de output_formatUn elemento cada una, transparente en el resto

Lo que merece una pausa es la imagen base. Cuando Layerize retira un titular de un cartel, no deja un hueco: reconstruye lo que había debajo del texto. Esa es la diferencia de fondo con una máscara de segmentación, y la razón por la que el resultado entra directamente en una herramienta de diseño.

El número de capas no lo decides tú. Ningún parámetro lo controla; lo determina el resultado de la separación. Y no existe el éxito parcial: si falla una sola capa, falla la petición completa y se reembolsa íntegramente.

Tres formas de seleccionar capas

El campo prompt es opcional, y cada una de las tres formas encaja con un trabajo distinto.
Los tres modos de selección de la API Seedream 5.0 Pro Layerize: separación automática completa, selección semántica de elementos y selección exacta por caja delimitadora
Los tres modos de selección de la API Seedream 5.0 Pro Layerize: separación automática completa, selección semántica de elementos y selección exacta por caja delimitadora

1. Omitir el prompt — separación automática completa

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

Sin ningún prompt, el modelo localiza por su cuenta todos los elementos relevantes — bloques de texto, sujetos, decoración, fondo — y separa cada uno en su propia capa. Este es el uso principal del modelo, y un cartel complejo suele volver con diez capas o más.

Un detalle de implementación con el que tropieza mucha gente: omite la clave por completo, no envíes una cadena vacía. "prompt": "" se interpreta aguas arriba como «el usuario ha proporcionado una instrucción vacía» y se pierde la detección automática. El cuerpo de la petición simplemente no debe incluir la clave prompt.

2. Lenguaje natural — nombrar los elementos que quieres

{
  "model": "doubao-seedream-5.0-pro-layerize",
  "prompt": "Separa el loro y el texto del título",
  "image_urls": ["https://example.com/poster.png"],
  "quality": "2K"
}

Úsalo cuando solo te interesen dos o tres elementos y no quieras pagar una separación completa. Los elementos se identifican semánticamente, así que «el texto del título» basta sin necesidad de saber dónde está.

3. Coordenadas bbox — delimitar la región exacta

{
  "model": "doubao-seedream-5.0-pro-layerize",
  "prompt": "texto del título<bbox>179 58 809 197</bbox>, 1 loro<bbox>330 274 641 991</bbox>",
  "image_urls": ["https://example.com/poster.png"],
  "quality": "1.5K"
}
La etiqueta <bbox> admite cuatro números en coordenadas normalizadas 01000 (no píxeles), en el orden izquierda arriba derecha abajo. Recurre a ella cuando el lenguaje natural resulte ambiguo: dos productos parecidos en el mismo encuadre, o varios bloques de texto donde «el encabezado» podría referirse a cualquiera.
Un método práctico: lanza primero una separación automática, lee los valores bounding_box.normalized de las capas obtenidas y vuelve a ejecutar con esas coordenadas para conseguir exactamente el corte que buscas.

El flujo asíncrono

Paso 1 — enviar la tarea

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"
  }'

La respuesta es un identificador de tarea, no una imagen:

{
  "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 }
}
Fíjate en credits_reserved: es una estimación reservada por adelantado, dimensionada para el peor caso. El cargo real se calcula a partir de las imágenes que efectivamente se devuelven.

Paso 2 — sondear hasta que termine

curl https://api.evolink.ai/v1/tasks/task-unified-1757165031-seedream5prolayerize \
  -H "Authorization: Bearer $EVOLINK_API_KEY"
status pasa por pendingprocessingcompleted (o failed). Calcula unos 120 segundos; sondear cada 5 segundos es más que suficiente. Si prefieres no sondear, envía una callback_url al crear la tarea: solo HTTPS, sin direcciones IP internas, se dispara tras confirmarse la facturación y reintenta hasta 3 veces a 1 s / 2 s / 4 s.

Paso 3 — leer las capas

Cada elemento de result_data incluye los metadatos necesarios para reconstruir la composición en cualquier lienzo:
CampoSignificado
z_indexOrden de apilado. 0 es la imagen base; las capas empiezan en 1
bounding_box.absolutePosición en el sistema de coordenadas en píxeles de la imagen base
bounding_box.normalizedEl mismo rectángulo en coordenadas 01000
nameEtiqueta generada por el modelo, por ejemplo «guacamayo escarlata»
descriptionDescripción más extensa del elemento
La imagen base solo lleva z_index: 0, sin name ni bounding_box. Ordenar por z_index y componer cada capa en su rectángulo absolute reproduce la imagen original con exactitud.
Guarda los archivos cuanto antes: los enlaces de las imágenes generadas caducan a las 24 horas.

Las restricciones de entrada son más estrictas que en la generación normal

Aquí es donde más peticiones fallan, porque Layerize no acepta todo lo que sí admite la generación normal de Seedream.

RestricciónValor
Número de imágenesExactamente 1. Ninguna, o dos o más, da error
Formatossolo .png, .jpeg, .jpgwebp se rechaza
Tamaño de archivo30 MB como máximo
Píxeles totalesde 262 144 a 36 000 000 en total — 512×512 es el cuadrado más pequeño que cumple
Relación de aspectoentre 1:16 y 16:1
URLel servidor debe poder acceder directamente, o la URL debe iniciar una descarga directa
Dos de estas pillan a la gente una y otra vez. webp funciona en la generación normal y aquí se rechaza: si tu canalización almacena webp, conviértelo antes de llamar. Además, el mínimo de 262 144 píxeles es más alto que en la generación normal, así que las miniaturas fallan directamente.
quality también es más restrictivo: el modo de capas acepta únicamente niveles (auto, 1K, 1.5K, 2K). Pasar una relación como 16:9 o píxeles explícitos como 2048x2048 devuelve error. Con auto, la salida sigue a la entrada: se mantiene igual si el original está entre 921 600 y 4 624 220 píxeles, sube a 1K por debajo y se limita a 2K por encima.

Facturación: se cuentan imágenes generadas, no peticiones

Esto es lo que más sorprende en la primera factura. Cada imagen generada se tarifica según su propio número de píxeles, no según el tamaño de la imagen base ni por petición.

En EvoLink, Layerize se cobra un 20 % por debajo de la tarifa pública de BytePlus:

ConceptoTarifa pública BytePlusEvoLink
Imagen de entrada0,003 $0,0024 $
Imagen generada, nivel bajo (≤ 2 610 000 px)0,0225 $0,018 $
Imagen generada, nivel alto (> 2 610 000 px)0,045 $0,036 $
1K y 1.5K cuestan lo mismo: ambos caen en el nivel bajo. El nivel se decide imagen a imagen, así que una imagen base en 2K se factura al nivel alto mientras que las pequeñas capas de texto retiradas de ella van al nivel bajo.

Dos ejemplos calculados:

Una separación 1K sencilla en tres capas: 1 imagen de entrada (0,0024 $) + 1 imagen base (0,018 $) + 3 capas (0,054 $) = 0,0744 $
Un cartel 2K que se separa en 8 capas pequeñas de texto: 1 imagen de entrada (0,0024 $) + 1 imagen base de nivel alto (0,036 $) + 8 capas de nivel bajo (0,144 $) = 0,1824 $
La conclusión: lo que dispara el coste es el número de capas, no la resolución. Ocho capas pequeñas de texto cuestan cuatro veces lo que la imagen base en 2K. Si solo necesitas el producto y el titular, dilo en el prompt en lugar de lanzar una separación automática completa: pasar de diez elementos a dos es un ahorro real, no un ajuste menor.

Cuatro errores frecuentes

  1. Enviar "prompt": "" en lugar de omitir la clave. Anula la detección automática, que es lo mejor del modelo.
  2. Suponer que output_format: "png" afecta a las capas. Solo controla la imagen base. Las capas siempre son PNG con canal alfa.
  3. Tratar un fallo como éxito parcial. El éxito parcial no existe. Si falla una capa, falla todo y se reembolsa por completo, así que la lógica de reintento debe asumir «todo o nada».
  4. Dejar que caduquen los enlaces. A las 24 horas desaparecen. Descarga en el mismo proceso que hace el sondeo.

Preguntas frecuentes

¿Cuántas capas puedo obtener?

Entre 1 y 16 capas más la imagen base, es decir, 17 imágenes como máximo. No se puede solicitar un número concreto: lo decide el resultado de la separación.

¿Puedo controlar qué elementos se convierten en capas?

Sí, de tres formas: omitir el prompt para una separación automática completa, describir los elementos en lenguaje natural, o delimitarlos con etiquetas <bbox> en coordenadas normalizadas 0–1000.

¿Las capas son realmente PNG transparentes?

Sí: cada capa es un PNG con canal alfa, y output_format no influye en ello. Ese parámetro solo afecta a la imagen base.

¿Cuánto tarda una llamada?

Unos 120 segundos. Es bastante más lento que la generación normal de imágenes, y por eso la API es asíncrona. Usa callback_url si prefieres no sondear.

¿Qué pasa si falla una capa?

Falla la petición completa — no hay éxito parcial — y se reembolsa íntegramente.

¿Funciona con cualquier imagen?

Necesita un PNG o JPEG con al menos 262 144 píxeles en total (512×512, por ejemplo), menos de 30 MB y una relación de aspecto entre 1:16 y 16:1. webp se rechaza aunque la generación normal sí lo acepte.


Para probarlo en el navegador, entra en la página del modelo Seedream 5.0 Pro: el playground incluye un modo Layer Split con las mismas tres opciones de selección. Las tarifas vigentes están en la página de precios, y la nota de lanzamiento resume qué se ha publicado.

¿Listo para reducir tus costos de IA en un 89%?

Comienza a usar EvoLink hoy y experimenta el poder del enrutamiento inteligente de API.