Saltar al contenido principal
Seedance 2.0 es un modelo multimodal de vídeo insignia expuesto en Venice como una familia de tres variantes para generación de vídeo a partir de texto, imagen y referencia. La variante reference-to-video es excepcionalmente potente: un único endpoint y un único ID de modelo gestionan cuatro flujos distintos (Reference, Edit, Extend, Stitch) — el flujo se infiere de la forma de tu prompt. Esta guía recorre las variantes, los cuatro flujos con sus prompts canónicos, los límites de entrada multimodal, los precios y ejemplos completos con curl.

Variantes

ID del modeloVarianteResoluciones de salidaNotas
seedance-2-0-text-to-videoT2V480p / 720p / 1080pSolo prompt de texto
seedance-2-0-image-to-videoI2V480p / 720p / 1080pAnclaje de primer frame (y opcionalmente último) con imagen
seedance-2-0-reference-to-videoR2V480p / 720p / 1080pHasta 9 imágenes de referencia + 3 vídeos de referencia + 3 donantes de audio. Impulsa Reference / Edit / Extend / Stitch
seedance-2-0-fast-text-to-videoFast T2V480p / 720pNivel más rápido y de menor fidelidad
seedance-2-0-fast-image-to-videoFast I2V480p / 720pNivel más rápido y de menor fidelidad
seedance-2-0-fast-reference-to-videoFast R2V480p / 720pNivel más rápido y de menor fidelidad; mismo conjunto de flujos
Todas las variantes son asíncronas. Envía mediante POST /api/v1/video/queue y luego haz polling de POST /api/v1/video/retrieve hasta que el cuerpo de la respuesta sea video/mp4. Consulta Generación de vídeo para el flujo general de cola.

El modelo “un modelo, cuatro flujos”

La variante reference-to-video (seedance-2-0-reference-to-video y su hermana Fast) es el mismo modelo subyacente sirviendo cuatro tareas diferentes. El modelo infiere la tarea a partir del prefijo del prompt y la forma de tus entradas. No hay un campo task o workflow — la sintaxis del prompt es el enrutamiento.
FlujoQué hacePrefijo del promptEntradas
ReferenceGenera un vídeo nuevo usando los archivos de referencia subidos como donantes de sujeto / movimiento / estilo / audioRefer to ... in <Image|Video|Audio N> to generate ...Texto + ≥1 referencia de imagen O vídeo (0-9 imágenes, 0-3 vídeos), más opcionalmente hasta 3 donantes de audio
EditModifica un único vídeo de entrada preservando el restoStrictly edit <Video 1>, changing its ...1 vídeo de entrada + texto (imágenes como anclaje opcional)
ExtendExtensión hacia adelante / atrás de un clipExtend <Video 1>, generate ...1 vídeo de entrada + texto
StitchUne 2-3 clips con transiciones auto-generadas<Video 1> + <transition description> + followed by <Video 2> + ...2-3 vídeos de entrada + texto
La sintaxis del prompt es canónica y sensible a mayúsculas: corchetes angulares, primera letra en mayúscula, un único espacio antes del número — <Video 1>, <Image 1>, <Audio 1>.

Patrones de flujo

Flujo Reference

Usa los archivos de referencia subidos como donantes — sujeto, escena, movimiento, estilo, timbre vocal — para generar un vídeo completamente nuevo. Patrones canónicos de prompt:
Refer to <Subject N> in <Image N> to generate ...
Refer to the [action | camera scene | style | sound effect] in <Video N> to generate ...
Refer to the [tone | timbre] in <Audio N> to generate ...
Ejemplos:
  • Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character riding a horse through snow.
  • Refer to the camera scene in <Video 1> to generate a similar establishing shot of a futuristic city at dawn.
  • Refer to <Subject 1> in <Image 1> and use the timbre in <Audio 1> for the narrator describing the scene. (los donantes de audio deben emparejarse con al menos una referencia de imagen o vídeo — solo audio se rechaza)

