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

# Seedance 2.0 y 2.5

> Genera, edita, extiende y une videos con Seedance 2.0 y 2.5 en Venice: flujos de trabajo de texto, imagen y referencia a video, política de medios de la API pública y límites multimodales específicos por familia.

Seedance es una familia multimodal insignia de generación de video en Venice para flujos impulsados por texto, imagen y referencia. **Seedance 2.0** (más Fast) y **Seedance 2.5** comparten el mismo modelo de enrutamiento de prompts R2V: un único endpoint de reference-to-video maneja **cuatro flujos de trabajo distintos** (Reference, Edit, Extend, Stitch). El flujo de trabajo se infiere a partir de la **forma de tu prompt**.

Esta guía cubre las variantes, los cuatro flujos de trabajo, la **política de medios de la API pública**, los **límites multimodales específicos por familia**, los precios y ejemplos con `curl`.

<Warning>
  **Los medios que contienen personas no son compatibles con la API pública de Seedance.** Los modelos públicos `*-basic` no usan atestación de consentimiento (`consents.seedance` / `needs_consent`). Este tipo de entradas pueden ser rechazadas aguas arriba como un error de política de contenido o del proveedor. Usa la app de Venice o Studio para el conjunto completo de funciones de Seedance.
</Warning>

## Variantes

| ID del modelo                                | Variante | Resoluciones de salida       | Notas                                                                                                                                   |
| -------------------------------------------- | -------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `seedance-2-0-text-to-video-basic`           | T2V      | 480p / 720p / 1080p / **4k** | Solo prompt de texto                                                                                                                    |
| `seedance-2-0-image-to-video-basic`          | I2V      | 480p / 720p / 1080p / **4k** | Anclaje con imagen de primer fotograma (y opcionalmente último)                                                                         |
| `seedance-2-0-reference-to-video-basic`      | R2V      | 480p / 720p / 1080p / **4k** | Hasta 9 imágenes de referencia + 3 videos de referencia + 3 donantes de audio de referencia. Impulsa Reference / Edit / Extend / Stitch |
| `seedance-2-0-fast-text-to-video-basic`      | Fast T2V | 480p / 720p                  | Nivel más rápido y de menor fidelidad (sin 1080p / 4k)                                                                                  |
| `seedance-2-0-fast-image-to-video-basic`     | Fast I2V | 480p / 720p                  | Nivel más rápido y de menor fidelidad (sin 1080p / 4k)                                                                                  |
| `seedance-2-0-fast-reference-to-video-basic` | Fast R2V | 480p / 720p                  | Nivel más rápido y de menor fidelidad (sin 1080p / 4k); mismo conjunto de flujos de trabajo                                             |
| `seedance-2-5-text-to-video-basic`           | T2V      | 480p / 720p                  | Hasta 30 s de salida; audio nativo                                                                                                      |
| `seedance-2-5-image-to-video-basic`          | I2V      | 480p / 720p                  | Hasta 30 s de salida; anclaje con primer fotograma (y opcionalmente último)                                                             |
| `seedance-2-5-reference-to-video-basic`      | R2V      | 480p / 720p                  | Hasta 30 imágenes + 10 videos + 10 donantes de audio; mismos flujos Reference / Edit / Extend / Stitch                                  |

Todas las variantes son asíncronas. Envía la solicitud mediante `POST /api/v1/video/queue` y luego consulta `POST /api/v1/video/retrieve` hasta que el cuerpo de la respuesta sea `video/mp4`. Consulta [Generación de video](/guides/media/video-generation) para el flujo general de la cola.

Pasa `resolution` como uno de: `480p`, `720p`, `1080p` o `4k` (en minúsculas). Seedance **2.0** (no Fast) acepta las cuatro; **2.0 Fast** y **2.5** solo aceptan `480p` / `720p`. Descubre los IDs de modelos en producción y sus capacidades con `GET /models?type=video`; no codifiques la disponibilidad de forma fija.

