> ## 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 e 2.5

> Genera, modifica, estendi e unisci video con Seedance 2.0 e 2.5 su Venice - workflow text-, image- e reference-to-video, policy sui contenuti multimediali dell'API pubblica e limiti multimodali specifici della famiglia.

Seedance è una famiglia multimodale di punta per la generazione video su Venice, per workflow guidati da testo, immagini e riferimenti. **Seedance 2.0** (più Fast) e **Seedance 2.5** condividono lo stesso modello R2V con routing basato sul prompt: un singolo endpoint reference-to-video gestisce **quattro workflow distinti** (Reference, Edit, Extend, Stitch) — il workflow viene dedotto dalla **forma del tuo prompt**.

Questa guida copre le varianti, i quattro workflow, la **policy sui contenuti multimediali dell'API pubblica**, i **limiti multimodali specifici della famiglia**, i prezzi ed esempi con `curl`.

<Warning>
  **I contenuti multimediali con persone non sono supportati sull'API pubblica di Seedance.** I modelli pubblici `*-basic` non utilizzano un flusso di attestazione del consenso. Tali input possono essere rifiutati a monte con un errore di content policy o del provider. Usa l'app o lo Studio di Venice per il set completo di funzionalità di Seedance.
</Warning>

## Varianti

| Model ID                                     | Variante | Risoluzioni di output        | Note                                                                                                                        |
| -------------------------------------------- | -------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `seedance-2-0-text-to-video-basic`           | T2V      | 480p / 720p / 1080p / **4k** | Solo prompt testuale                                                                                                        |
| `seedance-2-0-image-to-video-basic`          | I2V      | 480p / 720p / 1080p / **4k** | Grounding su primo frame (e opzionalmente ultimo frame)                                                                     |
| `seedance-2-0-reference-to-video-basic`      | R2V      | 480p / 720p / 1080p / **4k** | Fino a 9 immagini di riferimento + 3 video di riferimento + 3 clip audio donor. Alimenta Reference / Edit / Extend / Stitch |
| `seedance-2-0-fast-text-to-video-basic`      | Fast T2V | 480p / 720p                  | Tier più veloce e a fedeltà inferiore (no 1080p / 4k)                                                                       |
| `seedance-2-0-fast-image-to-video-basic`     | Fast I2V | 480p / 720p                  | Tier più veloce e a fedeltà inferiore (no 1080p / 4k)                                                                       |
| `seedance-2-0-fast-reference-to-video-basic` | Fast R2V | 480p / 720p                  | Tier più veloce e a fedeltà inferiore (no 1080p / 4k); stesso set di workflow                                               |
| `seedance-2-5-text-to-video-basic`           | T2V      | 480p / 720p                  | Fino a 30s di output; audio nativo                                                                                          |
| `seedance-2-5-image-to-video-basic`          | I2V      | 480p / 720p                  | Fino a 30s di output; grounding su primo frame (e opzionalmente ultimo frame)                                               |
| `seedance-2-5-reference-to-video-basic`      | R2V      | 480p / 720p                  | Fino a 30 immagini + 10 video + 10 clip audio donor; stessi workflow Reference / Edit / Extend / Stitch                     |

Tutte le varianti sono asincrone. Invia tramite `POST /api/v1/video/queue`, quindi esegui il polling di `POST /api/v1/video/retrieve` finché il body della risposta non è `video/mp4`. Consulta [Generazione video](/guides/media/video-generation) per il flusso generale della coda.

Passa `resolution` come uno tra: `480p`, `720p`, `1080p` o `4k` (minuscolo). Seedance **2.0** (non Fast) accetta tutti e quattro; **2.0 Fast** e **2.5** accettano solo `480p` / `720p`. Scopri i model ID e le capacità in tempo reale con `GET /models?type=video` — non fare hardcoding sulla disponibilità.

## Il modello "un modello, quattro workflow"

Le varianti reference-to-video (`seedance-2-0-reference-to-video-basic`, la sua controparte Fast e `seedance-2-5-reference-to-video-basic`) usano lo stesso pattern di routing basato sul prompt. **Il modello deduce il task dal prefisso del prompt e dalla forma dei tuoi input.** Non c'è alcun campo `task` o `workflow` — la sintassi del prompt è il routing.

| Workflow      | Cosa fa                                                                                                         | Prefisso del prompt                                                  | Input                                                                                                                        |
| ------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Reference** | Genera un nuovo video usando i file di riferimento caricati come donor per soggetto / movimento / stile / audio | `Refer to ... in <Image\|Video\|Audio N> to generate ...`            | Testo + ≥1 immagine OPPURE video di riferimento, più audio donor opzionali (i conteggi variano per famiglia — vedi i limiti) |
| **Edit**      | Modifica un singolo video di input preservando il resto                                                         | `Strictly edit <Video 1>, changing its ...`                          | 1 video di input + testo (immagini per grounding opzionale)                                                                  |
| **Extend**    | Estensione in avanti / all'indietro di una clip                                                                 | `Extend <Video 1>, generate ...`                                     | 1 video di input + testo                                                                                                     |
| **Stitch**    | Unisce clip di input con transizioni generate automaticamente                                                   | `<Video 1> + <transition description> + followed by <Video 2> + ...` | Più video di input + testo (i cap su numero di clip / durata variano per famiglia)                                           |

