# Seedance de imagen a vídeo: modo, recorte y coste de cada clip

> Pasa una imagen a vídeo con Seedance como primer fotograma: 300–6000 px, proporción 0,4–2,5, menos de 30 MB; ratio adaptive en 2.5 y duración explícita (5 s).

- URL: https://blog.laozhang.ai/es/posts/seedance-image-to-video
- Published: 2026-11-03
- Updated: 2026-11-03
- Author: LaoZhang AI Team (https://blog.laozhang.ai/es/about)
- Topic: Generación de vídeo con IA
- Tags: Seedance 2.5, Seedance 2.0, imagen a vídeo, Dreamina, Seedance API, primer fotograma

---
Seedance convierte una imagen fija en un clip de dos maneras: en la web de Dreamina (CapCut), donde subes la foto y describes cómo debe moverse, o por API (BytePlus ModelArk, Volcengine Ark o un intermediario como laozhang.ai), donde la imagen viaja en la petición con un papel, el campo `role`, que decide qué hace el modelo con ella. Para animar una foto tal como está, envíala como `first_frame`. Si el clip tiene que terminar en otra imagen concreta, añade esa segunda como `last_frame`. Y si la foto solo debe aportar el producto, el personaje o el estilo, sin ser un fotograma del vídeo, usa `reference_image`.

*Aviso: [laozhang.ai es un servicio propio](https://blog.laozhang.ai/es/about#laozhang). Sus precios son nuestra tarifa, no una comparación independiente.*

Antes de enviar nada, revisa la foto y tres parámetros. Según la documentación de Volcengine Ark, a 2 de noviembre de 2026, cada imagen debe medir entre 300 y 6000 px por lado, con una proporción ancho/alto entre 0,4 y 2,5 y menos de 30 MB. Con primer fotograma, Seedance 2.5 solo acepta `ratio: "adaptive"`, así que el vídeo sale con la proporción de tu foto; en la serie 2.0 puedes fijar otra, pero entonces la imagen se recorta por el centro. Y escribe siempre `duration`: en 2.5 el valor por defecto es `-1`, que deja al modelo elegir entre 4 y 30 segundos, y un clip de 30 s cuesta casi seis veces lo que uno de 5 s.

La excepción son las fotos con caras de personas reales. Seedance 2.5 y 2.0 no las aceptan subidas directamente, da igual el modo; las alternativas están en [Seedance 2.0 y 2.5: error «input image may contain a real person»](https://blog.laozhang.ai/es/posts/seedance-2-api-real-people).

## Primer fotograma, primer y último o referencias: qué modo elegir

Elige el modo por lo que quieres que haga tu imagen en el vídeo. Si debe ser el plano inicial y el modelo inventa el movimiento a partir de ahí, es primer fotograma; si además el clip tiene que acabar en una imagen exacta, es primer y último fotograma; si la imagen solo describe cómo es algo (un producto, un estilo, un escenario) y el plano puede ser otro, son imágenes de referencia. Los tres son tipos de tarea distintos en la API de Volcengine Ark, la misma que usan BytePlus ModelArk y laozhang.ai, y no se pueden mezclar en una misma petición.

*Aviso: [laozhang.ai es un servicio propio](https://blog.laozhang.ai/es/about#laozhang). Sus precios son nuestra tarifa, no una comparación independiente.*

| Modo | Para qué sirve | Imágenes y `role` | Modelos | `ratio` |
| --- | --- | --- | --- | --- |
| Primer fotograma | Animar una foto tal como está: el vídeo empieza en ella | 1 imagen, `first_frame` (o sin `role`) | 2.5, serie 2.0, 1.0 pro y 1.0 pro fast | 2.5: solo `adaptive`. 2.0: `adaptive` o una proporción fija, con recorte |
| Primer y último fotograma | Ir de una imagen a otra: producto cerrado a abierto, de día a noche | 2 imágenes, `first_frame` y `last_frame`, ambos obligatorios | 2.5, serie 2.0 y 1.0 pro | Igual que el anterior; manda la proporción del primer fotograma |
| Imágenes de referencia | Mantener un producto, personaje o estilo en un plano nuevo | `reference_image` en cada una: 1–30 en 2.5, 1–9 en la serie 2.0 | 2.5 y serie 2.0 | `adaptive` (según el prompt) o fija, también en 2.5 |

El modo de referencias admite además vídeo y audio de referencia: hasta 10 vídeos y 10 audios en 2.5, y hasta 3 de cada en la serie 2.0, donde el audio no puede ir solo. En ese modo puedes pedir en el prompt que la imagen 1 haga de primer fotograma, pero la documentación indica que, si el inicio y el final deben coincidir exactamente con tus imágenes, uses el modo de primer y último fotograma. Las dos imágenes de ese modo pueden ser la misma, lo que sirve para un clip que vuelve al punto de partida.

## Imagen a vídeo en Dreamina, sin código: tres pasos

Si no necesitas la API, Dreamina, la herramienta de CapCut, tiene una página propia para pasar una imagen a vídeo con Seedance (en inglés, *Seedance Image to Video*). A 2 de noviembre de 2026, esa página describe el proceso en tres pasos:

1. Abre el [generador de imagen a vídeo de Seedance en Dreamina](https://dreamina.capcut.com/tools/seedance-image-to-video) y empieza un proyecto nuevo.
2. Sube la imagen y describe cómo quieres que se mueva: movimiento de cámara, acción o estilo.
3. Genera el vídeo, revisa la vista previa, ajusta lo que haga falta y descárgalo.

La misma página muestra un generador con Seedance 2.0 mini y un enlace a Seedance 2.5, y dice que el movimiento se guía con el prompt o con referencias. Sobre el precio, solo afirma que Seedance 2.0 ofrece créditos de prueba gratuitos; no publica cuántos son, cuántos créditos gasta cada vídeo ni límites de tamaño para la imagen. Para saber qué web de Seedance es de ByteDance y cuál está disponible en España, consulta [Cómo usar Seedance 2.0: web oficial, acceso online y disponibilidad en España](https://blog.laozhang.ai/es/posts/seedance-2-how-to-use).

## Qué imágenes acepta Seedance: tamaño, proporción y peso

Por API, una imagen fuera de los límites no sirve para la tarea, así que conviene revisarla antes de enviarla. Estos son los requisitos de la documentación de Volcengine Ark para cada imagen, a 2 de noviembre de 2026:

- El formato es JPEG, PNG, WebP, BMP, TIFF o GIF. HEIC y HEIF, el formato habitual de las fotos de iPhone, solo valen a partir de la serie 2.0.
- Cada lado mide entre 300 y 6000 px.
- La proporción ancho/alto está entre 0,4 y 2,5. Un 21:9 (2,33) entra; un banner 3:1 (3,00) no.
- El archivo pesa menos de 30 MB y la petición completa no pasa de 64 MB.
- El número de imágenes encaja con el modo: 1 para primer fotograma, 2 para primer y último, y entre 1 y 30 (2.5) o entre 1 y 9 (serie 2.0) para referencias.
- No aparece la cara de una persona real, salvo con recursos autorizados o retratos virtuales.

El 2 de noviembre de 2026 se pasaron estas reglas a un script local de comprobación previa (Python 3.12 con Pillow 12) y se probaron con nueve imágenes sintéticas, sin personas. Una foto de móvil de 4032 × 3024 px y 0,42 MB cumple todo. Un avatar de 256 × 256 px queda fuera por tener un lado por debajo de 300 px. Una panorámica de 8000 × 2000 px falla dos veces, por pasar de 6000 px y por su proporción de 4,00, y un banner de 3000 × 1000 px falla solo por la proporción (3,00). Un escaneo BMP de 6000 × 4000 px pesa 68,7 MB, más del doble del máximo, y en Base64 haría un cuerpo de petición de unos 91,6 MB. El script compara cada archivo con las reglas publicadas y no llama al modelo, así que «cumple» significa que la imagen respeta la documentación, no que el servidor ya haya generado un vídeo con ella.

La comprobación básica cabe en unas líneas de Python:

```python
from pathlib import Path
from PIL import Image

def revisar(ruta):
    ancho, alto = Image.open(ruta).size
    mb = Path(ruta).stat().st_size / 1024 / 1024
    fallos = []
    if min(ancho, alto) < 300 or max(ancho, alto) > 6000:
        fallos.append(f"{ancho}x{alto}: cada lado debe medir entre 300 y 6000 px")
    if not 0.4 <= ancho / alto <= 2.5:
        fallos.append(f"proporción {ancho / alto:.2f}: debe estar entre 0,4 y 2,5")
    if mb >= 30:
        fallos.append(f"{mb:.1f} MB: cada imagen debe pesar menos de 30 MB")
    return fallos or ["cumple los límites publicados"]

print(revisar("foto.jpg"))
```

Si tu imagen falla, la solución depende del motivo. Una imagen pequeña necesita una versión más grande del original; una panorámica o un banner, un recorte que la deje dentro de la proporción y el tamaño permitidos; y un BMP o TIFF enorme, una conversión a JPEG, PNG o WebP, que reduce mucho el peso sin cambiar las dimensiones.

## Por qué Seedance recorta tu foto y qué `ratio` poner

Seedance recorta la imagen cuando la proporción del vídeo no coincide con la de la foto, y lo hace por el centro. En Seedance 2.5 el primer fotograma no se recorta: en los modos de primer fotograma y de primer y último, el modelo solo acepta `adaptive` y el vídeo mantiene la proporción de esa imagen; un `ratio: "16:9"` en esos modos va contra la documentación, y el script de comprobación lo marca como bloqueado. En la serie 2.0 sí puedes fijar 16:9, 4:3, 1:1, 3:4, 9:16 o 21:9, y ahí es donde se pierde parte de la imagen. El último fotograma, en cambio, puede recortarse con cualquiera de los dos modelos.

Las cifras del script del 2 de noviembre de 2026 muestran cuánto. La foto de móvil de 4032 × 3024 (4:3) enviada a Seedance 2.0 con `ratio: "16:9"` conserva el 75 % de la altura: el recorte quita una franja arriba y otra abajo, un 12,5 % cada una. Una captura de pantalla de 1179 × 2556 enviada a 9:16 pierde el 18 % de la altura, así que una barra de estado o un botón al borde pueden desaparecer. En el modo de primer y último fotograma, tanto en 2.5 como en 2.0, si las dos imágenes tienen proporciones distintas manda la primera y el último fotograma se recorta para encajar. En el script, con 2.0 y una foto de producto cuadrada de 2048 × 2048 como inicio y una de 1920 × 1080 como final, el último fotograma se recorta a 1:1 y se queda con poco más de la mitad central de su anchura.

![Recorte de Seedance 2.0 con ratio 16:9 y 9:16 frente a Seedance 2.5 con adaptive, que no recorta el primer fotograma](https://blog.laozhang.ai/posts/es/seedance-image-to-video/img/seedance-recorte-ratio.webp)

Por eso conviene decidir el recorte tú. Si necesitas un vídeo vertical u horizontal distinto de tu foto, recórtala antes y elige qué parte se queda. En 2.5, recórtala a la proporción que quieras y envíala con `adaptive`, el único valor válido. En 2.0, recórtala exactamente a una de las seis proporciones de la lista y envíala con esa misma proporción; con `adaptive`, el modelo escoge una de la lista a partir de tu imagen, y si tu foto no coincide con ninguna, algo se recortará igualmente. La tabla de píxeles de salida solo cubre las seis proporciones fijas (a 720p, por ejemplo, 1280 × 720 en 16:9 y 720 × 1280 en 9:16), de modo que con una proporción poco común en 2.5 el tamaño exacto del vídeo no figura en la documentación.

## Petición por API para cada modo, con URL o Base64

Las tres rutas de API usan el mismo tipo de petición: un `POST` a `/api/v3/contents/generations/tasks` con el `model`, una lista `content` con el texto y las imágenes (cada una con su `role`) y los parámetros `ratio`, `duration` y `resolution` en el cuerpo. La respuesta devuelve un ID de tarea, porque el vídeo se genera de forma asíncrona. En Volcengine Ark el endpoint es `https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks`; en laozhang.ai es `https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks`, con una clave del grupo `SeeDance2`. Los ID de modelo, la activación en BytePlus ModelArk y el código de consulta en Python y Node.js están en [API de Seedance 2.5: ID de modelo, activación, Python y Node.js](https://blog.laozhang.ai/es/posts/seedance-2-api).

*Aviso: [laozhang.ai es un servicio propio](https://blog.laozhang.ai/es/about#laozhang). Sus precios son nuestra tarifa, no una comparación independiente.*

Los ejemplos de abajo están adaptados de la documentación de laozhang.ai y usan sus ID de modelo; para otra ruta cambia la URL, la clave y el modelo. La imagen puede ir como URL pública, como Base64 con el formato en minúsculas (`data:image/jpeg;base64,...`) o como `asset://<ASSET_ID>`. Para archivos grandes usa la URL: el Base64 ocupa alrededor de un tercio más que el archivo y el cuerpo de la petición no puede pasar de 64 MB. Puedes escribir el prompt en español, porque Seedance 2.5 y la serie 2.0 lo admiten además del chino y el inglés.

### Primer fotograma con Seedance 2.5

```bash
curl -s -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  --data-raw '{
    "model": "doubao-seedance-2-5-260628",
    "content": [
      {
        "type": "text",
        "text": "La cámara se acerca despacio a la taza mientras sube el vapor. Luz suave de mañana, sin cortes."
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ejemplo.com/taza.jpg" },
        "role": "first_frame"
      }
    ],
    "ratio": "adaptive",
    "duration": 5,
    "resolution": "720p",
    "generate_audio": false
  }'
```

`generate_audio` vale `true` por defecto en los modelos 2.x y genera sonido estéreo; si quieres diálogo, la documentación recomienda ponerlo entre comillas dobles dentro del prompt. `watermark` vale `false` por defecto; con `true` aparece una marca de «generado por IA» abajo a la derecha. Estos parámetros, como `ratio` o `duration`, van en el cuerpo, donde se validan de forma estricta. El atajo de añadirlos al final del prompt (`--rs 720p --rt 16:9 --dur 5`) tiene validación débil y un valor erróneo puede ignorarse sin aviso.

### Primer y último fotograma con Seedance 2.0

```bash
curl -s -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  --data-raw '{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {
        "type": "text",
        "text": "El primer fotograma es la imagen 1 y el último, la imagen 2. La cámara rodea la zapatilla hasta su vista lateral. Fondo de estudio, sin personas."
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ejemplo.com/zapatilla-frontal.jpg" },
        "role": "first_frame"
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ejemplo.com/zapatilla-lateral.jpg" },
        "role": "last_frame"
      }
    ],
    "ratio": "adaptive",
    "duration": 5,
    "resolution": "720p",
    "generate_audio": false
  }'
```

En este modo el `role` es obligatorio en las dos imágenes. Si las dos fotos tienen la misma proporción, el final no se recorta.

### Imágenes de referencia con Seedance 2.5

```bash
curl -s -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  --data-raw '{
    "model": "doubao-seedance-2-5-260628",
    "content": [
      {
        "type": "text",
        "text": "Usa la imagen 1 como referencia del producto y la imagen 2 como referencia del escenario. Anuncio vertical: el bote aparece sobre la encimera y la cámara se acerca a la etiqueta."
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ejemplo.com/bote.png" },
        "role": "reference_image"
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ejemplo.com/cocina.jpg" },
        "role": "reference_image"
      }
    ],
    "ratio": "9:16",
    "duration": 5,
    "resolution": "720p",
    "generate_audio": false
  }'
```

Aquí 2.5 sí acepta una proporción fija, porque las imágenes no son fotogramas del vídeo. Los ejemplos de la documentación nombran las imágenes en el prompt como «imagen 1» e «imagen 2» para indicar qué aporta cada una; síguelos en el mismo orden en que aparecen en `content`.

### Consultar la tarea y descargar el vídeo

Con el `id` que devuelve la creación, consulta `GET https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks/{id}` hasta que `status` pase de `queued` o `running` a un estado final: `succeeded` (o `completed`), `failed` o `expired`. El vídeo está en `content.video_url`, un enlace temporal que normalmente vale 24 horas, así que descárgalo y guárdalo pronto; en laozhang.ai también puedes descargarlo con `GET https://api.laozhang.ai/v1/videos/{id}/content`. El bucle de consulta completo está en la guía de la API enlazada arriba.

### Error «no available channels» en laozhang.ai

Si la creación de la tarea devuelve un HTTP 503 con `Current group default has no available channels for model doubao-seedance-2-0-260128`, la clave no pertenece al grupo `SeeDance2`. El 2 de noviembre de 2026 se envió a ese endpoint una petición de primer fotograma con una imagen PNG de 100 × 100 px y claves del grupo `default`: la respuesta fue ese 503, igual con `doubao-seedance-2-5-260628`, y no hubo cargo. Esa imagen incumple el tamaño mínimo y aun así el error fue el del grupo, de modo que esa comprobación va antes que la de la imagen. La solución es crear una clave en el grupo `SeeDance2` y repetir la petición; la foto no tiene nada que ver.

## Cuánto cuesta un clip y por qué `duration: -1` lo encarece

Un clip de 5 segundos a 720p cuesta entre unos USD 0,43 con Seedance 2.0 mini y unos USD 1,31 con Seedance 2.5, con las tarifas de laozhang.ai por millón de tokens vigentes desde el 14 de octubre de 2026 (el precio de lista de Volcengine convertido a dólares, alrededor de 1,2 veces el oficial). La tabla junta lo que admite cada modelo con su precio; el coste estimado es para un vídeo 16:9 de 5 s sin vídeo de entrada.

*Aviso: [laozhang.ai es un servicio propio](https://blog.laozhang.ai/es/about#laozhang). Sus precios son nuestra tarifa, no una comparación independiente.*

| Modelo | Resoluciones | `duration` | USD por 1M tokens | Clip de 5 s a 720p |
| --- | --- | --- | --- | --- |
| Seedance 2.5 (`doubao-seedance-2-5-260628`) | 480p, 720p, 1080p | 4–30 s o `-1` (por defecto) | 12,00; 13,20 a 1080p | ≈ USD 1,31 (1080p ≈ USD 3,23) |
| Seedance 2.0 (`doubao-seedance-2-0-260128`) | 480p, 720p, 1080p, 4k | 4–15 s o `-1` | 7,88; 8,74 a 1080p | ≈ USD 0,86 (1080p ≈ USD 2,14) |
| Seedance 2.0 fast (`doubao-seedance-2-0-fast-260128`) | 480p, 720p | 4–15 s o `-1` | 6,34 | ≈ USD 0,69 |
| Seedance 2.0 mini (`doubao-seedance-2-0-mini-260615`) | 480p, 720p | 4–15 s o `-1` | 3,94 | ≈ USD 0,43 |

La resolución por defecto es 720p en todos. El 1080p de 2.5 y el 4k de 2.0 se entregan en H.265/HEVC de 10 bits, que algunos reproductores no abren, así que comprueba dónde vas a usar el vídeo antes de pagar la resolución más alta. Pedir 1080p a fast o mini no funciona: no lo ofrecen.

El cálculo es reproducible. Los tokens son aproximadamente (segundos de vídeo de entrada + segundos de salida) × ancho × alto × fotogramas por segundo / 1024. Un clip 16:9 de 5 s a 720p tiene 121 fotogramas, así que da 1280 × 720 × 121 / 1024 ≈ 108.900 tokens, que multiplicados por la tarifa de 2.5 (12,00 por millón) dan su precio de la tabla. Las imágenes de entrada no suman en esta fórmula; solo el vídeo de entrada, en el modo de referencias. En laozhang.ai cada tarea deja dos apuntes, un cobro previo al crearla y un ajuste al terminar, y el coste real es la suma de los dos.

`duration` es el parámetro que más mueve la factura. En Seedance 2.5 su valor por defecto es `-1`, que deja al modelo elegir cualquier duración entre 4 y 30 segundos, y la propia documentación avisa de que la duración afecta al precio. En la comprobación del 2 de noviembre de 2026, una ilustración 3:4 de 1536 × 2048 enviada a 2.5 como primer fotograma, a 720p y sin `duration`, costaría en el peor caso, si el modelo elige 30 s (721 fotogramas), unos 652.989 tokens: alrededor de USD 7,84, frente a USD 1,32 con `duration: 5` explícito. En la serie 2.0 el máximo es 15 s, y un `duration: 20` queda fuera de rango. La duración que devuelve la tarea es el total de fotogramas dividido entre 24, redondeado hacia abajo.

![Coste estimado en Seedance 2.5 a 720p: unos USD 1,32 con duration 5 frente a unos USD 7,84 si duration -1 acaba en 30 s](https://blog.laozhang.ai/posts/es/seedance-image-to-video/img/seedance-coste-duration.webp)

Para probar barato, Seedance 2.0 mini a 480p con una imagen cuadrada y 5 s ronda los 48.400 tokens, unos USD 0,19 según la misma estimación, y Seedance 2.5 tiene un modo `draft` que genera una vista previa a 480p. En Dreamina solo hay créditos de prueba sin cantidad publicada; precios por proveedor y opciones gratuitas, en [Precio de Seedance 2.5 API por proveedor, 30 s y si es gratis](https://blog.laozhang.ai/es/posts/seedance-2-pricing-free-vs-paid-guide).

## Encadenar clips con el último fotograma (`return_last_frame`)

Para enlazar un clip con el siguiente sin salto visual, pide `"return_last_frame": true` al crear la tarea. Cuando termina, la respuesta incluye el último fotograma como JPEG, del mismo tamaño que el vídeo y sin marca de agua; en laozhang.ai está en `content.last_frame_url`. Esa imagen se envía como `first_frame` de la siguiente tarea, que es justo el uso que propone la documentación de Volcengine Ark para generar vídeos continuos.

*Aviso: [laozhang.ai es un servicio propio](https://blog.laozhang.ai/es/about#laozhang). Sus precios son nuestra tarifa, no una comparación independiente.*

Con Seedance 2.5 no siempre hace falta: genera hasta 30 segundos seguidos en una sola tarea. Encadenar tiene sentido en la serie 2.0, limitada a 15 s, o cuando quieres revisar cada tramo antes de pagar el siguiente. Como el último fotograma sale con el tamaño del vídeo, mantener `adaptive` en las tareas siguientes conserva la misma proporción en toda la secuencia.

## Persona real, prompt de movimiento o tarea fallida: dónde seguir

Si la foto tiene la cara de una persona real, Seedance 2.5 y 2.0 la rechazan aunque el resto de la petición sea correcto; los mensajes de error y las vías permitidas (recursos autorizados y retratos virtuales) están en [Seedance 2.0 y 2.5: error «input image may contain a real person»](https://blog.laozhang.ai/es/posts/seedance-2-api-real-people). Para describir el movimiento de cámara, la acción y cómo citar cada imagen de referencia, la guía práctica es [Prompts de Seedance 2 y 2.5: planos, referencias y correcciones](https://blog.laozhang.ai/es/posts/seedance-2-prompt-guide).

Si la tarea se queda en cola, termina en `failed` o `expired`, o la consulta da timeout, no la vuelvas a crear sin más: cada creación es una tarea nueva y, si las dos terminan, pagas dos vídeos. Cómo leer el estado y cuándo reintentar está en [Seedance 2.5: cómo diagnosticar errores, cola y timeout sin duplicar tareas](https://blog.laozhang.ai/es/posts/seedance-2-not-working).

## Fuentes

Páginas externas que cita esta guía, en el orden en que aparecen. Última actualización: 2026-11-03.

- [generador de imagen a vídeo de Seedance en Dreamina](https://dreamina.capcut.com/tools/seedance-image-to-video) (dreamina.capcut.com)
