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

> Gere, edite, estenda e costure vídeos com Seedance 2.0 e 2.5 na Venice - fluxos de text-to-video, image-to-video e reference-to-video, política de mídia da API pública e limites multimodais específicos por família.

Seedance é uma família multimodal de vídeo de destaque na Venice para geração de vídeo guiada por texto, imagem e referência. **Seedance 2.0** (mais Fast) e **Seedance 2.5** compartilham o mesmo modelo de roteamento de prompt R2V: um único endpoint reference-to-video cuida de **quatro workflows distintos** (Reference, Edit, Extend, Stitch) — o workflow é inferido pelo **formato do seu prompt**.

Este guia cobre as variantes, os quatro workflows, a **política de mídia da API pública**, os **limites multimodais específicos por família**, preços e exemplos em `curl`.

<Warning>
  **Mídia contendo pessoas não é suportada na API pública do Seedance.** Os modelos públicos `*-basic` não utilizam atestação de consentimento (`consents.seedance` / `needs_consent`). Essas entradas podem ser rejeitadas upstream como erro de política de conteúdo ou do provedor. Use o app Venice ou o Studio para o conjunto completo de recursos do Seedance.
</Warning>

## Variantes

| ID do modelo                                 | Variante | Resoluções de saída          | Notas                                                                                                                                 |
| -------------------------------------------- | -------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `seedance-2-0-text-to-video-basic`           | T2V      | 480p / 720p / 1080p / **4k** | Apenas prompt de texto                                                                                                                |
| `seedance-2-0-image-to-video-basic`          | I2V      | 480p / 720p / 1080p / **4k** | Grounding por imagem do primeiro frame (e opcionalmente último frame)                                                                 |
| `seedance-2-0-reference-to-video-basic`      | R2V      | 480p / 720p / 1080p / **4k** | Até 9 imagens de referência + 3 vídeos de referência + 3 doadores de áudio de referência. Alimenta Reference / Edit / Extend / Stitch |
| `seedance-2-0-fast-text-to-video-basic`      | Fast T2V | 480p / 720p                  | Tier mais rápido e de menor fidelidade (sem 1080p / 4k)                                                                               |
| `seedance-2-0-fast-image-to-video-basic`     | Fast I2V | 480p / 720p                  | Tier mais rápido e de menor fidelidade (sem 1080p / 4k)                                                                               |
| `seedance-2-0-fast-reference-to-video-basic` | Fast R2V | 480p / 720p                  | Tier mais rápido e de menor fidelidade (sem 1080p / 4k); mesmo conjunto de workflows                                                  |
| `seedance-2-5-text-to-video-basic`           | T2V      | 480p / 720p                  | Até 30s de saída; áudio nativo                                                                                                        |
| `seedance-2-5-image-to-video-basic`          | I2V      | 480p / 720p                  | Até 30s de saída; grounding por primeiro frame (e opcionalmente último frame)                                                         |
| `seedance-2-5-reference-to-video-basic`      | R2V      | 480p / 720p                  | Até 30 imagens + 10 vídeos + 10 doadores de áudio; mesmos workflows Reference / Edit / Extend / Stitch                                |

Todas as variantes são assíncronas. Envie via `POST /api/v1/video/queue` e depois faça polling em `POST /api/v1/video/retrieve` até o corpo da resposta ser `video/mp4`. Veja [Geração de Vídeo](/guides/media/video-generation) para o fluxo geral da fila.

Passe `resolution` como um dos seguintes: `480p`, `720p`, `1080p` ou `4k` (em minúsculas). Seedance **2.0** (não-Fast) aceita todos os quatro; **2.0 Fast** e **2.5** aceitam apenas `480p` / `720p`. Descubra os IDs de modelo e capacidades ao vivo com `GET /models?type=video` — não hardcode a disponibilidade.

## O modelo "um modelo, quatro workflows"

As variantes reference-to-video (`seedance-2-0-reference-to-video-basic`, sua irmã Fast e `seedance-2-5-reference-to-video-basic`) usam o mesmo padrão de roteamento por prompt. **O modelo infere a tarefa a partir do prefixo do prompt e do formato das suas entradas.** Não existe campo `task` ou `workflow` — a sintaxe do prompt é o roteamento.

