Claude Opus 5.5 já está disponível no SeedRouter

Video

Seedance 2.5

View Markdown

Gere, edite e estenda vídeo com o Seedance 2.5 pela API de tarefas oficial do ModelArk: até 30 segundos em 1080p, com até 30 referências de imagem, 10 de vídeo e 10 de áudio.

O Seedance 2.5 é o modelo de geração de vídeo mais recente da ByteDance (Dreamina Seedance 2.5). Envie o corpo de tarefa oficial do ModelArk para POST /v1/videos/generations, guarde o identificador de tarefa retornado e leia o vídeo pronto em GET /v1/tasks/{id}. Imagens, vídeos e áudio vão em content como URLs.

IDs de modelo

ID de modeloResoluçõesDuração
dreamina-seedance-2-5480p, 720p, 1080pDe 4 a 30 segundos, ou automática

Veja os preços atuais na página do modelo.

Exemplo rápido

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "content": [{"type": "text", "text": "A red paper boat drifts across a calm pond at sunrise, slow dolly-in"}],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true
  }'

Endpoint

POST https://api.seedrouter.ai/v1/videos/generations
CabeçalhoValor
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

O corpo é a requisição oficial "criar uma tarefa de geração de vídeo" do ModelArk; este é o mesmo endpoint que todos os modelos de vídeo do SeedRouter usam. A resposta é a nova tarefa (id, status: "processing"), não o vídeo pronto. Mantenha as chaves de API em código do servidor.

Parâmetros

NomeTipoObrigatórioPadrãoObservações
modelstringSim—dreamina-seedance-2-5.
contentobject[]Sim—O prompt e as mídias; veja abaixo.
draftbooleanNãofalsetrue cria um rascunho em 480p.
resolutionenumNão480p, 720p, 1080p. O padrão é 720p na geração normal e 480p em rascunhos. Para gerar o vídeo final a partir de um rascunho, é obrigatório informar 1080p explicitamente.480p, 720p, 1080p.
ratioenumNãoadaptive16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. Precisa ser adaptive (ou omitido) com um primeiro quadro e para edit e extend.
durationintegerNão-1De 4 a 30 segundos, ou -1 para deixar o modelo escolher. Precisa ser -1 para edit.
generate_audiobooleanNãotrueGera som junto com o vídeo.
watermarkbooleanNãofalseAdiciona uma marca d'água.
return_last_framebooleanNãofalseTambém retorna o quadro final como URL de imagem.
output_formatenumNãomp4mp4 ou mov.
omni_reference_task_typeenumNãoautoauto, reference, edit, extend. edit e extend exigem um vídeo de referência.
execution_expires_afterintegerNão172800De 3600 a 259200 segundos. Uma tarefa ainda não concluída após esse prazo falha com task_expired e não é cobrada.
priorityintegerNão0De 0 a 9.
safety_identifierstringNão—De 1 a 64 caracteres que identificam o seu usuário final. Um hash serve.
service_tierenumNãodefaultApenas default.
content_filterbooleanNãotrueExtensão do SeedRouter. false desativa a filtragem de conteúdo nesta requisição.

Itens de content

ItemFormatoPapelLimite
Texto{"type": "text", "text": "..."}—Um.
Imagem{"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."}first_frame, last_frame, reference_imageAté 30 imagens de referência.
Vídeo{"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"}reference_videoAté 10.
Áudio{"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"}reference_audioAté 10.

Campos desconhecidos são recusados. Não são suportados: seed, callback_url (consulte a tarefa em vez disso), tools, e frames e camera_fixed, exclusivos da versão 1.x. Não é possível cancelar nem excluir tarefas.

Modos

O modo decorre dos itens de content; não há parâmetro de modo.

Modocontent
Texto para vídeoum item de texto
Primeiro quadrotexto (opcional) + uma imagem com o papel first_frame, ou uma imagem sem papel
Primeiro e último quadrotexto (opcional) + uma imagem first_frame + uma imagem last_frame
Referência multimodaltexto + qualquer combinação de itens reference_image, reference_video e reference_audio
Editar um vídeotexto + um reference_video, com omni_reference_task_type: "edit"
Estender um vídeotexto + um reference_video, com omni_reference_task_type: "extend"

Os modos com primeiro quadro não podem ser combinados com itens de referência. Com várias imagens ou qualquer outra mídia, toda imagem precisa de um role.