La **sintassi del prompt è canonica e case-sensitive**: parentesi angolari, prima lettera maiuscola, singolo spazio prima del numero — `<Video 1>`, `<Image 1>`, `<Audio 1>`.

***

## Pattern dei workflow

### Workflow Reference

Usa i file di riferimento caricati come **donor** — soggetto, scena, movimento, stile, timbro vocale — per generare un video completamente nuovo.

**Pattern canonici del 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 ...
```

**Esempi**:

* `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.` (gli audio donor devono essere abbinati ad almeno un'immagine o un video di riferimento — l'audio da solo viene rifiutato)

### Workflow Edit

Modifica un singolo video di input. **Tutto ciò che non è esplicitamente nominato nel prompt viene preservato.** Usa questo quando vuoi una modifica localizzata (sostituzione del soggetto, cambio di meteo/colore, aggiunta/rimozione di elementi) piuttosto che un video completamente nuovo.

**Pattern canonico del prompt**:

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

**Sotto-pattern per un controllo più fine**:

```
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].
```

**Esempi**:

* `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.`

L'ultimo esempio combina Edit con un riferimento immagine — perfettamente lecito: il modello usa `<Image 1>` come donor visivo per la sostituzione.

### Rapporto d'aspetto e durata allineati alla sorgente

Per Seedance reference-to-video **edit / extend**, puoi chiedere che l'output segua la clip sorgente invece di scegliere un rapporto o una lunghezza fissi:

| Campo          | Valori              | Comportamento                                                                                                                  |
| -------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `aspect_ratio` | `adaptive` o `auto` | Il rapporto d'aspetto dell'output corrisponde a quello del video sorgente (Seedance 2.0 e 2.5 R2V)                             |
| `duration`     | `-1` o `auto`       | La lunghezza dell'output corrisponde a quella del video sorgente (edit R2V Seedance **2.5**; la sorgente deve essere di 4–30s) |

Requisiti:

* **Queue:** qualsiasi valore allineato alla sorgente richiede `reference_video_urls`.
* **Quote:** qualsiasi valore allineato alla sorgente richiede `reference_video_total_duration`. La durata allineata alla sorgente viene fatturata come `ceil(reference_video_total_duration)` secondi.
* Rapporto e durata sono indipendenti — puoi allineare uno senza l'altro.
* Per **extend**, preferisci una `duration` fissa (quanto generare) e, opzionalmente, `aspect_ratio: "adaptive"`. La `duration` allineata alla sorgente è pensata per job in stile edit "stessa lunghezza della sorgente".

### Workflow Extend

Continua una singola clip in avanti o all'indietro nel tempo. **Per impostazione predefinita Seedance restituisce solo il nuovo contenuto** — non il video di input originale concatenato all'estensione. Questo è di design, per la continuità di transizione; se vuoi che la clip di input sia preservata insieme all'estensione, dillo esplicitamente:

```
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 l'input all'inizio
Extend <Video 1> backward, [description], and then end with <Video 1>               ← preserva l'input alla fine
```

Gestione delle transizioni: il modello estrae automaticamente i frame di transizione per una fusione senza cuciture, e i segmenti originali del video di input non vengono ri-generati.

**Esempi**:

* `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.`

### Workflow Stitch (Track Completion)

Collega clip di input con transizioni generate dall'IA. Rispetta i limiti **specifici della famiglia** su durata combinata e numero di clip in [Limiti di input multimodali](#multimodal-input-limits) (Seedance 2.0: ≤3 clip / ≤15 s combinati; Seedance 2.5: cap video più alti).

**Pattern canonico del prompt**:

```
<Video 1> + [transition description] + followed by <Video 2> [+ [transition description] + followed by <Video 3>]
```

**Esempi**:

* `<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>`

Il modello ritaglia automaticamente i segmenti di collegamento nei punti di giunzione per la continuità.

***

## Formula universale del prompt

In tutti e quattro i workflow, la formula di scrittura raccomandata è:

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

* **Subject + Motion**: la base logica — definire "Chi" esegue "Quale azione"
* **Environment + Aesthetics**: sfondo spaziale, illuminazione, stile visivo
* **Camera**: tipo di inquadratura o movimento esplicito
* **Audio**: effetti sonori ambientali o direzione vocale per un output immersivo

Sovrapponendo questo a un prefisso di workflow (ad es., `Strictly edit <Video 1>, changing its <subject + motion + environment + ...>`) si ottengono output della massima qualità.

***

## Limiti di input multimodali

I valori sottostanti sono ciò che l'API Venice accetta. Le richieste al di fuori di questi range vengono rifiutate al livello schema con un 400 prima di raggiungere l'inferenza.

**Seedance 2.0 e Seedance 2.5 usano cap diversi.** Controlla sempre la colonna della famiglia di modelli che stai chiamando.

### Limiti minimi condivisi sui media

| Vincolo                                      | Valore                                                              |
| -------------------------------------------- | ------------------------------------------------------------------- |
| Metodi di input per immagine / video / audio | URL (`http://`, `https://`) o Data URL Base64                       |
| Formati immagine                             | `.jpeg`, `.png`, `.webp`, `.bmp`, `.tiff`, `.gif`, `.heic`, `.heif` |
| Rapporto d'aspetto immagine (L / A)          | esclusivo `(0.4, 2.5)`                                              |
| Lato minimo dell'immagine                    | ≥ 300 px                                                            |
| Formati video                                | `.mp4`, `.mov`                                                      |
| Codec video                                  | H.264 / AVC, H.265 / HEVC                                           |
| Codec audio (nel contenitore)                | AAC, MP3                                                            |
| Formati audio (audio di riferimento)         | `.wav`, `.mp3`                                                      |
| Dimensione video per clip                    | ≤ 50 MB                                                             |
| Dimensione audio per clip                    | ≤ 15 MB                                                             |
| Immagini I2V primo frame                     | 1                                                                   |
| I2V primo + ultimo frame                     | 2                                                                   |