| Workflow      | O que faz                                                                                                          | Prefixo do prompt                                                    | Entradas                                                                                                                 |
| ------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Reference** | Gera um novo vídeo usando os arquivos de referência enviados como doadores de sujeito / movimento / estilo / áudio | `Refer to ... in <Image\|Video\|Audio N> to generate ...`            | Texto + ≥1 imagem OU vídeo de referência, mais doadores de áudio opcionais (contagens variam por família — veja limites) |
| **Edit**      | Modifica um único vídeo de entrada preservando o restante                                                          | `Strictly edit <Video 1>, changing its ...`                          | 1 vídeo de entrada + texto (imagens opcionais para grounding)                                                            |
| **Extend**    | Extensão para frente / para trás de um clipe                                                                       | `Extend <Video 1>, generate ...`                                     | 1 vídeo de entrada + texto                                                                                               |
| **Stitch**    | Costura clipes de entrada com transições autogeradas                                                               | `<Video 1> + <transition description> + followed by <Video 2> + ...` | Múltiplos vídeos de entrada + texto (limites de contagem/duração variam por família)                                     |

A **sintaxe do prompt é canônica e sensível a maiúsculas**: colchetes angulares, primeira letra maiúscula, um único espaço antes do número — `<Video 1>`, `<Image 1>`, `<Audio 1>`.

***

## Padrões de workflow

### Workflow Reference

Use os arquivos de referência enviados como **doadores** — sujeito, cena, movimento, estilo, timbre vocal — para gerar um vídeo totalmente novo.

**Padrões 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 ...
```

**Exemplos**:

* `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.` (doadores de áudio devem ser pareados com pelo menos uma referência de imagem ou vídeo — áudio sozinho é rejeitado)

### Workflow Edit

Modifica um único vídeo de entrada. **Qualquer coisa não citada explicitamente no prompt é preservada.** Use isto quando você quer uma alteração localizada (troca de sujeito, mudança de clima/cor, adição/remoção de elemento) em vez de um vídeo totalmente novo.

**Padrão canônico de prompt**:

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

**Sub-padrões para controle mais 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].
```

**Exemplos**:

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

O último exemplo combina Edit com uma referência de imagem — perfeitamente válido, o modelo usa `<Image 1>` como doador visual para a substituição.

### Proporção e duração correspondentes à origem

Para o Seedance reference-to-video **edit / extend**, você pode pedir que a saída siga o clipe de origem em vez de escolher uma proporção ou duração fixa:

| Campo          | Valores              | Comportamento                                                                                              |
| -------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- |
| `aspect_ratio` | `adaptive` ou `auto` | A proporção da saída corresponde ao vídeo de origem (Seedance 2.0 e 2.5 R2V)                               |
| `duration`     | `-1` ou `auto`       | A duração da saída corresponde ao vídeo de origem (edit R2V do Seedance **2.5**; a origem deve ter 4–30 s) |

Requisitos:

* **Queue:** qualquer valor correspondente à origem exige `reference_video_urls`.
* **Quote:** qualquer valor correspondente à origem exige `reference_video_total_duration`. A duração correspondente à origem cobra `ceil(reference_video_total_duration)` segundos.
* Proporção e duração são independentes — você pode fazer uma corresponder sem a outra.
* Para **extend**, prefira uma `duration` fixa (quanto tempo gerar) e opcionalmente `aspect_ratio: "adaptive"`. A `duration` correspondente à origem é para jobs no estilo edit "mesma duração da origem".

### Workflow Extend

Continua um único clipe para frente ou para trás no tempo. **Por padrão, o Seedance retorna apenas o novo conteúdo** — não o input original concatenado com a extensão. Isso é intencional, para continuidade da transição; se você quer o clipe de entrada preservado junto da extensão, diga isso explicitamente:

```
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 o input no início
Extend <Video 1> backward, [description], and then end with <Video 1>               ← preserva o input no fim
```

Tratamento de transição: o modelo extrai automaticamente os frames de transição para blending sem emendas, e os segmentos originais do vídeo de entrada não são regenerados.

**Exemplos**:

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

