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

Como fazer um curta-metragem com Claude Opus 5.5 e Seedance 2.5

Use o Claude Opus 5.5 como diretor: ele escreve a decupagem e os prompts, o GPT Image 2.5 desenha o personagem e o Seedance 2.5 gera cada plano com som.

Ler em Markdown

Para fazer um curta-metragem com o Claude Opus 5.5 e o Seedance 2.5, deixe o Opus ser o diretor e deixe os outros dois modelos desenharem e filmarem. Você dá ao Opus uma ideia de história; ele escreve uma descrição fixa do personagem, um prompt para a folha de personagem e um prompt de vídeo por plano. O GPT Image 2.5 transforma esses prompts em uma folha de personagem e em quadros iniciais. O Seedance 2.5 gera cada plano, com diálogo e som, usando essas imagens como referência. Depois você junta os planos em um único arquivo. Os três modelos funcionam no SeedRouter com a mesma chave de API. Todas as requisições abaixo seguem as referências da API do SeedRouter, verificadas em 30 de setembro de 2026.

Como funciona o fluxo com Claude Opus 5.5 e Seedance 2.5?

A ideia vem de um fluxo que um criador compartilhou no r/Seedance_AI em setembro de 2026 (o post original): "Eu não escrevi um único prompt à mão. Dei ao Opus 5.5 um conceito central e algumas capturas de tela de referência do estilo que eu queria." O Opus escreveu os prompts da folha de personagem, dos quadros iniciais, dos movimentos de câmera, do ritmo dos diálogos e do som; o GPT Image 2.5 desenhou a folha de personagem e o quadro inicial; o Seedance 2.5 gerou os planos.

Cada modelo faz um só trabalho:

EtapaModeloEntradaSaída
1. PlanejarClaude Opus 5.5Ideia de história, imagens de estilo opcionaisDescrição do personagem, prompt da folha, um prompt de quadro inicial e um de vídeo por plano
2. DesenharGPT Image 2.5Prompt da folha, depois prompts dos quadros com a folha como referênciaFolha de personagem e quadros iniciais, como URLs de imagem
3. FilmarSeedance 2.5Prompt de vídeo, mais a folha e o quadro inicial como imagens de referênciaUm vídeo com som por plano
4. Editarffmpeg ou qualquer editorOs arquivos dos planosO filme pronto

As etapas se conectam por URLs. O GPT Image 2.5 devolve imagens hospedadas no armazenamento do SeedRouter, e o Seedance 2.5 aceita imagens de referência como URLs públicas, então a saída da etapa 2 vai direto para a etapa 3, sem baixar nem enviar nada.

Do que você precisa antes de começar?

  • Uma chave de API do SeedRouter no seu ambiente:
export SEEDROUTER_API_KEY="your-key"
  • Python 3 com requests e o SDK da Anthropic: pip install requests anthropic.
  • ffmpeg para juntar os planos no final.
  • Créditos. Cada chamada é uma requisição paga. Tarefas que falham não são cobradas, e contas novas começam com um pequeno saldo grátis.

Todos os trechos em Python abaixo compartilham estas duas linhas:

import os
import requests

HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

Etapa 1: como fazer o Claude Opus 5.5 planejar os planos?

Dê ao Opus um prompt de sistema que explique como o Seedance 2.5 lê um prompt e peça o plano em JSON para o seu script poder usá-lo. As regras deste prompt de sistema vêm dos guias oficiais de prompts do Seedance da ByteDance, resumidos no guia de prompts do Seedance 2.5: sujeito e ação primeiro, um movimento de câmera por plano, intervalos de tempo para planos longos e arquivos de referência citados pelo número.

import json
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai",
)