## El modelo "un modelo, cuatro flujos de trabajo"

Las variantes reference-to-video (`seedance-2-0-reference-to-video-basic`, su hermana Fast y `seedance-2-5-reference-to-video-basic`) usan el mismo patrón de enrutamiento por prompt. **El modelo infiere la tarea a partir del prefijo del prompt y la forma de tus entradas.** No hay un campo `task` ni `workflow`: la sintaxis del prompt es el enrutamiento.

| Flujo de trabajo | Qué hace                                                                                                           | Prefijo de prompt                                                    | Entradas                                                                                                                              |
| ---------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Reference**    | Genera un nuevo video usando archivos de referencia cargados como donantes de sujeto / movimiento / estilo / audio | `Refer to ... in <Image\|Video\|Audio N> to generate ...`            | Texto + ≥1 imagen O video de referencia, además de donantes de audio opcionales (los recuentos difieren por familia; ver los límites) |
| **Edit**         | Modifica un único video de entrada preservando el resto                                                            | `Strictly edit <Video 1>, changing its ...`                          | 1 video de entrada + texto (imágenes opcionales para anclaje)                                                                         |
| **Extend**       | Extensión hacia delante / hacia atrás de un clip                                                                   | `Extend <Video 1>, generate ...`                                     | 1 video de entrada + texto                                                                                                            |
| **Stitch**       | Une clips de entrada con transiciones autogeneradas                                                                | `<Video 1> + <transition description> + followed by <Video 2> + ...` | Varios videos de entrada + texto (los topes de número de clips / duración difieren por familia)                                       |

La **sintaxis del prompt es canónica y sensible a mayúsculas**: corchetes angulares, primera letra en mayúscula, un espacio antes del número: `<Video 1>`, `<Image 1>`, `<Audio 1>`.

***

## Patrones de flujo de trabajo

### Flujo Reference

Usa los archivos de referencia cargados como **donantes** —sujeto, escena, movimiento, estilo, timbre vocal— para generar un video totalmente 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 estar acompañados de al menos una imagen o un video de referencia; solo audio se rechaza)

### Flujo Edit

Modifica un único video de entrada. **Todo lo que no se nombre explícitamente en el prompt se preserva.** Úsalo cuando quieras un cambio localizado (cambio de sujeto, de clima/color, añadir o quitar elementos) en lugar de un video totalmente nuevo.

**Patrón canónico de prompt**:

```
Strictly edit <Video 1>, changing its [original feature] to [new feature] ...
```

**Subpatrones 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; es perfectamente válido, el modelo usa `<Image 1>` como donante visual para el reemplazo.

### Relación de aspecto y duración coincidentes con el origen

Para el reference-to-video de Seedance en **edit / extend**, puedes pedir que la salida siga el clip de origen en vez de elegir una relación o duración fijas:

| Campo          | Valores             | Comportamiento                                                                                                        |
| -------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `aspect_ratio` | `adaptive` o `auto` | La relación de aspecto de salida coincide con el video de origen (Seedance 2.0 y 2.5 R2V)                             |
| `duration`     | `-1` o `auto`       | La duración de salida coincide con el video de origen (edit de R2V en Seedance **2.5**; el origen debe ser de 4–30 s) |

Requisitos:

* **Queue:** cualquier valor coincidente con el origen requiere `reference_video_urls`.
* **Quote:** cualquier valor coincidente con el origen requiere `reference_video_total_duration`. La duración coincidente con el origen se factura como `ceil(reference_video_total_duration)` segundos.
* La relación y la duración son independientes: puedes hacer coincidir una sin la otra.
* Para **extend**, prefiere una `duration` fija (cuánto generar) y opcionalmente `aspect_ratio: "adaptive"`. La `duration` coincidente con el origen está pensada para trabajos tipo edit con "misma duración que el origen".

### Flujo Extend