Conecta clipes de entrada com transições geradas por IA. Respeite os limites **específicos por família** de duração combinada e contagem de clipes em [Limites de entrada multimodal](#multimodal-input-limits) (Seedance 2.0: ≤3 clipes / ≤15 s combinados; Seedance 2.5: limites de vídeo maiores).

**Padrão canônico de prompt**:

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

**Exemplos**:

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

O modelo apara automaticamente os segmentos de conexão nos pontos de junção para continuidade.

***

## Fórmula universal de prompt

Em todos os quatro workflows, a fórmula recomendada de autoria é:

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

* **Subject + Motion**: a base lógica — define "Quem" está realizando "Qual ação"
* **Environment + Aesthetics**: fundo espacial, iluminação, estilo visual
* **Camera**: tipo de plano ou movimento explícito
* **Audio**: efeitos de som ambiente ou direção vocal para saída imersiva

Sobrepor isso a um prefixo de workflow (por exemplo, `Strictly edit <Video 1>, changing its <subject + motion + environment + ...>`) produz as saídas de mais alta qualidade.

***

## Limites de entrada multimodal

Os valores abaixo são os que a API Venice aceita. Requisições fora dessas faixas são rejeitadas na camada de schema com um 400 antes de chegar à inferência.

**Seedance 2.0 e Seedance 2.5 usam limites diferentes.** Sempre confira a coluna da família do modelo que você está chamando.

### Pisos de mídia compartilhados

| Restrição                                    | Valor                                                               |
| -------------------------------------------- | ------------------------------------------------------------------- |
| Métodos de entrada de imagem / vídeo / áudio | URL (`http://`, `https://`) ou data URL Base64                      |
| Formatos de imagem                           | `.jpeg`, `.png`, `.webp`, `.bmp`, `.tiff`, `.gif`, `.heic`, `.heif` |
| Proporção de imagem (L / A)                  | exclusiva `(0.4, 2.5)`                                              |
| Lado mínimo da imagem                        | ≥ 300 px                                                            |
| Formatos de vídeo                            | `.mp4`, `.mov`                                                      |
| Codecs de vídeo                              | H.264 / AVC, H.265 / HEVC                                           |
| Codecs de áudio (no contêiner)               | AAC, MP3                                                            |
| Formatos de áudio (áudio de referência)      | `.wav`, `.mp3`                                                      |
| Tamanho por clipe de vídeo                   | ≤ 50 MB                                                             |
| Tamanho por clipe de áudio                   | ≤ 15 MB                                                             |
| Imagens I2V do primeiro frame                | 1                                                                   |
| I2V primeiro + último frame                  | 2                                                                   |

### Comparação entre famílias

| Restrição                                   | Seedance 2.0 (+ Fast)                                   | Seedance 2.5       |
| ------------------------------------------- | ------------------------------------------------------- | ------------------ |
| Duração de saída                            | 4–15 s                                                  | 4–30 s (padrão 10) |
| Resoluções de saída                         | 480p / 720p / 1080p / **4k** (Fast: apenas 480p / 720p) | apenas 480p / 720p |
| Imagens de referência R2V                   | 1–9                                                     | 1–30               |
| Tamanho máximo por imagem de referência R2V | (limites de request compartilhados)                     | ≤ 30 MB por imagem |
| Vídeos de referência R2V                    | ≤ 3                                                     | ≤ 10               |
| Duração por vídeo de referência             | `[2, 15]` s                                             | `[2, 30]` s        |
| Duração combinada de vídeos de referência   | ≤ 15 s                                                  | ≤ 30 s             |
| Clipes de áudio de referência R2V           | ≤ 3                                                     | ≤ 10               |
| Duração por áudio de referência             | `[2, 15]` s                                             | `[2, 30]` s        |
| Duração combinada de áudios de referência   | ≤ 15 s                                                  | ≤ 30 s             |

Áudio de referência é suportado apenas nas variantes R2V. Cada entrada é encaminhada ao modelo como um item de conteúdo `role: "reference_audio"` que o prompt endereça como `<Audio 1>`, `<Audio 2>`, … — o modelo usa cada clipe para timbre vocal, efeitos sonoros ou música de fundo, dependendo de como o prompt o enquadra. O antigo campo singular `audio_url` mapeia para a mesma forma de conteúdo e agora é equivalente a passar um `reference_audio_urls` com um único elemento.

<Warning>
  **`reference_audio_urls` não pode ser a única entrada de referência.** O modelo exige pelo menos uma referência de imagem ou vídeo junto de qualquer doador de áudio. Pareie `reference_audio_urls` com `reference_image_urls`, `reference_video_urls`, `image_url` ou `video_url` — submissões apenas com áudio são rejeitadas.
</Warning>

### Tamanho do request

O endpoint de fila aceita corpos JSON de até **35 MB**. Data URLs inline para vídeos grandes podem ultrapassar esse limite — para Stitch multi-clipe em particular, prefira URLs a base64 inline.

***

## Preços

Chame `POST /api/v1/video/quote` para obter uma cotação de um dado formato de request antes de enviá-lo para `/video/queue`. O endpoint de cotação é a única fonte autoritativa; detalhes de preço podem mudar e não devem ser armazenados em cache ou duplicados no cliente.

Quando vídeo(s) de referência fazem parte da requisição, também passe `reference_video_total_duration` (a soma das durações de todos os clipes de referência em segundos) para que a cotação corresponda ao 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
  }'
