API do Seedance 2.5: clipes de 30 segundos, preços e código
O Seedance 2.5 é o modelo Seedance mais novo do catálogo da Revana. Ele faz clipes de até 30 segundos a partir de texto, imagens ou vídeo. Este guia cobre como ele difere do Seedance 2.0, quanto custa e como chamá-lo.
O que o Seedance 2.5 acrescenta ao Seedance 2.0
O Seedance 2.5 aceita o mesmo formato de requisição da família 2.0 e cobre os mesmos tipos de job: texto para vídeo com som, quadros inicial e final e imagens de referência. As diferenças que importam quando você constrói sobre ele são práticas, e todas aparecem no catálogo:
| Seedance 2.0 | Seedance 2.5 | |
|---|---|---|
| Tarefas | texto para vídeo, imagem para vídeo, primeiro e último quadro e imagens de referência | texto para vídeo, imagem para vídeo, primeiro e último quadro, imagens de referência e vídeo para vídeo |
| Duração do clipe | 4 a 15 s | 4 a 30 s |
| Resolução | 480p, 720p, 1080p e 4K | 480p, 720p e 1080p |
| Imagens de referência | até 9 | até 30 |
| Proporção | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptativa | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptativa |
| Preço a partir de | $0.08 / s | $0.11 / s |
| Rotas | três rotas | cinco rotas |
Resumindo: o Seedance 2.5 chega a 30 segundos em um único clipe, contra 15 do Seedance 2.0, aceita 30 imagens de referência em vez de 9 e acrescenta vídeo para vídeo. O Seedance 2.0 continua sendo o indicado se você precisa de saída em 4K. Para clipes de 15 segundos ou menos, compare os preços por segundo antes de escolher: em 720p, o Seedance 2.0 lista $0.15 e o Seedance 2.5 lista $0.25.
Não publicamos notas de qualidade para nenhum dos dois modelos. A melhor forma de escolher é rodar nos dois os mesmos três ou quatro prompts do seu próprio produto e comparar.
Quando um clipe de 30 segundos ajuda
- Uma tomada contínua. Um passeio, uma demonstração de produto ou uma cena com diálogo que mostraria uma emenda visível se você juntasse dois clipes de 15 segundos.
- Comerciais completos. Muitos formatos de anúncio para redes sociais duram de 15 a 30 segundos. Uma geração pode cobrir o comercial inteiro, com o som pensado ao longo dele.
- Menos emendas em edições longas. Mesmo quando você monta clipes juntos, peças mais longas significam menos lugares em que um personagem ou a iluminação podem variar.
Se os seus clipes têm 15 segundos ou menos, confira antes se o Seedance 2.0 cobre o trabalho: você pode não precisar do limite maior.
Preços do Seedance 2.5 (outubro de 2026)
O Seedance 2.5 é cobrado por segundo de saída, a partir de $0.11 por segundo em 480p. A tabela mostra a tarifa listada e quanto custa um clipe de 10 segundos e um de 30 segundos em cada resolução. Para os mesmos preços em outras APIs, veja a comparação de preços do Seedance 2.5.
| Resolução | Por segundo | Clipe de 10 s | Clipe de 30 s | Com entrada de vídeo |
|---|---|---|---|---|
| 480p | $0.11 | $1.10 | $3.30 | $0.06 / s |
| 720p | $0.25 | $2.50 | $7.50 | $0.15 / s |
| 1080p | $0.55 | $5.50 | $16.50 | $0.34 / s |
O preço é o mesmo com o som ligado ou desligado. Os jobs que usam um vídeo como entrada são cobrados pela tarifa menor com entrada de vídeo, mas os segundos cobrados incluem a entrada: os segundos de saída mais a duração do clipe de entrada. Um clipe de 10 segundos em 720p feito a partir de um vídeo de origem de 10 segundos é cobrado como 20 segundos, $3.00, contra $2.50 por um clipe de 10 segundos a partir de um prompt de texto.
O preço de cada job é reservado do seu saldo quando você o envia e só é cobrado se o job der certo. Um job que falha libera a reserva, então um job de 30 segundos que falha não custa nada. O valor exato cobrado volta como cost_usd; os pacotes de créditos e a tabela completa estão na página de preços.
Gere um vídeo do Seedance 2.5
Envie POST /v1/generations com o id de modelo seedance-2.5. A resposta é um 202 com um id de geração; consulte-o até o status ser succeeded ou failed. Este clipe de 10 segundos em 720p com som custa $2.50.
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.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 3
}'
# 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.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 3,
})
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.5",
input: {
prompt: "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
resolution: "720p",
duration: 10,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 3,
}),
});
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);Jobs longos demoram mais para terminar que os curtos, então consulte a cada cinco a dez segundos em vez de sobrecarregar o endpoint. Um job concluído tem esta aparência:
{
"id": "gen_01JBX7Q2M4",
"model": "seedance-2.5",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 2.5,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}Um clipe vertical de 30 segundos com referências
Para um comercial vertical de duração completa, envie os materiais da marca como imagens de referência e descreva as tomadas em ordem. Em 1080p, este job custa $16.50; defina max_cost_usd acima disso para que ele não seja ignorado. A mesma requisição em 480p custa $3.30, uma forma mais barata de conferir a estrutura antes de se comprometer com a resolução total.
{
"model": "seedance-2.5",
"input": {
"prompt": "A 30 second vertical ad. Shot 1: the runner from the first image laces the shoe from the second image at dawn. Shot 2: tracking shot as she runs along the seafront. Shot 3: close-up of the shoe hitting wet sand. Shot 4: she stops, breathing hard, and looks out to sea. Steady electronic beat, waves, footsteps.",
"image_urls": [
"https://example.com/runner.jpg",
"https://example.com/shoe.jpg"
],
"resolution": "1080p",
"duration": 30,
"aspect_ratio": "9:16",
"audio": true
},
"max_cost_usd": 20
}Use quadros inicial e final (image_url, end_image_url) ou imagens de referência (image_urls) em uma requisição, não os dois: são modos separados, e uma requisição que os misture pode ser rejeitada com um 422 antes de qualquer cobrança.
Dicas de prompt para clipes longos
- Escreva uma lista de tomadas, não um parágrafo. Numere as tomadas e dê a cada uma um sujeito, uma ação e um movimento de câmera. Em 30 segundos, a estrutura importa mais que os adjetivos.
- Mantenha o elenco pequeno. Um ou dois personagens se mantêm consistentes com mais confiabilidade que uma multidão, principalmente ao longo de vários cortes.
- Apoie-se nas referências. Com até 30 imagens, você pode fixar o personagem de mais de um ângulo, o produto, o local e a paleta de cores. Refira-se a cada uma pela posição, como "o tênis da segunda imagem".
- Pense o som para o clipe inteiro. Diga o que corre por baixo de cada tomada (uma batida, a ambiência) e o que acontece em momentos específicos (uma porta batendo, uma fala).
- Faça rascunhos curtos e pequenos. Teste as primeiras tomadas como um clipe de 10 segundos em 480p e depois renderize os 30 segundos completos quando o visual estiver certo. Os resultados variam entre resoluções, então trate os rascunhos como uma referência, e não como uma prévia.
- Deixe o texto fora do quadro. Adicione legendas, preços e logotipos no seu editor.
Roteamento e fallback
O Seedance 2.5 tem atualmente cinco rotas na Revana. O roteador envia cada job primeiro para a rota mais barata e, se ela falhar ou estourar o tempo limite, passa-o para a próxima. As rotas de backup custam mais por segundo (a página do modelo lista cada uma), e só a rota que dá certo é cobrada. O campo attempts mostra quantas rotas um job usou.
O fallback melhora a chance de um resultado, mas não é uma garantia de disponibilidade. Para jobs longos em particular, trate failed no seu app, por exemplo tentando de novo mais tarde em uma resolução menor.
Veja todos os níveis do Seedance na página de modelos, a referência de requisições na documentação ou obtenha uma chave de API e rode o exemplo acima.
Perguntas frequentes
Quanto custa a API do Seedance 2.5?
Em outubro de 2026, o Seedance 2.5 custa $0.11 por segundo em 480p, $0.25 em 720p e $0.55 em 1080p. Um clipe de 10 segundos em 720p custa $2.50 e um clipe de 30 segundos em 1080p custa $16.50.
Qual é a diferença entre o Seedance 2.0 e o Seedance 2.5?
O Seedance 2.5 faz clipes de até 30 segundos (o 2.0 para em 15), aceita até 30 imagens de referência (o 2.0 aceita 9) e acrescenta vídeo para vídeo. O Seedance 2.0 oferece 4K; o Seedance 2.5 vai até 1080p.
Qual a duração máxima de um vídeo do Seedance 2.5?
Entre 4 e 30 segundos por requisição. Defina a duração com o campo duration.
O Seedance 2.5 suporta 4K?
Não no catálogo hoje: ele lista 480p, 720p e 1080p. Para saída em 4K, use o Seedance 2.0.
O Seedance 2.5 gera som?
Sim. Defina audio como true para som gerado junto com a imagem, ou false para um clipe sem som. O preço é o mesmo nos dois casos.
Sou cobrado se um job longo do Seedance 2.5 falhar?
Não. O valor fica reservado quando você envia e é liberado se o job falhar. O roteador tenta antes as outras rotas, e você paga apenas por um job que dá certo.
Experimente o Seedance 2.5 com uma só chave
Uma chave de API para o Seedance 2.5, o Seedance 2.0 e todos os outros modelos do catálogo. Crédito pré-pago a partir de $10, cobrado apenas pelos jobs que dão certo.