DIRECTOR = """You are the director of a short film made with AI models.
Return only JSON, no other text, in this shape:
{"character": "...", "sheet_prompt": "...",
 "shots": [{"duration": 5, "frame_prompt": "...", "video_prompt": "..."}]}

character: one fixed paragraph describing the main character's face, hair,
build and clothes. Repeat it word for word inside every other prompt.

sheet_prompt: an image prompt for one character reference sheet: a front,
three-quarter, profile and back view, plus four facial expressions, on a plain
light background, with no text other than small panel labels.

shots: 3 to 5 shots, each 4 to 15 seconds.
frame_prompt: an image prompt for the first frame of the shot.
video_prompt: a video prompt for Seedance 2.5. Write it in this order: subject
and action, scene, visual style, camera, audio. Image 1 is the character sheet
and Image 2 is the start frame of the shot; refer to them by those names.
Use one camera move per shot. Say who is holding the camera and how they move.
For shots longer than 5 seconds, split the action into time ranges such as
0-3s. Put dialogue in quotes as: Character's line (emotion): content.
Describe the ambient sound. Do not ask for subtitles or on-screen text.

The character must not look like a real, identifiable person. Use a stylized
look, such as a 3D animated or illustrated character."""

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=16000,
    system=DIRECTOR,
    messages=[{
        "role": "user",
        "content": "A lighthouse keeper finds a lost robot on the rocks during a storm and teaches it to wave at passing ships.",
    }],
)
text = "".join(block.text for block in message.content if block.type == "text")
plan = json.loads(text)

Alguns detalhes importam:

  • max_tokens inclui o raciocínio. O Opus 5.5 sempre usa raciocínio adaptativo, e a referência da API do Opus 5.5 conta os tokens de raciocínio dentro de max_tokens. Deixe margem, ou o JSON pode ser cortado.
  • Não envie temperature, top_p nem top_k, e não preencha antecipadamente um turno do assistente. O Opus 5.5 retorna erro 400 para valores de amostragem diferentes do padrão e para uma resposta pré-preenchida. Para ajustar o quanto ele raciocina, use output_config.effort.
  • "Quem está segurando a câmera" é a dica do post original. O autor conta que, ao dizer ao Opus "meu amigo está filmando do banco de trás", ele mesmo escreveu microtremores de câmera, reenquadramento atrasado e autofoco procurando, e que "esse único detalhe de contexto é o que tira o 'visual de IA'".
  • Referências de estilo são opcionais. O Opus lê imagens, então você pode adicionar capturas de tela do visual desejado como blocos image com fonte URL no turno do usuário.

Se json.loads falhar, imprima text e peça de novo ao Opus. Ler o plano antes de gerar qualquer coisa também é o momento mais barato para corrigir a história: uma mudança aqui custa uma requisição de texto, e uma mudança depois da renderização custa vídeo.

Etapa 2: como criar a folha de personagem e os quadros iniciais com o GPT Image 2.5?

Envie primeiro plan["sheet_prompt"] ao GPT Image 2.5. Depois envie o frame_prompt de cada plano com a folha como imagem de referência, para que todos os quadros iniciais mostrem o mesmo personagem. As tarefas de imagem são enviadas para /v1/images/generations e lidas em /v1/tasks/{id}:

import time

def image(prompt, size, refs=()):
    body = {"model": "gpt-image-2.5-flare", "prompt": prompt, "size": size, "quality": "high"}
    if refs:
        body["images"] = [{"image_url": url} for url in refs]
    task_id = requests.post(
        "https://api.seedrouter.ai/v1/images/generations",
        headers=HEADERS, json=body, timeout=60,
    ).json()["id"]
    while True:
        task = requests.get(
            f"https://api.seedrouter.ai/v1/tasks/{task_id}", headers=HEADERS, timeout=30,
        ).json()
        if task["status"] == "completed":
            return task["output"]["data"][0]["url"]
        if task["status"] == "failed":
            raise RuntimeError(task["error"]["message"])
        time.sleep(3)

sheet = image(plan["sheet_prompt"], "1536x1024")
frames = [image(shot["frame_prompt"], "1792x1008", [sheet]) for shot in plan["shots"]]

Por que essas configurações:

  • 1792x1008 é 16:9. O GPT Image 2.5 recebe size como WIDTHxHEIGHT, com os dois lados múltiplos de 16, então um quadro 16:9 precisa ser escrito em pixels; 16:9 não é um size válido. Combine com o ratio que você vai pedir ao Seedance.
  • O Flare basta para a maioria das folhas. O Sunburst dá controle mais preciso entre edições e é mais lento; GPT Image 2.5 Flare vs Sunburst explica quando vale a pena.
  • Faça rascunhos com uma quality menor. Enquanto você ainda está mudando o personagem, low ou medium geram mais rápido. Troque para high nas imagens que você vai filmar.

Para ficarem curtas, as funções acima consultam a tarefa sem prazo. No seu código, adicione um limite de tempo e guarde o ID da tarefa, para que uma execução interrompida possa consultar a mesma tarefa de novo em vez de pagar por uma nova.