```

Cotação do edit Seedance 2.5 correspondente à origem (cobra a partir da duração da origem):

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

***

## Exemplos completos

Todos os exemplos assumem que `VENICE_API_KEY` está definido no 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 (duração maior)

```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 (primeiro 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>
  Os modelos I2V do Seedance (`seedance-2-0-image-to-video-basic`, sua variante Fast e `seedance-2-5-image-to-video-basic`) **não aceitam `aspect_ratio`** — a proporção de saída é derivada automaticamente das dimensões da imagem de entrada. Passar o campo retorna um 400 com *"This model does not support aspect\_ratio"*. Use as variantes T2V ou R2V se precisar de controle explícito de proporção.
</Note>

### Workflow Reference — doador de sujeito

```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 do Seedance 2.5 — multi-imagem

```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 — sujeito + doador de áudio

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

### Seedance 2.5 edit — duração e proporção correspondentes à origem

```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"` (ou `"-1"`) e `aspect_ratio: "adaptive"` (ou `"auto"`) fazem a saída seguir o clipe de origem. Veja [Proporção e duração correspondentes à origem](#source-matched-aspect-ratio-and-duration).

### Workflow Edit com grounding por imagem

```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 para frente

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

```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 até a conclusão

Após cada submissão à fila, salve o `queue_id` retornado e faça polling em `/video/retrieve` até o corpo da resposta ser `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
```

A resposta é JSON (`{ "status": "queued" | "running" | "failed", ... }`) até o job concluir, ponto em que o corpo da resposta muda para bytes `video/mp4`. Veja [Geração de Vídeo](/guides/media/video-generation) para o padrão completo de polling.

***

## Solução de problemas

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

Submissões reference-to-video devem incluir pelo menos um de `reference_image_urls`, `reference_video_urls`, `image_references` ou `video_references`. Geração puramente text-only não é um workflow R2V válido — use um ID de modelo text-to-video em vez disso. `reference_audio_urls` sozinho não é suficiente (veja a seção sobre áudio acima).

### Vídeos / imagens de referência em excesso

Seedance **2.0** limita R2V a **9 imagens** e **3 vídeos**. Seedance **2.5** eleva esses limites para **30 imagens** e **10 vídeos**. Se exceder o limite da família, corte as entradas ou faça o stitch offline primeiro.

### Erros de duração / duração agregada

* **2.0:** vídeo/áudio de referência por clipe `[2, 15]` s; combinado de vídeo/áudio ≤ 15 s; saída 4–15 s.
* **2.5:** vídeo/áudio de referência por clipe `[2, 30]` s; combinado de vídeo/áudio ≤ 30 s; saída 4–30 s.
* **Duração correspondente à origem** (`-1` / `auto` no Seedance 2.5): o clipe de origem deve ter 4–30 s, e `reference_video_urls` (queue) ou `reference_video_total_duration` (quote) é obrigatório.

Corte os clipes no lado do cliente antes de submeter.

### O prompt roteia para o workflow errado

O workflow é inferido pela sintaxe do prompt. Erros comuns de roteamento:

* Querendo **Extend** mas escrevendo `Refer to ...` → o modelo trata o seu vídeo como um *doador*, não como uma tela para continuar
* Querendo **Stitch** mas escrevendo `Refer to ...` → o modelo escolhe um como doador e ignora os outros
* Querendo **Edit** mas escrevendo `Generate a video based on <Video 1>` → ambíguo; o modelo pode cair no default de Reference

Use os prefixos canônicos exatamente como escritos: `Strictly edit <Video 1>, ...`, `Extend <Video 1>, ...`, `<Video 1> + ... + followed by <Video 2>`.

### Mídia com pessoas não suportada

Os modelos públicos da API do Seedance não executam um fluxo de atestação de consentimento (`consents.seedance` / `needs_consent`). Mídia com pessoas detectáveis pode falhar com um erro de política de conteúdo ou do provedor. Use o app Venice ou o Studio em vez disso.

### A cotação não bate com o valor da fila

Se você incluiu um vídeo de referência mas não passou `reference_video_total_duration` para `/video/quote`, a cotação e o valor cobrado na fila podem divergir. Sempre passe `reference_video_total_duration` (soma das durações de todos os clipes de referência, em segundos) quando houver vídeos de referência.

***

## Referências

* Endpoint de fila de vídeo Venice: [`POST /api/v1/video/queue`](/api-reference/endpoint/video/queue)
* Endpoint de cotação Venice: [`POST /api/v1/video/quote`](/api-reference/endpoint/video/quote)
* Guia complementar: [Reference to Video](/guides/media/reference-to-video) (cobre Kling O3 + Grok Imagine R2V)
* Guia complementar: [Geração de Vídeo](/guides/media/video-generation) (visão geral de fila / polling)