### Confronto tra famiglie

| Vincolo                                      | Seedance 2.0 (+ Fast)                                 | Seedance 2.5         |
| -------------------------------------------- | ----------------------------------------------------- | -------------------- |
| Durata output                                | 4–15 s                                                | 4–30 s (default 10)  |
| Risoluzioni output                           | 480p / 720p / 1080p / **4k** (Fast: solo 480p / 720p) | solo 480p / 720p     |
| Immagini di riferimento R2V                  | 1–9                                                   | 1–30                 |
| Byte massimi per immagine di riferimento R2V | (limiti condivisi della richiesta)                    | ≤ 30 MB per immagine |
| Video di riferimento R2V                     | ≤ 3                                                   | ≤ 10                 |
| Durata per video di riferimento              | `[2, 15]` s                                           | `[2, 30]` s          |
| Durata combinata video di riferimento        | ≤ 15 s                                                | ≤ 30 s               |
| Clip audio di riferimento R2V                | ≤ 3                                                   | ≤ 10                 |
| Durata per audio di riferimento              | `[2, 15]` s                                           | `[2, 30]` s          |
| Durata combinata audio di riferimento        | ≤ 15 s                                                | ≤ 30 s               |

L'audio di riferimento è supportato solo sulle varianti R2V. Ogni voce viene inoltrata al modello come content item `role: "reference_audio"` che il prompt indirizza come `<Audio 1>`, `<Audio 2>`, … — il modello usa ciascuna clip per il timbro vocale, gli effetti sonori o la musica di sottofondo, a seconda di come il prompt lo inquadra. Il campo singolare legacy `audio_url` mappa sulla stessa forma di contenuto ed è ora equivalente al passaggio di un `reference_audio_urls` con un solo elemento.

<Warning>
  **`reference_audio_urls` non può essere l'unico input di riferimento.** Il modello richiede almeno un'immagine o un video di riferimento insieme a qualsiasi audio donor. Abbina `reference_audio_urls` a `reference_image_urls`, `reference_video_urls`, `image_url` o `video_url` — gli invii solo audio vengono rifiutati.
</Warning>

### Dimensione della richiesta

L'endpoint di coda accetta body JSON fino a **35 MB**. I Data URL inline per video di grandi dimensioni possono superare questo limite — per lo Stitch multi-clip in particolare, preferisci gli URL al base64 inline.

***

## Prezzi

Chiama `POST /api/v1/video/quote` per ottenere un preventivo per una determinata forma di richiesta prima di inviarla a `/video/queue`. L'endpoint quote è l'unica fonte autorevole; i dettagli sui prezzi possono cambiare e non dovrebbero essere memorizzati nella cache o duplicati lato client.

Quando uno o più video di riferimento fanno parte della richiesta, passa anche `reference_video_total_duration` (la somma della durata di tutte le clip di riferimento in secondi) in modo che il preventivo corrisponda a ciò che `/video/queue` addebiterà:

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

Quote di edit Seedance 2.5 allineato alla sorgente (fattura in base alla lunghezza sorgente):

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

***