Continúa un único clip hacia delante o hacia atrás en el tiempo. **Por defecto, Seedance devuelve solo el contenido nuevo**, no el clip de entrada concatenado con la extensión. Es por diseño, para preservar la continuidad de la transición; si quieres que el clip de entrada se conserve junto con la extensión, indícalo 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 la entrada al inicio
Extend <Video 1> backward, [description], and then end with <Video 1>               ← preserva la entrada al final
```

Manejo de transiciones: el modelo extrae automáticamente los fotogramas de transición para una mezcla sin costuras, y los segmentos originales del video de entrada no se regeneran.

**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 clips de entrada con transiciones generadas por IA. Respeta los topes **específicos por familia** de duración combinada y número de clips en [Límites de entrada multimodal](#multimodal-input-limits) (Seedance 2.0: ≤3 clips / ≤15 s combinados; Seedance 2.5: topes de video más altos).

**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 unión en los puntos de empalme para lograr continuidad.

***

## Fórmula universal de prompt

En los cuatro flujos, la fórmula de redacción recomendada es:

```
Subject + Motion + Environment (Optional)
       + Camera Movement / Cut (Optional)
       + Aesthetic Description (Optional)
       + Audio (Optional)
```

* **Subject + Motion**: la base lógica; define "quién" realiza "qué acción"
* **Environment + Aesthetics**: fondo espacial, iluminación, estilo visual
* **Camera**: tipo de plano o movimiento explícito
* **Audio**: efectos de sonido ambientales o dirección vocal para una salida inmersiva

Superponer esto sobre un prefijo de flujo de trabajo (por ejemplo, `Strictly edit <Video 1>, changing its <subject + motion + environment + ...>`) produce las salidas de mayor calidad.

***

## Límites de entrada multimodal

Los valores a continuación son los que acepta la API de Venice. Las solicitudes fuera de estos rangos se rechazan a nivel de esquema con un 400 antes de llegar a la inferencia.

**Seedance 2.0 y Seedance 2.5 usan topes distintos.** Consulta siempre la columna correspondiente a la familia de modelos que estés llamando.

### Mínimos compartidos de medios

| Restricción                                  | Valor                                                               |
| -------------------------------------------- | ------------------------------------------------------------------- |
| Métodos de entrada de imagen / video / audio | URL (`http://`, `https://`) o data URL en Base64                    |
| Formatos de imagen                           | `.jpeg`, `.png`, `.webp`, `.bmp`, `.tiff`, `.gif`, `.heic`, `.heif` |
| Relación de aspecto de imagen (A / A)        | exclusiva `(0.4, 2.5)`                                              |
| Lado mínimo de la imagen                     | ≥ 300 px                                                            |
| Formatos de video                            | `.mp4`, `.mov`                                                      |
| Códecs de video                              | H.264 / AVC, H.265 / HEVC                                           |
| Códecs de audio (en contenedor)              | AAC, MP3                                                            |
| Formatos de audio (audio de referencia)      | `.wav`, `.mp3`                                                      |
| Tamaño de video por clip                     | ≤ 50 MB                                                             |
| Tamaño de audio por clip                     | ≤ 15 MB                                                             |
| Imágenes de primer fotograma para I2V        | 1                                                                   |
| Primer + último fotograma para I2V           | 2                                                                   |

### Comparación por familia

| Restricción                                | Seedance 2.0 (+ Fast)                                 | Seedance 2.5            |
| ------------------------------------------ | ----------------------------------------------------- | ----------------------- |
| Duración de salida                         | 4–15 s                                                | 4–30 s (por defecto 10) |
| Resoluciones de salida                     | 480p / 720p / 1080p / **4k** (Fast: solo 480p / 720p) | 480p / 720p únicamente  |
| Imágenes de referencia R2V                 | 1–9                                                   | 1–30                    |
| Bytes máximos por imagen de referencia R2V | (límites compartidos de la solicitud)                 | ≤ 30 MB por imagen      |
| Videos de referencia R2V                   | ≤ 3                                                   | ≤ 10                    |
| Duración por video de referencia           | `[2, 15]` s                                           | `[2, 30]` s             |
| Duración combinada de videos de referencia | ≤ 15 s                                                | ≤ 30 s                  |
| Clips de audio de referencia R2V           | ≤ 3                                                   | ≤ 10                    |
| Duración por audio de referencia           | `[2, 15]` s                                           | `[2, 30]` s             |
| Duración combinada de audio de referencia  | ≤ 15 s                                                | ≤ 30 s                  |