Exemplo com referências

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "content": [
      {"type": "text", "text": "The character from the image walks through the market in the video, same camera move"},
      {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"},
      {"type": "video_url", "video_url": {"url": "https://example.com/market.mp4"}, "role": "reference_video"}
    ],
    "ratio": "adaptive",
    "duration": 8
  }'

Substitua as URLs de exemplo por arquivos seus acessíveis.

Entradas de mídia

Esta API aceita apenas referências por URL. Base64, URLs data:, IDs asset:// e envios multipart não são aceitos. O Playground envia os arquivos selecionados para o armazenamento antes de submeter as URLs deles.

As mídias precisam ser URLs HTTP(S) públicas e atender aos limites oficiais do modelo:

MídiaFormatosLimites
ImagemJPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIFMenos de 30 MB; largura e altura de 300 a 6000 px; proporção (largura / altura) de 0,4 a 2,5; de 1 a 30 imagens de referência
VídeoMP4, MOV (H.264 ou H.265)De 2 a 30 segundos cada (de 4 a 30 segundos para edit), até 10, no máximo 30 segundos no total; no máximo 200 MB; de 24 a 60 FPS; largura e altura de 300 a 6000 px; proporção de 0,4 a 2,5; de 407.696 a 8.295.044 pixels (largura × altura)
ÁudioWAV, MP3De 2 a 30 segundos cada, até 10, no máximo 30 segundos no total; no máximo 15 MB

O modelo não suporta imagens e vídeos de referência que contenham rostos humanos reais.

As mídias são verificadas quando a tarefa começa, antes de qualquer geração. Uma tarefa cuja mídia viole um desses limites termina como failed com invalid_request_error e uma mensagem que indica a regra, por exemplo The request was rejected: content reference videos must total at most 15 seconds., e não é cobrada. Um arquivo que não possa ser lido nesse momento é repassado ao modelo, que o aceita ou recusa; em qualquer dos casos, uma tarefa que falha não é cobrada.

Fatores de custo

Consulte a seção de preços do modelo para as tarifas atuais. O Seedance 2.5 cobra por tokens de vídeo, a unidade oficial:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

A tarifa por milhão de tokens depende da resolução de saída e de a requisição incluir ou não um vídeo de referência; uma requisição com vídeo de referência usa uma tarifa mais baixa para todos os seus tokens. Entradas de texto, imagem e áudio não são cobradas. Em 16:9, um segundo equivale a 9.607,5 tokens em 480p (854×480), 21.600 em 720p e 48.600 em 1080p.

Solicitações com vídeos de referência também têm um limite mínimo de tokens. Para estimar o custo, use pelo menos ceil(output seconds × 2 / 3) segundos de referência na fórmula, mesmo que os vídeos de referência originais sejam mais curtos. Isso vale tanto para tarefas de rascunho quanto de vídeo final; o clipe do rascunho em si não passa a ser um vídeo de referência. A cobrança efetiva segue o uso informado pela tarefa concluída.

A cobrança segue os tokens que o vídeo pronto informa (output.usage.completion_tokens), então duration: -1 é cobrado pela duração efetivamente gerada. Os clipes renderizados ficam um pouco mais longos que a duração pedida: uma requisição de 5 segundos em 720p e 16:9 renderiza 121 quadros e informa 108.900 tokens em vez de 108.000. Consulte as cobranças finais no histórico de uso da sua conta. Tarefas que falham não são cobradas.

Esquema de saída

O envio retorna a nova tarefa:

{"id": "task_...", "model": "dreamina-seedance-2-5", "status": "processing", "created_at": 1790321515}

Consultar a tarefa

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Consulte a cada 10–20 segundos até que status seja completed ou failed. Um tempo limite de rede durante a consulta não significa que a geração falhou: guarde o identificador da tarefa e retome a verificação. Não crie outra tarefa para acompanhar o progresso.

Exemplo completo de consulta

Execute isto após o exemplo de envio em Python acima.