Flujo Edit

Modifica un único vídeo de entrada. Cualquier cosa no nombrada explícitamente en el prompt se preserva. Úsalo cuando quieras un cambio localizado (cambio de sujeto, cambio de clima/color, añadir/eliminar elemento) en lugar de un vídeo totalmente nuevo. Patrón canónico de prompt:
Strictly edit <Video 1>, changing its [original feature] to [new feature] ...
Sub-patrones para control más fino:
Add Elements:
  At [timestamp / timing] and [spatial location] of <Video 1>, add [description of intended element].

Remove Elements:
  Remove [element to be deleted] from <Video 1>, keeping the rest of the video content unchanged.

Modify Elements:
  Replace [description of element to be changed] in <Video 1> with [description of intended element].
Ejemplos:
  • Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm.
  • Add snacks such as fried chicken and pizza to the countertop in <Video 1>.
  • Remove the red car from <Video 1>, keeping the rest of the video content unchanged.
  • Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.
El último ejemplo combina Edit con una referencia de imagen — totalmente legal, el modelo usa <Image 1> como donante visual para el reemplazo.

Flujo Extend

Continúa un único clip hacia adelante o hacia atrás en el tiempo. Por defecto, Seedance devuelve solo el contenido nuevo — no el clip de entrada original concatenado con la extensión. Esto es por diseño, para continuidad de transición; si quieres preservar el clip de entrada junto con la extensión, dilo explícitamente:
Extend <Video 1>, generate [description of extended content]
Extend <Video 1> backward, [description of extended content]
Extend <Video 1>, start with <Video 1>, then [description of extended content]      ← preserva el input al principio
Extend <Video 1> backward, [description], and then end with <Video 1>               ← preserva el input al final
Gestión de transiciones: el modelo extrae automáticamente los frames de transición para una mezcla sin costuras, y los segmentos originales del vídeo de entrada no se re-generan. Ejemplos:
  • Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk.
  • Extend <Video 1> backward, the same character walking toward the camera before the original shot begins.
  • Extend <Video 1>, start with <Video 1>, then the camera pulls back to reveal a vast landscape.

Flujo Stitch (Track Completion)

Conecta 2-3 clips de entrada con transiciones generadas por IA. La duración total combinada de entrada debe ser ≤ 15 s. Patrón canónico de prompt:
<Video 1> + [transition description] + followed by <Video 2> [+ [transition description] + followed by <Video 3>]
Ejemplos:
  • <Video 1> + a smooth seamless cut + followed by <Video 2>
  • <Video 1>. The moment a leaf falls to the ground, it sets off a special effect of golden particles. A gust of wind blows by, leading into <Video 2>.
  • <Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>
El modelo recorta automáticamente los segmentos de conexión en los puntos de unión para la continuidad.

Fórmula universal de prompt

En los cuatro flujos, la fórmula de autoría recomendada es:
Sujeto + Movimiento + Entorno (opcional)
       + Movimiento de cámara / Corte (opcional)
       + Descripción estética (opcional)
       + Audio (opcional)
  • Sujeto + Movimiento: la base lógica — define “Quién” está realizando “Qué acción”
  • Entorno + Estética: fondo espacial, iluminación, estilo visual
  • Cámara: tipo o movimiento explícito de toma
  • Audio: efectos de sonido ambientales o dirección vocal para salida inmersiva
Poner esta capa encima de un prefijo de flujo (p. ej., Strictly edit <Video 1>, changing its <subject + motion + environment + ...>) produce las salidas de mayor calidad.

Límites de entrada multimodal

Los valores siguientes son lo que acepta la API de Venice. Las solicitudes fuera de estos rangos se rechazan en la capa de schema con un 400 antes de llegar a la inferencia.

Imágenes