El audio de referencia solo se admite en las variantes R2V. Cada entrada se envía al modelo como un elemento de contenido con `role: "reference_audio"` al que el prompt hace referencia como `<Audio 1>`, `<Audio 2>`, … El modelo usa cada clip para timbre vocal, efectos de sonido o música de fondo según cómo lo enmarque el prompt. El campo heredado singular `audio_url` se mapea a la misma forma de contenido y ahora es equivalente a pasar un `reference_audio_urls` con un solo elemento.

<Warning>
  **`reference_audio_urls` no puede ser la única entrada de referencia.** El modelo requiere al menos una referencia de imagen o video 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 con audio se rechazan.
</Warning>

### Tamaño de la solicitud

El endpoint de la cola acepta cuerpos JSON de hasta **35 MB**. Las data URLs inline para videos grandes pueden superar este tope; para Stitch de varios clips en particular, prefiere URLs sobre 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 precios pueden cambiar y no deben almacenarse en caché ni duplicarse en el cliente.

Cuando haya video(s) de referencia como 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 `/video/queue` cobrará:

```bash theme={"system"}
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-basic",
    "duration": "5s",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "reference_video_total_duration": 5
  }'
```

Cotización de edit de Seedance 2.5 coincidente con el origen (factura a partir de la duración del origen):

```bash theme={"system"}
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-5-reference-to-video-basic",
    "duration": "auto",
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "reference_video_total_duration": 5.2
  }'
```

***

## Ejemplos completos

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

### Texto a video

```bash theme={"system"}
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-basic",
    "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"
  }'
```

### Seedance 2.0 texto a video (4K)

```bash theme={"system"}
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-basic",
    "prompt": "Ultra-detailed aerial glide over a sunlit alpine lake, crystal water, distant peaks, cinematic color grade.",
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "4k"
  }'
```

### Seedance 2.5 texto a video (duración más larga)

```bash theme={"system"}
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-5-text-to-video-basic",
    "prompt": "A slow aerial push over misty mountains at sunrise, clouds parting, soft orchestral ambience, cinematic widescreen framing.",
    "duration": "20s",
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
```

### Imagen a video (primer fotograma)

```bash theme={"system"}
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-basic",
    "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"
  }'
```

<Note>
  Los modelos I2V de Seedance (`seedance-2-0-image-to-video-basic`, su variante Fast y `seedance-2-5-image-to-video-basic`) **no aceptan `aspect_ratio`**: la relación de aspecto 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 la relación de aspecto.
</Note>

### Flujo Reference — donante de sujeto

```bash theme={"system"}
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-basic",
    "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 de Seedance 2.5 — multi-imagen

```bash theme={"system"}
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-5-reference-to-video-basic",
    "prompt": "Refer to <Subject 1> in <Image 1> and the style in <Image 2> to generate a 12-second clip of the same character exploring a rainy cyberpunk alley.",
    "reference_image_urls": [
      "https://example.com/character.png",
      "https://example.com/style-board.png"
    ],
    "duration": "12s",
    "aspect_ratio": "9:16",
    "resolution": "720p"
  }'
```

### Flujo Reference — donante de sujeto + audio

```bash theme={"system"}
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-basic",
    "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

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Edit de Seedance 2.5 — duración y relación de aspecto coincidentes con el origen

