API do Seedance 2.0: preços, parâmetros e código funcional
O Seedance 2.0 é o modelo de vídeo multitomada da ByteDance com som. Este guia cobre no que ele é bom, todas as opções que a API aceita, quanto custa um clipe em cada resolução e requisições que você pode colar em um terminal.
No que o Seedance 2.0 é bom
A ByteDance lançou o Seedance 2.0 em fevereiro de 2026. Ele gera a imagem e a trilha sonora em uma só passada, pode alternar entre várias tomadas dentro de um único clipe e mantém um personagem e um estilo visual entre esses cortes. Isso o torna uma ótima opção padrão para vídeo narrativo curto: anúncios de produto, momentos de história e clipes de redes sociais que precisam de som desde o início.
- Clipes multitomada. Descreva as tomadas em ordem e o modelo alterna entre elas mantendo o sujeito consistente.
- Som na mesma passada. Ambiência, efeitos e fala são gerados junto com a imagem quando você define
audiocomotrue. - Controle por imagens. Comece de um primeiro quadro, fixe um primeiro e um último quadro, ou passe até 9 imagens de referência para um personagem, um produto ou um visual.
- Enquadramento flexível. Seis proporções fixas, de 9:16 vertical para redes sociais a 21:9 para trabalho cinematográfico, mais uma configuração adaptativa que segue a sua imagem de entrada.
Onde é mais fraco: como a maioria dos modelos de vídeo, o Seedance 2.0 não renderiza de forma confiável o texto exato na tela, então adicione títulos, preços e logotipos no seu editor em vez de no prompt. Cenas movimentadas, com muitas pessoas se movendo ao mesmo tempo, são difíceis para os modelos de vídeo atuais em geral; menos sujeitos e ações claras dão resultados mais confiáveis.
Entradas e limites
Estas são as opções que o catálogo lista para o Seedance 2.0. O formato da requisição é o mesmo de todos os outros modelos da Revana; só os valores permitidos mudam.
| Opção | Seedance 2.0 |
|---|---|
| Id do modelo | seedance-2.0 (níveis mais leves: seedance-2.0-fast, seedance-2.0-mini) |
| Tarefas | texto para vídeo, imagem para vídeo, primeiro e último quadro e imagens de referência |
| Resolução | 480p, 720p, 1080p e 4K |
| Duração | 4 a 15 s |
| Proporção | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptativa |
| Som | audio: true or false |
| Imagens de referência | até 9, como image_urls |
Um campo ou valor que o modelo não suporta é rejeitado com um erro 422 antes de qualquer cobrança, então um erro de digitação em uma requisição não custa nada.
Preços do Seedance 2.0 (outubro de 2026)
O Seedance 2.0 é cobrado por segundo de vídeo de saída. Os preços abaixo vêm do catálogo da Revana em outubro de 2026, a partir de $0.08 por segundo em 480p.
| Resolução | Por segundo | Clipe de 5 s | Clipe de 10 s | Clipe de 15 s |
|---|---|---|---|---|
| 480p | $0.08 | $0.40 | $0.80 | $1.20 |
| 720p | $0.15 | $0.75 | $1.50 | $2.25 |
| 1080p | $0.40 | $2.00 | $4.00 | $6.00 |
| 4K | $0.83 | $4.15 | $8.30 | $12.45 |
Não há tarifa de áudio separada para o Seedance 2.0: o preço listado é o mesmo com o som ligado ou desligado.
O Seedance 2.0 na Revana aceita texto e imagens (um primeiro quadro, um primeiro e um último quadro ou imagens de referência). Ele não aceita vídeo de referência, então não há tarifa separada para entrada de vídeo.
Quando você envia um job, o preço dele é reservado do seu saldo. Você só é cobrado quando o job dá certo; se ele falhar, a reserva é liberada. O valor exato volta na geração como cost_usd. Veja os preços para os pacotes de créditos e a tabela de preços completa, e a comparação de preços do Seedance 2.0 para o que ByteDance, fal, EvoLink e Atlas Cloud cobram pelo mesmo modelo.
Seedance 2.0 Fast e Mini
A mesma família vem em dois níveis mais leves, com as mesmas tarefas, proporções, durações e até 9 imagens de referência, mas que vão só até 720p. Servem para rascunhos e trabalho em alto volume; rode de novo no Seedance 2.0 os prompts de que você gostar, para a qualidade final e resoluções maiores.
| Modelo | 480p / s | 720p / s | 5 s em 720p | Rotas |
|---|---|---|---|---|
| Seedance 2.0 | $0.08 | $0.15 | $0.75 | três rotas |
| Seedance 2.0 Fast | $0.05 | $0.11 | $0.55 | três rotas |
| Seedance 2.0 Mini | $0.03 | $0.05 | $0.25 | quatro rotas |
Gere um vídeo do Seedance 2.0
Toda requisição vai para POST /v1/generations com a sua chave de API como bearer token. A chamada retorna 202 na hora com um id de geração; consulte GET /v1/generations/{id} a cada poucos segundos até status ser succeeded ou failed. Este exemplo pede um clipe de 5 segundos em 720p com som, que custa $0.75.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"input": {
"prompt": "A ceramic coffee mug on a sunlit kitchen counter. Shot 1: slow push-in as steam rises. Shot 2: close-up of a hand lifting the mug. Morning birdsong, a soft clink as the mug leaves the counter.",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 2
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "seedance-2.0",
"input": {
"prompt": "A ceramic coffee mug on a sunlit kitchen counter. Shot 1: slow push-in as steam rises. Shot 2: close-up of a hand lifting the mug. Morning birdsong, a soft clink as the mug leaves the counter.",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 2,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.0",
input: {
prompt: "A ceramic coffee mug on a sunlit kitchen counter. Shot 1: slow push-in as steam rises. Shot 2: close-up of a hand lifting the mug. Morning birdsong, a soft clink as the mug leaves the counter.",
resolution: "720p",
duration: 5,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 2,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);max_cost_usd é um teto para o que o job pode custar: as rotas cotadas acima dele são ignoradas e, se nenhuma servir, o job não roda. Defina-o um pouco acima do preço que você espera. Uma geração concluída tem esta aparência:
{
"id": "gen_01JBX7Q2M4",
"model": "seedance-2.0",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 0.75,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}Baixe o arquivo logo depois que o job terminar: os links de saída expiram. A documentação da API lista todos os campos, status e códigos de erro.
Anime uma imagem estática (imagem para vídeo)
Passe um quadro inicial como image_url. O prompt então descreve movimento e som, em vez da cena, que já está na imagem. A proporção adaptive segue o formato da sua imagem.
{
"model": "seedance-2.0",
"input": {
"prompt": "She turns toward the camera and smiles as a light breeze moves her hair. Distant city traffic, a bus passing.",
"image_url": "https://example.com/first-frame.jpg",
"resolution": "1080p",
"duration": 5,
"aspect_ratio": "adaptive",
"audio": true
},
"max_cost_usd": 3
}Quadros inicial e final
Adicione end_image_url para fixar onde a tomada termina. O modelo preenche o movimento entre os dois quadros, o que funciona bem para transições, revelações e tomadas de antes e depois.
{
"model": "seedance-2.0",
"input": {
"prompt": "Smooth orbit around the sneaker as the light shifts from daylight to neon night",
"image_url": "https://example.com/start.jpg",
"end_image_url": "https://example.com/end.jpg",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"audio": false
},
"max_cost_usd": 2
}Imagens de referência
Para manter um personagem ou produto consistente sem fixar o primeiro quadro, envie até 9 imagens como image_urls e descreva cada uma no prompt, por exemplo "a mulher da primeira imagem". Use quadros ou referências em uma requisição, não os dois: são modos separados, e uma requisição que os misture pode ser rejeitada.
{
"model": "seedance-2.0",
"input": {
"prompt": "The woman from the first image walks through the market from the second image, carrying the bag from the third image. Handheld camera, golden hour, market chatter.",
"image_urls": [
"https://example.com/woman.jpg",
"https://example.com/market.jpg",
"https://example.com/bag.jpg"
],
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16",
"audio": true
},
"max_cost_usd": 2
}Dicas de prompt para o Seedance 2.0
- Escreva as tomadas em ordem. Rótulos como "Tomada 1: plano geral de apresentação. Tomada 2: close das mãos dela" dão ao modelo pontos de corte claros.
- Nomeie o movimento de câmera. Push-in, órbita, câmera na mão, tripé fixo, drone se afastando: um movimento por tomada se lê melhor que uma lista.
- Descreva o som. "Chuva em um telhado de zinco, trovão distante, sem música" funciona melhor do que deixar o áudio ao acaso. Se você não quer fala, diga.
- Mantenha o diálogo curto. Coloque a fala entre aspas e diga quem fala. Um clipe de 5 segundos tem espaço para uma frase curta.
- Deixe o texto fora do quadro. Adicione legendas, títulos e logotipos na edição.
- Faça rascunhos baratos e depois aumente. Itere em 480p ou no Seedance 2.0 Mini e depois rode o prompt vencedor de novo em 1080p. Os resultados não são idênticos entre resoluções e níveis, então trate os rascunhos como uma referência.
Como funcionam o roteamento e o fallback no Seedance 2.0
A Revana é um roteador de API: uma chave e um formato de requisição na frente de vários provedores upstream que atendem o mesmo modelo. O Seedance 2.0 tem atualmente três rotas. O roteador envia cada job primeiro para a rota mais barata; se ela falhar ou estourar o tempo limite, reenvia o job automaticamente para a próxima.
- Você paga o preço listado seja qual for a rota que atenda o job, e só a rota que dá certo é cobrada.
- O campo
attemptsna geração informa quantas rotas foram tentadas. - Se todas as rotas falharem, o job termina como
failedcom um erro e não custa nada.
O fallback aumenta a chance de obter um resultado, mas não é uma promessa de disponibilidade nem de velocidade. Trate os jobs failed no seu app, por exemplo tentando de novo mais tarde ou oferecendo outro modelo.
Pronto para testar? Obtenha uma chave de API e depois compare o Seedance 2.0 com os outros modelos de vídeo.
Perguntas frequentes
Quanto custa a API do Seedance 2.0?
Em outubro de 2026, o Seedance 2.0 custa $0.08 por segundo em 480p, $0.15 em 720p, $0.40 em 1080p e $0.83 em 4K. Um clipe de 5 segundos em 720p custa $0.75. O som está incluído no mesmo preço.
O Seedance 2.0 gera áudio?
Sim. Defina audio como true e o modelo gera ambiência, efeitos e fala junto com a imagem na mesma passada. Defina como false para um clipe sem som; o preço é o mesmo nos dois casos.
Qual a duração máxima de um vídeo do Seedance 2.0?
De 4 a 15 segundos por requisição. Para peças mais longas, gere vários clipes e edite-os juntos, ou use o Seedance 2.5, que chega a 30 segundos.
Posso usar imagens de referência com o Seedance 2.0?
Sim, até 9 imagens como image_urls, para personagens, produtos ou estilo. Use quadros (image_url e end_image_url) ou referências em uma requisição, não os dois.
Como o Seedance 2.0 Fast e o Mini diferem do Seedance 2.0?
Têm as mesmas tarefas e opções, mas vão só até 720p. Em 720p, o Seedance 2.0 Fast custa $0.11 por segundo e o Seedance 2.0 Mini custa $0.05, contra $0.15 do Seedance 2.0.
O que acontece se uma geração do Seedance 2.0 falhar?
O roteador tenta a próxima rota automaticamente. Você é cobrado uma vez, pela rota que dá certo; se todas as rotas falharem, o job falha e não custa nada.
Chame o Seedance 2.0 com uma só chave
Crie uma chave, adicione crédito a partir de $10 e use a mesma chave para o Seedance 2.0 e para todos os outros modelos do catálogo.