import time

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        print(task["output"]["video_url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(15)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

Tarefa concluída

{
  "id": "task_...",
  "model": "dreamina-seedance-2-5",
  "status": "completed",
  "created_at": 1790321515,
  "finished_at": 1790321652,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
    "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg",
    "content": {
      "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
      "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg"
    },
    "usage": {"completion_tokens": 108900, "total_tokens": 108900},
    "seed": 42,
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "framespersecond": 24,
    "generate_audio": true,
    "draft": false,
    "output_format": "mp4",
    "service_tier": "default",
    "execution_expires_after": 172800,
    "priority": 0
  }
}
CampoSignificado
idGuarde este identificador para consultas posteriores.
statusprocessing, completed ou failed.
output.video_urlO vídeo gerado.
output.last_frame_urlO quadro final, quando return_last_frame é true.
output.contentAs mesmas URLs no formato oficial do ModelArk.
output.usage.completion_tokensTokens de vídeo do vídeo pronto; a quantidade cobrada.
output.duration, output.resolution, output.ratio, output.framespersecond, output.seedO que foi efetivamente renderizado; seed é o valor escolhido pelo modelo.
created_at, finished_atMarcas de tempo Unix em segundos.
error{"code", "message"} em uma tarefa que falhou.

As URLs de vídeo ficam hospedadas no nosso armazenamento. Salve o arquivo no seu próprio armazenamento quando precisar de uma cópia duradoura.

Erros

Requisições recusadas antes de a tarefa ser criada retornam um erro HTTP com um objeto error e não são cobradas. Uma tarefa que falha após ser aceita retorna HTTP 200 na consulta, com status: "failed" e um objeto error. Uma saída retida pela filtragem de conteúdo falha com content_policy_violation; uma tarefa que ultrapassa execution_expires_after falha com task_expired.

Veja o catálogo de erros comum para códigos, status HTTP e orientações de nova tentativa.

{
  "id": "task_...",
  "model": "dreamina-seedance-2-5",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

Se o próprio envio atingir o tempo limite, verifique seu histórico de tarefas antes de enviar de novo: a primeira requisição pode já ter sido aceita.

Dicas

  • Descreva o tema, a ação, o movimento de câmera e a iluminação em frases completas.
  • Faça o rascunho em 480p com uma duration curta e depois renderize a versão escolhida em uma resolução mais alta.
  • Encadeie cenas com return_last_frame: use o quadro retornado como first_frame da próxima tarefa.
  • Para editar um vídeo, defina omni_reference_task_type como edit e descreva apenas o que deve mudar.

Relacionados

Prévia em rascunho e vídeo final

Defina draft: true para gerar uma prévia em 480p. Outras resoluções não são válidas no modo rascunho. O cálculo do uso de tokens e o preço unitário são os mesmos da geração padrão em 480p.

{
  "model": "dreamina-seedance-2-5",
  "content": [{ "type": "text", "text": "A fox walks through a sunny garden." }],
  "draft": true,
  "resolution": "480p",
  "duration": 4,
  "ratio": "16:9"
}

Consulte o ID de tarefa SeedRouter retornado até que status seja completed e output.draft seja true. Em até 7 dias após a criação do rascunho, envie uma solicitação separada usando esse ID:

{
  "model": "dreamina-seedance-2-5",
  "content": [{ "type": "draft_task", "draft_task": { "id": "task_YOUR_DRAFT_ID" } }],
  "resolution": "1080p"
}

O rascunho deve pertencer à sua conta, ter sido concluído e usar o mesmo modelo. content deve conter apenas um item draft_task. Defina resolution explicitamente como 1080p; omita draft ou defina-o como false. Não envie novamente duration, ratio, seed, generate_audio, omni_reference_task_type, texto ou mídia, mesmo com os mesmos valores. Essas configurações são herdadas do rascunho.

Você pode definir watermark, return_last_frame, output_format, execution_expires_after, priority, safety_identifier e service_tier: "default" para a nova tarefa. As opções de saída omitidas usam os respectivos valores padrão. content_filter é herdado e não pode ser alterado. Um vídeo final gerado com sucesso retorna um novo ID de tarefa, output.draft: false e output.draft_task_id contendo o ID do seu rascunho SeedRouter original. O mesmo rascunho pode ser usado para várias gerações finais separadas antes de expirar.

O rascunho e o vídeo final são cobrados de forma independente. O vídeo final usa a tarifa de 1080p correspondente à categoria de entrada do rascunho original: se o rascunho usou um vídeo de referência, o vídeo final também usa a tarifa com vídeo de referência e inclui a duração do vídeo de referência original no uso de tokens. O clipe do rascunho em si não é contabilizado como outro vídeo de entrada. Cada tarefa usa o preço em vigor no momento do envio. Solicitações que falham não são cobradas.