Etapa 3: como gerar cada plano com o Seedance 2.5?

Envie cada video_prompt ao Seedance 2.5 com duas imagens de referência: a folha de personagem como Image 1 e o quadro inicial do plano como Image 2, nessa ordem, porque o Seedance numera os arquivos de referência na ordem em que você os anexa. As tarefas de vídeo usam um endpoint próprio, /v1/contents/generations/tasks, e terminam com status: "succeeded":

def shot(prompt, refs, duration):
    content = [{"type": "text", "text": prompt}]
    for url in refs:
        content.append({"type": "image_url", "image_url": {"url": url}, "role": "reference_image"})
    task_id = requests.post(
        "https://api.seedrouter.ai/v1/contents/generations/tasks",
        headers=HEADERS,
        json={
            "model": "dreamina-seedance-2-5",
            "content": content,
            "resolution": "480p",
            "ratio": "16:9",
            "duration": duration,
            "generate_audio": True,
        },
        timeout=60,
    ).json()["id"]
    while True:
        task = requests.get(
            f"https://api.seedrouter.ai/v1/contents/generations/tasks/{task_id}",
            headers=HEADERS, timeout=30,
        ).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task["error"]["message"])
        time.sleep(15)

videos = [shot(s["video_prompt"], [sheet, frame], s["duration"]) for s, frame in zip(plan["shots"], frames)]

As escolhas da requisição:

  • Imagens de referência, não um primeiro quadro. O Seedance 2.5 também pode fixar um plano em um primeiro quadro exato (role: "first_frame"), mas a referência da API do Seedance 2.5 diz que os modos de primeiro quadro "não podem ser combinados com itens de referência", e você perderia a folha de personagem. Com as duas imagens como reference_image, é o prompt que diz ao Seedance que a Image 2 é o quadro inicial. O começo segue essa imagem de perto, mas não pixel por pixel.
  • 480p para rascunhos. Gere primeiro todos os planos em 480p, corrija os prompts que não funcionaram e depois gere os definitivos em 720p ou 1080p com o mesmo prompt.
  • generate_audio: true produz diálogo, som ambiente e efeitos a partir do prompt, gerados junto com a imagem.
  • Um ratio fixo. Se todos os planos tiverem a mesma proporção e resolução, o ffmpeg consegue juntá-los sem recodificar.

Um plano pode ter de 4 a 30 segundos, e uma única tarefa pode conter vários cortes se o prompt der um intervalo de tempo a cada um. A segunda cena do criador, por exemplo, colocou seis planos cortados nas batidas da bateria em 10 segundos.

Como manter o mesmo personagem em todos os planos?

A consistência vem da repetição, no prompt e nas referências:

  • Repita a mesma descrição. O parágrafo character da etapa 1 entra palavra por palavra em todo prompt de imagem e de vídeo. Descrever a mesma pessoa de dois jeitos diferentes é um dos motivos pelos quais o modelo deforma ou duplica um personagem.
  • Envie a mesma folha em todos os planos. A folha é sempre a Image 1. O Seedance 2.5 aceita folhas com várias vistas; o antigo Seedance 2.0 pode ler uma folha com vários ângulos como várias pessoas, e o guia de prompts recomenda para ele um close do rosto e uma imagem de corpo inteiro por personagem.
  • Chame o personagem sempre do mesmo jeito, por exemplo "o faroleiro da Image 1", e não dependa de um nome escrito dentro da imagem.
  • Mantenha uma só voz em todos os planos. O Seedance 2.5 aceita até 10 referências de áudio (WAV ou MP3, de 2 a 30 segundos). Anexe o mesmo clipe de voz a cada plano e vincule-o no texto, como no exemplo da ByteDance: "A Image 1 mostra o protagonista John e usa o timbre de voz do Audio 1."

Para dois planos que precisam se juntar sem um salto visível, há uma segunda opção: defina "return_last_frame": true no primeiro plano e envie o content.last_frame_url devolvido como first_frame do seguinte. Isso trava a transição, mas o plano seguinte não pode usar a folha de personagem, então use isso para ação contínua dentro de uma cena, não em todo corte.

Dá para usar a foto de uma pessoa real como personagem?

Não. O Seedance 2.5 não aceita imagens ou vídeos de referência com rostos humanos reais, e uma tarefa com eles falha sem ser cobrada. O erro de pessoa real do Seedance explica a regra da ByteDance e as opções que ela oferece na própria plataforma.

