> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Usa Seedream 5.0 260128 con Comfy Router

> Llama a byteplus/seedream-5-0-260128 mediante Comfy Router: endpoint, forma de la solicitud y respuesta que devuelve Router.

Referencia de API para `byteplus/seedream-5-0-260128`, servida por Comfy Router desde BytePlus.

**Entrada:** Texto, Imagen · **Salida:** Imagen

## Inicio rápido

Crea una clave en [tu espacio de trabajo de Comfy](https://platform.comfy.org/profile/api-keys?onboarding=router) y expórtala como `COMFY_API_KEY`. Los fragmentos de Python y TypeScript usan los SDK de Comfy (`pip install comfy-sdk` y `npm install @comfyorg/sdk`); el fragmento de cURL es la misma llamada mediante HTTP sin procesar.

**ID del modelo:** `byteplus/seedream-5-0-260128`

**Endpoint:** `POST https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128`

**Esperar el resultado**

```python Python theme={null}
from comfy_sdk import Comfy

# Lee COMFY_API_KEY del entorno.
# El SDK crea automáticamente una clave de idempotencia y la reutiliza para los reintentos automáticos.
with Comfy() as client:
    result = client.models.run(
        "byteplus/seedream-5-0-260128",
        {
            "prompt": "A red fox trotting through a snowy pine forest, cinematic lighting",
            "response_format": "url",
            "watermark": False,
        },
    )

print(result)
```

```typescript TypeScript theme={null}
import { comfy } from "@comfyorg/sdk";

// Lee COMFY_API_KEY del entorno.
// El SDK crea automáticamente una clave de idempotencia y la reutiliza para los reintentos automáticos.
const { data } = await comfy.models.run("byteplus/seedream-5-0-260128", {
  prompt: "A red fox trotting through a snowy pine forest, cinematic lighting",
  response_format: "url",
  watermark: false,
});

console.log(data);
```

```bash cURL theme={null}
curl https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128 \
  -H "X-API-Key: $COMFY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d "{\"prompt\": \"A red fox trotting through a snowy pine forest, cinematic lighting\", \"response_format\": \"url\", \"watermark\": false}"
```

**Encolar y recoger más tarde**

El mismo cuerpo, enviado a `POST https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128/requests`. Router responde `201` con un `request_id` en cuanto se admite la ejecución, y el resultado se recoge cuando está listo, desde este proceso u otro. [Entrega en cola](https://docs.comfy.org/es/development/comfy-router/queue.md) explica el estado, la cancelación y la recogida.

```python Python theme={null}
import asyncio
from comfy_sdk import AsyncComfy

# Lee COMFY_API_KEY del entorno.
# Cada llamada a submit() genera su propia Idempotency-Key y la reutiliza para los reintentos automáticos.
async def main():
    async with AsyncComfy() as client:
        handle = await client.models.submit(
            "byteplus/seedream-5-0-260128",
            {
                "prompt": "A red fox trotting through a snowy pine forest, cinematic lighting",
                "response_format": "url",
                "watermark": False,
            },
        )
        print("request_id:", handle.request_id)  # junto con el ID del modelo, es todo lo que necesita otro proceso

        # Consulta hasta que la solicitud se complete, esperando el Retry-After que indica el servidor.
        async for update in handle.iter_events():
            print(update.status, update.queue_position)

        # La carga útil propia del proveedor, el mismo valor que devuelve models.run().
        # Una solicitud que falló o se canceló genera aquí el error tipado de Router.
        result = await handle.get()

    print(result)

asyncio.run(main())
```

```typescript TypeScript theme={null}
import { comfy } from "@comfyorg/sdk";

// Lee COMFY_API_KEY del entorno.
// Cada llamada a submit() genera su propia Idempotency-Key y la reutiliza para los reintentos automáticos.
const handle = await comfy.models.submit("byteplus/seedream-5-0-260128", {
  prompt: "A red fox trotting through a snowy pine forest, cinematic lighting",
  response_format: "url",
  watermark: false,
});
console.log("requestId:", handle.requestId); // junto con el ID del modelo, es todo lo que necesita otro proceso

// Consulta hasta que la solicitud se complete, esperando el Retry-After que indica el servidor.
for await (const update of handle.events()) {
  console.log(update.status, update.queuePosition);
}

// El mismo resultado que devuelve models.run(). Una solicitud que falló o se canceló se rechaza aquí.
const result = await handle.get();

console.log(result.data);
```

```bash cURL theme={null}
# 1. Enviar. Router responde 201 con request_id, status_url, response_url y cancel_url.
curl https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128/requests \
  -H "X-API-Key: $COMFY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d "{\"prompt\": \"A red fox trotting through a snowy pine forest, cinematic lighting\", \"response_format\": \"url\", \"watermark\": false}"

# 2. Consulta hasta que el estado sea COMPLETED, esperando los segundos de Retry-After que indica cada respuesta.
REQUEST_ID="<request_id from the 201 body>"
curl -i https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128/requests/$REQUEST_ID/status \
  -H "X-API-Key: $COMFY_API_KEY"

# 3. Recoger. 200 con la salida nativa del modelo, 202 con el cuerpo del estado mientras aún se está ejecutando.
curl https://api.comfy.org/v2/models/byteplus/seedream-5-0-260128/requests/$REQUEST_ID \
  -H "X-API-Key: $COMFY_API_KEY"
```

## Esquema

### Entrada

**guidance\_scale** `number`

Controla qué tan fielmente se alinea la imagen de salida con el prompt de entrada. Rango \[1, 10]. Los valores más altos producen una mayor adherencia al prompt. No es compatible con seedream-5.0-pro, 5.0-lite, 4.5 y 4.0.

Rango: `1` a `10`

Formato: `float`

**image** `string | string[]`

Seedream-5.0-pro, 5.0-lite, 4.5 y 4.0 admiten este parámetro.

Introduce la codificación Base64 o una URL accesible de la imagen que quieres editar. Seedream-5.0-pro, 5.0-lite, 4.5 y 4.0 admiten introducir una sola imagen o varias imágenes (consulta el ejemplo de mezcla de varias imágenes).

• URL de la imagen: Asegúrate de que la URL de la imagen sea accesible.
• Codificación Base64: El formato debe ser data:image/\<image format>;base64,\<Base64 encoding>. Nota: \<image format> debe estar en minúsculas, por ejemplo, data:image/png;base64,\<base64\_image>.

Comfy Router limita la solicitud JSON completa a 100 MiB, incluidas la expansión de base64 y todas las imágenes de referencia. Usa URLs para las entradas que superen este límite de transporte.

Una imagen de entrada debe cumplir los siguientes requisitos:
• Formato de imagen: jpeg, png (seedream-5.0-pro, 5.0-lite, 4.5 y 4.0 también admiten webp, bmp, tiff y gif; seedream-5.0-pro también admite heic y heif)
• Relación de aspecto (ancho/alto): en el rango \[1/16, 16] para seedream-5.0-pro, 5.0-lite, 4.5 y 4.0
• Ancho y alto (px): > 14
• Tamaño: no más de 10 MB (30 MB para seedream-5.0-pro)
• Píxeles totales: no más de 6000x6000 (36,000,000 px) para seedream-5.0-pro
• Máximo de 14 imágenes de referencia (10 para seedream-5.0-pro y 5.0-flash)

En el escenario de separación de capas (layer\_decomposition habilitado), se requiere image y solo se admite una única imagen de entrada (pasar varias imágenes devuelve un error). Las imágenes de entrada deben ser png, jpeg, webp, bmp, tiff o gif (no se admiten heic ni heif), de hasta 30 MB, con píxeles totales en el rango \[512x512, 6000x6000] y relación de aspecto en \[1/16, 16].

**layer\_decomposition** `boolean` (default: false)

Controla si se habilita la separación de capas. Solo seedream-5.0-pro y 5.0-flash admiten este parámetro.
true: Modo de separación de capas. El modelo descompone la única imagen de entrada en una imagen base más varias capas (hasta 16) y devuelve la información de posición y contenido de cada capa generada, e incluye el orden de apilamiento (z\_index), la caja delimitadora (bounding\_box), el nombre (name) y la descripción (description).
false: Modo estándar de generación de imágenes; no se realiza separación de capas.
Notas sobre el modo de separación de capas: solo se admite una única imagen de entrada (pasar varias imágenes devuelve un error); si alguna capa individual falla al generarse, toda la solicitud falla; no se admite el éxito parcial; se devuelven como máximo 17 imágenes (1 imagen base + 16 capas). sequential\_image\_generation, sequential\_image\_generation\_options, tools y stream devuelven un error si se pasan.

**model** `string`

Identificador del modelo. Modelos admitidos: seedream-4-0-250828, seedream-4-5-251128, seedream-5-0-260128, seedream-5-0-pro-260628 y seedream-5-0-flash-260915. Una llamada directa v1 a POST /proxy/byteplus/api/v3/images/generations DEBE proporcionarlo; el proxy rechaza con un 400 cualquier otro valor, así como su omisión. NO está en la lista `required` de este esquema porque Comfy Router lo completa desde el segmento de ruta `{model}` de /v2/models/byteplus/\{model}, por lo que quien llama a Router lo omite.

**optimize\_prompt\_options** `object`

Configuración de la función de optimización de prompt. Solo seedream-5.0-pro/5.0-lite/4.5 (que solo admiten el modo standard) y seedream-4.0 admiten este parámetro.

**optimize\_prompt\_options.mode** `string` (default: "standard")

Establece el modo de la función de optimización de prompt. standard = Mayor calidad, mayor tiempo de generación. fast = Más rápido, pero con una calidad más media.

Valores posibles: `standard`, `fast`

**output\_format** `string` (default: "jpeg")

Especifica el formato de la imagen de salida. Solo seedream-5.0-pro, 5.0-flash y 5.0-lite admiten este parámetro. En el escenario de separación de capas, output\_format solo controla el formato de la imagen base; cada capa siempre se genera como png.

Valores posibles: `png`, `jpeg`

**prompt** `string`

Descripción de texto para la generación o transformación de imágenes.
Opcional en el escenario de separación de capas (seedream-5.0-pro o 5.0-flash con layer\_decomposition habilitado): si se proporciona un prompt, el modelo reconoce y separa los elementos que especificas según la intención del prompt; si no se proporciona ningún prompt, el modelo detecta automáticamente todos los elementos principales de la imagen y los separa en capas independientes.

**response\_format** `string` (default: "url")

Especifica el formato de la imagen generada que se devuelve en la respuesta.

Valores posibles: `url`, `b64_json`

**seed** `integer` (default: -1)

Semilla aleatoria para controlar la estocasticidad de la generación de imágenes. Rango: \[-1, 2147483647]. Si no se especifica, se generará automáticamente una semilla. Para reproducir la misma salida, usa el mismo valor de semilla.

Rango: `-1` a `2147483647`

**sequential\_image\_generation** `string`

Controla si se deshabilita la función de generación por lotes. Este parámetro solo es compatible con seedream-5.0-lite, 4.5 y 4.0 (no es compatible con seedream-5.0-pro ni 5.0-flash). Valores válidos:
auto: En modo automático, el modelo determina automáticamente si devolver varias imágenes y cuántas imágenes contendrá, según el prompt del usuario.
disabled: Deshabilita la función de generación por lotes. El modelo solo generará una imagen.

Valores posibles: `auto`, `disabled`

**sequential\_image\_generation\_options** `object`

Solo seedream-5.0-lite, 4.5 y 4.0 admiten este parámetro (seedream-5.0-pro y 5.0-flash no lo admiten).
Configuración de la función de generación de imágenes por lotes. Este parámetro solo tiene efecto cuando sequential\_image\_generation está establecido en auto.

**sequential\_image\_generation\_options.max\_images** `integer` (default: 15)

Especifica el número máximo de imágenes a generar en esta solicitud. Número de imágenes de referencia de entrada + Número de imágenes generadas ≤ 15.

Rango: `1` a `15`

**size** `string`

"seedream-4-0-250828": Establece la especificación de la imagen generada. Hay dos métodos disponibles, pero no puedes usarlos juntos.
Método 1 | Especifica la resolución. Valores opcionales: 1K, 2K, 4K
Método 2 | Especifica el ancho y el alto en píxeles. Predeterminado: 2048x2048, píxeles totales: \[1024x1024, 4096x4096], relación de aspecto: \[1/16, 16]
"seedream-4-5-251128": Hay dos métodos disponibles.
Método 1 | Especifica la resolución. Valores opcionales: 2K, 4K
Método 2 | Especifica el ancho y el alto en píxeles. Predeterminado: 2048x2048, píxeles totales: \[2560x1440, 4096x4096], relación de aspecto: \[1/16, 16]
"seedream-5-0-260128": Hay dos métodos disponibles.
Método 1 | Especifica la resolución. Valores opcionales: 2K, 3K
Método 2 | Especifica el ancho y el alto en píxeles. Predeterminado: 2048x2048, píxeles totales: \[2560x1440, \~3072x3072], relación de aspecto: \[1/16, 16]
"seedream-5-0-pro-260628": Hay dos métodos disponibles (no puedes usarlos juntos).
Método 1 | Especifica la resolución y describe en el prompt la relación de aspecto, la forma o el propósito de la imagen; el modelo decide el tamaño final. Valores opcionales: 1K, 2K
Método 2 | Especifica el ancho y el alto en píxeles. Predeterminado: 1024x1024, píxeles totales: \[1024x1024 (1048576), 2048x2048 (4194304)], relación de aspecto: \[1/16, 16]
"seedream-5-0-flash-260915": Hay dos métodos disponibles (no puedes usarlos juntos).
Método 1 | Especifica la resolución y describe en el prompt la relación de aspecto, la forma o el propósito de la imagen; el modelo decide el tamaño final. Valores opcionales: 1K, 1.5K, 2K. Predeterminado: 2K
Método 2 | Especifica el ancho y el alto en píxeles. Píxeles totales: \[1280x720 (921600), 2048x2048x1.1025 (4624220)], relación de aspecto: \[1/16, 16]
"seedream-5-0-pro-260628" y "seedream-5-0-flash-260915" con layer\_decomposition habilitado: Solo se admite el método basado en resolución. Valores opcionales: 1K, 1.5K, 2K, auto. Predeterminado: auto.
La imagen base se entrega con la resolución especificada y la relación de aspecto de la imagen de entrada original; cada capa se entrega con una resolución cercana a la especificada, conservando la relación de aspecto que tenía en la imagen original.
auto: La salida se basa en el tamaño y la relación de aspecto de la imagen de entrada. Las entradas dentro de \[1280x720, \~2048x2048] se entregan con el tamaño original de la entrada; las entradas menores que 1K se entregan con 1K; las entradas mayores que 2K se entregan con 2K.

**stream** `boolean` (default: false)

Comfy Router establece en false un indicador de stream proporcionado explícitamente porque captura un resultado JSON completo. En el proxy v1, este campo controla si habilitar el modo de salida en streaming. Solo seedream-5.0-lite, 4.5 y 4.0 admiten este parámetro (seedream-5.0-pro y 5.0-flash no lo admiten). false = Todas las imágenes de salida se devuelven a la vez. true = Cada imagen de salida se devuelve inmediatamente después de generarse.

**watermark** `boolean` (default: true)

Especifica si se agrega una marca de agua a la imagen generada. false = Sin marca de agua, true = Agrega una marca de agua con la etiqueta 'AI generated'

Generado a partir del esquema que Router expone en `GET /v2/models/byteplus/seedream-5-0-260128/openapi.json`, el mismo documento contra el que valida una llamada antes de que la solicitud llegue al proveedor.

### Salida

**created** `integer`

Marca de tiempo Unix (en segundos) que indica la hora en que se creó la solicitud

**data** `object[]`

Contiene información sobre las imágenes generadas.
En el escenario de separación de capas, el primer elemento del arreglo es la imagen base (z\_index=0) y los elementos siguientes son las capas, ordenadas por z\_index creciente.

**data\[].b64\_json** `string`

Datos de imagen codificados en Base64 (si response\_format es "b64\_json")

**data\[].bounding\_box** `object`

La información de la caja delimitadora de la región que ocupa la capa actual dentro de la imagen base. Solo las capas devuelven este campo; la imagen base cubre todo el lienzo y no devuelve bounding\_box. Se devuelve solo cuando layer\_decomposition es verdadero.

**data\[].bounding\_box.absolute** `integer[]`

Las coordenadas absolutas en píxeles de la caja delimitadora de la capa, en el sistema de coordenadas de la imagen base de salida con la esquina superior izquierda en (0, 0). Formato de coordenadas: \[left, top, right, bottom].

**data\[].bounding\_box.normalized** `integer[]`

Las coordenadas cuantizadas por mil (normalizadas) de la caja delimitadora de la capa, asignadas proporcionalmente a un rango entero discreto de \[0, 1000] según el tamaño de la imagen base, truncadas como máximo en 1000. Formato de coordenadas: \[left, top, right, bottom].

**data\[].description** `string`

Una descripción detallada del elemento separado actual, que ofrece características de capa más ricas (como color, estado y material) que name. Solo las capas devuelven este campo; la imagen base no. Se devuelve solo cuando layer\_decomposition es verdadero.

**data\[].name** `string`

El nombre o etiqueta del elemento separado actual, generado automáticamente por el modelo a partir de las características del sujeto separado. Solo las capas devuelven este campo; la imagen base no. Se devuelve solo cuando layer\_decomposition es verdadero.

**data\[].output\_format** `string`

El formato de archivo de la imagen de salida. Solo seedream-5.0-pro admite este campo.

**data\[].size** `string`

El ancho y el alto de la imagen en píxeles, en el formato \<width>x\<height>. Solo seedream-5.0-pro, 5.0-lite, 4.5 y 4.0 admiten este parámetro.

**data\[].url** `string (uri)`

URL para descargar la imagen (si response\_format es "url")

Formato: `uri`

**data\[].z\_index** `integer`

El orden de apilamiento de la capa, que aumenta de abajo hacia arriba: 0 es la capa inferior (la imagen base) y los valores mayores quedan más arriba. Úsalo para recomponer las capas en la imagen completa con el orden de apilamiento correcto. Se devuelve solo cuando layer\_decomposition es verdadero.

**error** `object`

Información de error (si la hay)

**error.code** `string`

Código de error upstream de ModelArk. SensitiveContentDetected, InputTextSensitiveContentDetected, InputImageSensitiveContentDetected, InputVideoSensitiveContentDetected, InputAudioSensitiveContentDetected, OutputTextSensitiveContentDetected, OutputImageSensitiveContentDetected, OutputVideoSensitiveContentDetected y OutputAudioSensitiveContentDetected identifican rechazos por políticas de contenido. Una familia puede tener un motivo separado por puntos, como InputImageSensitiveContentDetected.PrivacyInformation, OutputVideoSensitiveContentDetected.PolicyViolation u OutputImageSensitiveContentDetected.DeepFake. Esta es una cadena abierta, no un enum: otros códigos describen fallos de validación y del proveedor. Router reconoce las familias de políticas en las respuestas de error HTTP 400 y en las respuestas HTTP 200 de tareas fallidas, sin sobrescribir los fallos de transporte.

**error.message** `string`

Mensaje de error

**model** `string`

El ID del modelo usado para la solicitud

**usage** `object`

**usage.generated\_images** `integer`

Número de imágenes generadas por el modelo

**usage.input\_images** `integer`

El número de imágenes que se ingresan al modelo. Solo seedream-5.0-pro admite este campo.

**usage.output\_tokens** `integer`

El número de tokens usados para la imagen generada por el modelo.

**usage.total\_tokens** `integer`

El número total de tokens consumidos por esta solicitud.

## Ejemplos

### Entrada

```json theme={null}
{
  "prompt": "A red fox trotting through a snowy pine forest, cinematic lighting",
  "response_format": "url",
  "watermark": false
}
```

### Salida

```json theme={null}
{
  "created": 1767225600,
  "data": [
    {
      "size": "1024x1024",
      "url": "https://example.invalid/byteplus/seedream-4-0-250828/generated.png"
    }
  ],
  "model": "seedream-5-0-260128",
  "usage": {
    "generated_images": 1
  }
}
```

## Antes de lanzar

Los SDK crean una `Idempotency-Key` y la reutilizan para los reintentos automáticos. Para los reintentos manuales, reutiliza la clave original. Router puede mantener la conexión abierta hasta 10 minutos.

Cuando una solicitud falla, Router envía un encabezado de respuesta `X-Comfy-Error-Type` que explica el motivo. Un `422` significa que Router rechazó la entrada antes de llamar al proveedor, y un `413` significa que el cuerpo de la solicitud era más grande de lo que Router acepta. Descarga los recursos generados de inmediato, porque [las URL de resultados pueden caducar](https://docs.comfy.org/es/development/comfy-router/reference.md#recursos-del-resultado).

Cualquier límite de tamaño mencionado en la descripción de un campo más arriba es el límite propio del proveedor para ese campo, citado de la especificación del proveedor. Router aplica un tope aparte al cuerpo completo de la solicitud, con el que cuentan los medios codificados en base64: consulta [tamaño del cuerpo de la solicitud](https://docs.comfy.org/es/development/comfy-router/limitations.md#los-cuerpos-de-las-solicitudes-tienen-un-límite).

Esta página documenta un modelo socio al que se llama a través de Comfy Router. El mismo paquete `comfy-sdk` / `@comfyorg/sdk` también incluye un segundo cliente, para ejecutar todo un gráfico de flujo de trabajo de ComfyUI en Comfy Cloud: `Comfy(api_key=...)` / `new Comfy({ apiKey })`, con `client.workflows`, `client.assets` y `client.jobs`. Consulta [SDK de Comfy](https://docs.comfy.org/es/development/api-development/sdks.md).

> **[Encabezados](https://docs.comfy.org/es/development/comfy-router/headers.md)**
>
> Autenticación, idempotencia, IDs de solicitud, agrupaciones de errores, ritmo de reintentos y límites de gasto.

> **[Uso de la API de Router](https://docs.comfy.org/es/development/comfy-router/api.md)**
>
> Descubrimiento de modelos, errores de validación, reintentos y facturación.

> **[Limitaciones](https://docs.comfy.org/es/development/comfy-router/limitations.md)**
>
> Lo que Router no hace hoy y qué usar en su lugar.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.