```bash theme={"system"}
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-5-reference-to-video-basic",
    "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"],
    "duration": "auto",
    "aspect_ratio": "adaptive",
    "resolution": "720p"
  }'
```

`duration: "auto"` (o `"-1"`) y `aspect_ratio: "adaptive"` (o `"auto"`) hacen que la salida siga el clip de origen. Consulta [Relación de aspecto y duración coincidentes con el origen](#source-matched-aspect-ratio-and-duration).

### Flujo Edit con anclaje de imagen

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Extend hacia delante

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Stitch (3 clips)

```bash theme={"system"}
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-basic",
    "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"
  }'
```

### Sondeo hasta completar

Después de cada envío a la cola, guarda el `queue_id` devuelto y consulta `/video/retrieve` hasta que el cuerpo de la respuesta sea `video/mp4`:

```bash theme={"system"}
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-basic",
    "queue_id": "123e4567-e89b-12d3-a456-426614174000"
  }' \
  -o output.mp4
```

La respuesta es JSON (`{ "status": "queued" | "running" | "failed", ... }`) hasta que el trabajo se completa, momento en el que el cuerpo de la respuesta cambia a bytes `video/mp4`. Consulta [Generación de video](/guides/media/video-generation) para el patrón completo de sondeo.

***

## Solució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 solo de texto no es un flujo R2V válido; usa en su lugar un ID de modelo de text-to-video. `reference_audio_urls` por sí solo no es suficiente (ver la sección de Audio más arriba).

### Demasiados videos / imágenes de referencia

Seedance **2.0** limita R2V a **9 imágenes** y **3 videos**. Seedance **2.5** eleva esos topes a **30 imágenes** y **10 videos**. Si superas el límite de la familia, recorta las entradas o une los clips offline primero.

### Errores de duración / duración agregada

* **2.0:** por clip de video/audio de referencia `[2, 15]` s; combinado video/audio ≤ 15 s; salida 4–15 s.
* **2.5:** por clip de video/audio de referencia `[2, 30]` s; combinado video/audio ≤ 30 s; salida 4–30 s.
* **Duración coincidente con el origen** (`-1` / `auto` en Seedance 2.5): el clip de origen debe ser de 4–30 s, y se requiere `reference_video_urls` (queue) o `reference_video_total_duration` (quote).

Recorta los clips en el cliente antes del envío.

### El prompt se enruta al flujo de trabajo equivocado

El flujo de trabajo se infiere a partir de la sintaxis del prompt. Malas rutas comunes:

* Querer **Extend** pero escribir `Refer to ...` → el modelo trata tu video como *donante*, no como un lienzo para continuar
* Querer **Stitch** pero escribir `Refer to ...` → el modelo elige uno como donante e ignora los demás
* Querer **Edit** pero escribir `Generate a video based on <Video 1>` → es ambiguo; el modelo puede caer por defecto en Reference

Usa los prefijos canónicos exactamente como se escriben: `Strictly edit <Video 1>, ...`, `Extend <Video 1>, ...`, `<Video 1> + ... + followed by <Video 2>`.

### Medios con personas no compatibles

Los modelos públicos de la API de Seedance no ejecutan un flujo de atestación de consentimiento (`consents.seedance` / `needs_consent`). Los medios con personas detectables pueden fallar con un error de política de contenido o del proveedor. Usa la app de Venice o Studio en su lugar.

### La cotización no coincide con el importe encolado

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

***

## Referencias

* Endpoint de cola de video de Venice: [`POST /api/v1/video/queue`](/api-reference/endpoint/video/queue)
* Endpoint de cotización de Venice: [`POST /api/v1/video/quote`](/api-reference/endpoint/video/quote)
* Guía complementaria: [Reference to Video](/guides/media/reference-to-video) (cubre Kling O3 + Grok Imagine R2V)
* Guía complementaria: [Generación de video](/guides/media/video-generation) (visión general de cola / sondeo)