Isso também afeta personagens de IA realistas. O post original filmou uma mulher fotorrealista, mas a documentação da ByteDance não diz como a verificação de rostos trata rostos realistas desenhados por outro modelo. Um personagem estilizado, como o visual de animação 3D ou ilustração que o prompt de sistema acima pede, deixa o fluxo livre dessa dúvida. Se você quer um visual fotorrealista, teste primeiro um plano curto em 480p antes de planejar um filme inteiro em torno dele.

Como juntar os planos em um único filme?

Baixe os vídeos em ordem, liste-os em um arquivo de texto e junte-os com o ffmpeg:

names = []
for index, url in enumerate(videos):
    name = f"shot-{index + 1}.mp4"
    with open(name, "wb") as file:
        file.write(requests.get(url, timeout=300).content)
    names.append(name)
with open("shots.txt", "w") as file:
    file.writelines(f"file '{name}'\n" for name in names)
ffmpeg -f concat -safe 0 -i shots.txt -c copy film.mp4

-c copy junta os arquivos sem recodificar, o que funciona porque todos os planos têm a mesma resolução, proporção e formato. Se você misturou configurações, tire o -c copy e deixe o ffmpeg recodificar. As URLs dos vídeos ficam hospedadas no armazenamento do SeedRouter, então baixe os arquivos que quiser guardar.

Quanto custa um curta-metragem com o Seedance 2.5?

Cada modelo cobra na própria unidade, e os preços atuais estão na página de cada modelo:

  • Claude Opus 5.5 cobra tokens de entrada e de saída, raciocínio incluído. Planejar um filme leva uma ou poucas requisições. Preços.
  • GPT Image 2.5 Flare e Sunburst cobram um preço fixo por imagem entregue. Uma folha mais um quadro inicial por plano dá de quatro a seis imagens em um curta. Preços.
  • Seedance 2.5 cobra tokens de vídeo: segundos gerados × largura × altura × 24 ÷ 1024. Um segundo de vídeo 16:9 são 9.607,5 tokens em 480p, 21.600 em 720p e 48.600 em 1080p, e o 1080p tem uma tarifa própria. Preços.

A maior parte do custo é o vídeo. Um rascunho em 480p usa menos da metade dos tokens do 720p, então corrigir os prompts em 480p e gerar só a versão final em resolução maior é a maior economia. Os preços da API do Seedance trazem mais exemplos.

Perguntas frequentes

O Claude Opus 5.5 consegue criar o vídeo sozinho?

Não. O Opus 5.5 é um modelo de texto: ele lê imagens, mas não gera imagens nem vídeo. Neste fluxo ele escreve os prompts, e o GPT Image 2.5 e o Seedance 2.5 produzem as imagens e as cenas filmadas.

Posso usar o Claude Fable 5.1 no lugar do Opus 5.5?

Sim. O Fable 5.1 aceita a mesma requisição Messages, então troque model por claude-fable-5-1. Claude Fable 5.1 vs Fable 5 vs Opus 5.5 compara os três.

Qual pode ser a duração de um curta-metragem com o Seedance 2.5?

Uma tarefa do Seedance 2.5 gera de 4 a 30 segundos, ou deixa o modelo escolher a duração com duration: -1. Um filme mais longo é feito de vários planos unidos, então a duração total não tem limite fixo.

Por que o personagem muda entre os planos?

Normalmente porque os prompts o descrevem de formas diferentes, a folha está faltando em alguns planos, ou os arquivos de referência foram anexados em uma ordem diferente da numeração do prompt. Confira se cada prompt de vídeo tem o mesmo parágrafo do personagem e se a folha é sempre a primeira imagem.

Posso usar o Seedance 2.0 neste fluxo?

Sim, com a mesma estrutura de requisição e o ID de modelo dele. Para o personagem, dê ao Seedance 2.0 imagens separadas do rosto e do corpo inteiro em vez de uma folha com várias vistas. Seedance 2.5 vs 2.0 lista as outras diferenças.

Faça seu primeiro curta-metragem

Comece com uma história de três planos em 480p, confira os planos e depois gere a versão final em resolução maior. A página do Seedance 2.5 mostra os preços atuais e um Playground para testar um plano, e a referência completa das requisições está na documentação da API do Seedance 2.5, na documentação da API do GPT Image 2.5 e na documentação da API do Claude Opus 5.5.

Guias relacionados