RestricciónValor
Métodos de entradaURL (http://, https://) o data URL en base64 (data:image/...)
Formatos.jpeg, .png, .webp, .bmp, .tiff, .gif, .heic, .heif
Aspect ratio (A / H)exclusivo (0.4, 2.5)
Lado mínimo≥ 300 px
Cantidad de imágenes: primer frame I2V1
Cantidad de imágenes: primer + último frame I2V2
Cantidad de imágenes: R2V (V2 / Fast)1 – 9

Vídeos

RestricciónValor
Métodos de entradaURL (http://, https://) o data URL en base64 (data:video/...)
Formatos.mp4, .mov
Códecs de vídeoH.264 / AVC, H.265 / HEVC
Códecs de audio (en el contenedor)AAC, MP3
Duración por clip[2, 15] s (inclusive)
Cantidad máx. de clips3 (R2V / Stitch / Extend)
Duración combinada total≤ 15 s entre todos los clips
Tamaño por clip≤ 50 MB

Audio

RestricciónValor
Métodos de entradaURL (http://, https://) o data URL en base64 (data:audio/...)
Formatos.wav, .mp3
Duración por clip[2, 15] s
Cantidad máx. de clips3
Duración combinada total≤ 15 s entre todos los clips
Tamaño por clip≤ 15 MB
El audio de referencia se admite solo en las variantes R2V. Cada entrada se reenvía al modelo como un elemento de contenido role: "reference_audio" al que el prompt se dirige como <Audio 1>, <Audio 2>, <Audio 3> — el modelo usa cada clip para timbre vocal, efectos de sonido o música de fondo dependiendo de cómo el prompt lo encuadre. El campo singular heredado audio_url mapea a la misma forma de contenido y ahora es equivalente a pasar un reference_audio_urls de un elemento.
reference_audio_urls no puede ser la única entrada de referencia. El modelo requiere al menos una referencia de imagen o vídeo junto con cualquier donante de audio. Empareja reference_audio_urls con reference_image_urls, reference_video_urls, image_url o video_url — los envíos solo de audio se rechazan.

Tamaño de la solicitud

El endpoint de cola acepta cuerpos JSON de hasta 35 MB. Las data URLs inline para vídeos grandes pueden empujar más allá de esto — para Stitch multi-clip en particular, prefiere URLs en lugar de base64 inline.

Precios

Llama a POST /api/v1/video/quote para obtener una cotización para una forma de solicitud dada antes de enviarla a /video/queue. El endpoint de cotización es la única fuente autoritativa; los detalles de precio pueden cambiar y no deberían cachearse ni duplicarse en el cliente. Cuando los vídeos de referencia forman parte de la solicitud, pasa también reference_video_total_duration (la suma de todas las duraciones de clips de referencia en segundos) para que la cotización coincida con lo que cobrará /video/queue:
curl -X POST https://api.venice.ai/api/v1/video/quote \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "duration": "5s",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "reference_video_total_duration": 5
  }'

Ejemplos completos

Todos los ejemplos asumen que VENICE_API_KEY está establecida en el entorno.

Text-to-video

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-text-to-video",
    "prompt": "A golden retriever frolicking through a sunlit meadow at sunset, slow camera dolly-in, shallow depth of field, warm cinematic lighting.",
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'

Image-to-video (primer frame)

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-image-to-video",
    "prompt": "The lighthouse keeper turns toward the storm, lantern raised, waves crashing against the rocks.",
    "image_url": "https://example.com/lighthouse.jpg",
    "duration": "5s",
    "resolution": "720p"
  }'
seedance-2-0-image-to-video (y su variante Fast) no aceptan aspect_ratio — el aspect ratio de salida se deriva automáticamente de las dimensiones de la imagen de entrada. Pasar el campo devuelve un 400 con “This model does not support aspect_ratio”. Usa las variantes T2V o R2V si necesitas control explícito de aspect ratio.

Flujo Reference — donante de sujeto

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night.",
    "reference_image_urls": ["https://example.com/character.png"],
    "duration": "5s",
    "aspect_ratio": "9:16",
    "resolution": "1080p"
  }'