## Esempi completi

Tutti gli esempi assumono che `VENICE_API_KEY` sia impostata nell'ambiente.

### Text-to-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 text-to-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 text-to-video (durata più lunga)

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

### Image-to-video (primo frame)

```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>
  I modelli I2V di Seedance (`seedance-2-0-image-to-video-basic`, la sua variante Fast e `seedance-2-5-image-to-video-basic`) **non accettano `aspect_ratio`** — il rapporto d'aspetto di output è derivato automaticamente dalle dimensioni dell'immagine di input. Passare il campo restituisce un 400 con *"This model does not support aspect\_ratio"*. Usa le varianti T2V o R2V se hai bisogno del controllo esplicito del rapporto d'aspetto.
</Note>

### Workflow Reference — subject donor

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

### Workflow Reference Seedance 2.5 — multi-immagine

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

### Workflow Reference — subject + audio donor

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

### Workflow 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 Seedance 2.5 — durata e rapporto d'aspetto allineati alla sorgente

```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"`) e `aspect_ratio: "adaptive"` (o `"auto"`) fanno sì che l'output segua la clip sorgente. Consulta [Rapporto d'aspetto e durata allineati alla sorgente](#source-matched-aspect-ratio-and-duration).

### Workflow Edit con grounding immagine

```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 in avanti

```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 clip)

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

### Polling per il completamento

Dopo ogni invio in coda, salva il `queue_id` restituito ed esegui il polling di `/video/retrieve` finché il body della risposta non è `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 risposta è JSON (`{ "status": "queued" | "running" | "failed", ... }`) finché il job non completa, momento in cui il body della risposta passa a byte `video/mp4`. Consulta [Generazione video](/guides/media/video-generation) per il pattern completo di polling.

***

## Risoluzione dei problemi

### `At least one reference is required for this model`

Gli invii reference-to-video devono includere almeno uno tra `reference_image_urls`, `reference_video_urls`, `image_references` o `video_references`. La generazione basata solo su testo non è un workflow R2V valido — usa invece un model ID text-to-video. `reference_audio_urls` da solo non è sufficiente (vedi la sezione Audio sopra).

### Troppi video / immagini di riferimento

Seedance **2.0** limita R2V a **9 immagini** e **3 video**. Seedance **2.5** alza questi cap a **30 immagini** e **10 video**. Se superi il limite della famiglia, riduci gli input o esegui prima uno stitch offline.

### Errori di durata / durata aggregata

* **2.0:** video/audio di riferimento per clip `[2, 15]` s; video/audio combinati ≤ 15 s; output 4–15 s.
* **2.5:** video/audio di riferimento per clip `[2, 30]` s; video/audio combinati ≤ 30 s; output 4–30 s.
* **Durata allineata alla sorgente** (`-1` / `auto` su Seedance 2.5): la clip sorgente deve essere di 4–30 s, ed è richiesto `reference_video_urls` (queue) o `reference_video_total_duration` (quote).

Ritaglia le clip lato client prima dell'invio.

### Il prompt indirizza al workflow sbagliato

Il workflow è dedotto dalla sintassi del prompt. Errori comuni di routing:

* Volere **Extend** ma scrivere `Refer to ...` → il modello tratta il tuo video come un *donor*, non come una tela da continuare
* Volere **Stitch** ma scrivere `Refer to ...` → il modello sceglie uno come donor, ignora gli altri
* Volere **Edit** ma scrivere `Generate a video based on <Video 1>` → ambiguo; il modello può ricadere di default su Reference

Usa i prefissi canonici esattamente come scritto: `Strictly edit <Video 1>, ...`, `Extend <Video 1>, ...`, `<Video 1> + ... + followed by <Video 2>`.

### Contenuti multimediali con persone non supportati

I modelli pubblici dell'API Seedance non eseguono un flusso di attestazione del consenso. I contenuti multimediali con persone rilevabili possono fallire con un errore di content policy o del provider. Usa invece l'app o lo Studio di Venice.

### Il preventivo non corrisponde all'importo in coda

Se hai incluso un video di riferimento ma non hai passato `reference_video_total_duration` a `/video/quote`, il preventivo e l'importo in coda possono differire. Passa sempre `reference_video_total_duration` (somma della durata di tutte le clip di riferimento, in secondi) quando sono presenti video di riferimento.

***

## Riferimenti

* Endpoint della coda video di Venice: [`POST /api/v1/video/queue`](/api-reference/endpoint/video/queue)
* Endpoint quote di Venice: [`POST /api/v1/video/quote`](/api-reference/endpoint/video/quote)
* Guida correlata: [Reference to Video](/guides/media/reference-to-video) (copre R2V di Kling O3 + Grok Imagine)
* Guida correlata: [Generazione video](/guides/media/video-generation) (panoramica di coda / polling)