Flujo Reference — donante de sujeto + audio

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night. Refer to the timbre in <Audio 1> for a soft female voiceover describing the scene.",
    "reference_image_urls": ["https://example.com/character.png"],
    "reference_audio_urls": ["https://example.com/voice-sample.mp3"],
    "duration": "5s",
    "aspect_ratio": "9:16",
    "resolution": "1080p"
  }'

Flujo Edit

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm, with all original motions and camera work preserved.",
    "reference_video_urls": ["https://example.com/sunny-scene.mp4"],
    "reference_video_total_duration": 5,
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'

Flujo Edit con anclaje por imagen

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.",
    "reference_video_urls": ["https://example.com/perfume-ad.mp4"],
    "reference_image_urls": ["https://example.com/face-cream.png"],
    "reference_video_total_duration": 4,
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'

Extender hacia adelante

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk, with neon signs flickering and rain on the pavement.",
    "reference_video_urls": ["https://example.com/alley-intro.mp4"],
    "reference_video_total_duration": 4,
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'

Stitch (3 clips)

curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "prompt": "<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>",
    "reference_video_urls": [
      "https://example.com/clip-1.mp4",
      "https://example.com/clip-2.mp4",
      "https://example.com/clip-3.mp4"
    ],
    "reference_video_total_duration": 12,
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'

Polling de finalización

Tras cada envío a la cola, guarda el queue_id devuelto y haz polling de /video/retrieve hasta que el cuerpo de la respuesta sea video/mp4:
curl -X POST https://api.venice.ai/api/v1/video/retrieve \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video",
    "queue_id": "123e4567-e89b-12d3-a456-426614174000"
  }' \
  -o output.mp4
La respuesta es JSON ({ "status": "queued" | "running" | "failed", ... }) hasta que el trabajo se complete, momento en el que el cuerpo de la respuesta cambia a bytes video/mp4. Consulta Generación de vídeo para el patrón completo de polling.

Resolución de problemas

At least one reference is required for this model

Los envíos de reference-to-video deben incluir al menos uno de reference_image_urls, reference_video_urls, image_references o video_references. La generación pura solo de texto no es un flujo R2V válido — usa seedance-2-0-text-to-video en su lugar. reference_audio_urls por sí solo no es suficiente (consulta la sección de Audio anterior).

reference_video_urls must have at most 3 videos

El modelo limita los vídeos de referencia a 3. Si necesitas más clips, haz un Stitch primero (3 → 1) y luego usa la salida como referencia para un seguimiento.

Per clip must be 2–15s / agregado > 15s

La duración por clip es [2, 15] segundos inclusive; la suma entre todos los vídeos de referencia también está limitada a 15 segundos. Recorta los clips en el cliente antes del envío.

El prompt enruta al flujo incorrecto

El flujo se infiere de la sintaxis del prompt. Errores de enrutamiento comunes:
  • Querer Extend pero escribir Refer to ... → el modelo trata tu vídeo como donante, no como lienzo a continuar
  • Querer Stitch pero escribir Refer to ... → el modelo elige uno como donante, ignora los demás
  • Querer Edit pero escribir Generate a video based on <Video 1> → ambiguo; el modelo puede caer en Reference por defecto
Usa los prefijos canónicos exactamente como están escritos: Strictly edit <Video 1>, ..., Extend <Video 1>, ..., <Video 1> + ... + followed by <Video 2>.

La cotización no coincide con el importe en cola

Si incluiste un vídeo de referencia pero no pasaste reference_video_total_duration a /video/quote, la cotización y el importe en cola pueden diferir. Pasa siempre reference_video_total_duration (suma de todas las duraciones de clips de referencia, en segundos) cuando haya vídeos de referencia.

Referencias