Pular para o conteúdo principal

Como deixar um loop de vídeo com IA natural

Planeje movimentos repetíveis e conecte o fim ao início. Corrija emendas de imagem e som em loops de personagens sem reversão evidente.

Autor
Lydia
Publicado
Leitura
10 min de leitura
Atualizado
Uma mulher adulta de vestido vinho está em pé em uma varanda ao anoitecer.

Um loop natural de vídeo com IA precisa que o fim continue no início: posição, direção do movimento, iluminação e som. Igualar duas poses não basta. Comece com um pequeno gesto que volte sozinho, gere um plano curto e escolha a emenda em um editor. Se a ação não puder voltar naturalmente, gere o retorno como um segundo clipe, faça uma transição na emenda ou aceite um efeito deliberado de reprodução para frente e para trás.

Seedance 2.5 image-to-video é um bom ponto de partida: planos de 4 a 30 segundos, 480p, 720p ou 1080p e um quadro final opcional. Não tem botão de loop, então a emenda fica por sua conta.

Gere um gesto que possa voltar

Prepare uma referência 16:9 de uma mulher adulta fictícia com um vestido vinho que cubra completamente o corpo, junto ao parapeito de uma varanda. Mostre os dois ombros, deixe espaço ao redor do cabelo e mantenha a cidade imóvel ao fundo. Use uma pose inicial relaxada. Evite ações que mudem o estado da cena: esvaziar uma xícara, tirar uma peça de roupa, alguém entrando no quadro.

Copie este prompt de movimento:

One continuous six-second medium portrait of this fictional adult woman on the balcony. She slowly turns her gaze from the city toward the viewer, holds a soft smile briefly, then returns her head and eyes to the opening position. Her hands stay where they are. The camera stays at the same position and scale. Stable dusk illumination, a still background, very slight hair movement. No cut, no zoom, no new objects, no dialogue.

Experimente no Playground

  1. Abra Seedance 2.5 image to video com este prompt preenchido. Permaneça na aba Playground, na visualização Form; entre com uma conta com saldo para executar.
  2. Adicione a referência da varanda em Input image e o mesmo arquivo em Closing frame.
  3. Defina Duration em 6, Resolution em 480p para a primeira prévia (720p para a versão que vai manter), deixe Aspect ratio em Auto, desligue Generate audio e, em Advanced parameters, ligue Return last frame.
  4. Confira a estimativa de preço, execute e avalie a emenda como descrito abaixo.

Os mesmos controles com seus nomes de campo:

ControleValor inicialMotivo
image_urlSua referência aprovadaTorna-se o primeiro quadro
last_image_urlA mesma referênciaPede uma imagem final parecida; não garante movimento compatível
duration_seconds6Tempo para virar e voltar
resolution720p$0,2773 por segundo
aspect_ratioadaptiveO único valor aceito; recorte a entrada antes
generate_audiofalseO áudio vem ligado por padrão; adicione ambiente separadamente
return_last_frametrueFornece o último quadro para o método de dois clipes abaixo

Seis segundos em 720p custam $1,6638. Faça uma prévia em 480p, 6 s ($0,7404), para conferir o movimento antes da execução em 720p. Planos mais longos apresentam mais deriva; mantenha a unidade do loop curta e repita-a em vez de gerar 30 segundos.

Execute pelo código

bash
cat > input.json <<'J'
{
  "prompt": "One continuous six-second medium portrait of this fictional adult woman on the balcony. She slowly turns her gaze from the city toward the viewer, holds a soft smile briefly, then returns her head and eyes to the opening position. Her hands stay where they are. The camera stays at the same position and scale. Stable dusk illumination, a still background, very slight hair movement. No cut, no zoom, no new objects, no dialogue.",
  "image_url": "<your reference image URL>",
  "last_image_url": "<the same reference image URL>",
  "duration_seconds": 6,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": false,
  "return_last_frame": true
}
J
spicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait

Configuração, envio de arquivos locais e resultados estão na documentação da CLI.

Ou deixe um Agent executar. Entregue ao assistente a CLI acima, o servidor MCP (ele chama spicyapi_task_create) ou o Skill (npx skills add spicyapi-ai/spicy-skill). CLI e MCP mostram o preço e pedem confirmação antes de uma execução paga.

Três quadros ilustrativos mostram uma mulher adulta sentada em uma varanda olhando para a cidade, virando para o espectador e voltando à pose inicial.

Ilustração, não um quadro Seedance: uma proposta de movimento de virar e voltar.

Se ela vira e não volta, simplifique a ação para uma pequena inclinação de cabeça em vez de adicionar instruções. Se a imagem inteira avança para o espectador, remova a linguagem cinematográfica de câmera e use uma referência com pontos fixos claros, como os cantos do parapeito. Imagens inicial e final idênticas só incentivam a mesma composição; cabelo, mangas e mãos ainda podem terminar em outro lugar.

Quando um clipe não volta: gere o retorno

Usar imagens inicial e final idênticas é a recomendação comum, mas o meio do plano ainda pode se desviar. Um caminho mais controlável é usar dois clipes:

  1. Gere o clipe A a partir da referência com return_last_frame ligado.
  2. Use o último quadro retornado por A como image_url e a referência original como last_image_url para gerar o clipe B, descrevendo o retorno, por exemplo: "Continuing from this frame, she turns her head and eyes back to the opening position, then holds still. Same camera, same lighting, no cut."
  3. Junte A e B. O último quadro de A é o primeiro de B, então remova o primeiro quadro de B:
bash
ffmpeg -i A.mp4 -i B.mp4 -filter_complex "[1:v]trim=start_frame=1,setpts=PTS-STARTPTS[b];[0:v][b]concat=n=2:v=1:a=0" -an AB.mp4

Você paga por dois clipes (2 x $1,6638 = $3,3276 em 6 s, 720p) e precisa conferir as duas emendas (de A para B e do fim de B para o início de A, como descrito abaixo), mas os dois clipes ficam ancorados à referência original no ponto do loop.

Encontre a emenda olhando o movimento, não só as poses

Coloque duas cópias do candidato em sequência no editor e veja a fronteira em velocidade normal. Depois avance quadro a quadro por cerca de cinco quadros de cada lado, acompanhando um ponto como a parte externa do ombro. Ele continua se movendo em uma direção compatível?

Duas posições idênticas do ombro ainda causam um tranco se a primeira cópia termina indo para a esquerda e a segunda começa para a direita em velocidade máxima. Para um gesto de retorno, escolha a emenda perto do ponto de virada relaxado, onde o movimento desacelera. Para movimento contínuo, como um objeto girando, combine tanto a posição quanto a direção.

Use um canto do fundo para distinguir movimento de câmera de um gesto. Se o parapeito e o rosto mudam de escala, aparar a duração não remove esse avanço da câmera. Se só as pálpebras mudam na emenda, afaste o corte da piscada. Se o vestido muda de decote, escolha um trecho intacto ou gere de novo; uma dissolvência mistura dois figurinos diferentes.

Poses iguais do ombro são acompanhadas de setas de movimento opostas e compatíveis na emenda de um loop.

Ilustração, não um quadro Seedance: poses semelhantes podem esconder movimentos incompatíveis.

Exporte só o intervalo escolhido. Este exemplo mantém os segundos 1 a 5; substitua pelos seus limites:

bash
ffmpeg -i input.mp4 \
  -vf "trim=start=1:end=5,setpts=PTS-STARTPTS" \
  -an -c:v libx264 -crf 18 -pix_fmt yuv420p loop.mp4
ffmpeg -stream_loop 2 -i loop.mp4 -c copy review-three-cycles.mp4

O segundo comando só cria um arquivo de revisão de três ciclos. -an remove o áudio; adicione som depois de aprovar a imagem. O controle Repeat ou Loop de um player só reinicia a reprodução e não esconde uma emenda visível, então use loop.mp4 como unidade de repetição.

Faça a transição na emenda quando restar uma pequena diferença

Uma transição cruzada curta pode suavizar uma pequena diferença de brilho ou pose. Ela não recupera um objeto que desapareceu nem impede a dupla exposição do rosto. O comando abaixo mistura os últimos 0,5 segundos de um clipe de 6 segundos a 24 fps com os primeiros 0,5 segundos, para que o último quadro do loop leve diretamente ao primeiro. O resultado tem 5,5 segundos:

bash
ffmpeg -i input.mp4 -filter_complex \
"[0:v]split=3[a][b][c];\
[a]trim=start=5.5:end=6,setpts=PTS-STARTPTS[tail];\
[b]trim=start=0:end=0.5,setpts=PTS-STARTPTS[head];\
[c]trim=start=0.5:end=5.5,setpts=PTS-STARTPTS[mid];\
[tail][head]xfade=transition=fade:duration=0.5:offset=0[xf];\
[xf][mid]concat=n=2:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -an -c:v libx264 -crf 18 blended-loop.mp4

Para outra duração D e sobreposição X, use trim=start=D-X:end=D para o final, trim=start=0:end=X para o início e trim=start=X:end=D-X para o meio, com duration=X em xfade. Escreva os números calculados no comando. Comece com 8 a 12 quadros de sobreposição. Se os olhos virarem dois pares ou os dedos deixarem rastros transparentes, encurte a sobreposição ou abandone a mistura.

Um retrato nítido e alinhado contrasta com uma mistura desalinhada que duplica os traços do rosto e as mãos.

Ilustração, não um quadro Seedance: uma mistura desalinhada duplica os traços do rosto.

A mistura é adequada a um retrato quase imóvel. É uma escolha ruim para uma grande virada de cabeça, mãos sobrepostas ou movimento de câmera. Se o problema é uma pequena mudança de exposição, equilibre as duas pontas antes de misturar; se a geometria muda, volte à seleção da fonte.

Crie um bumerangue intencional quando a reversão fizer sentido

Um loop para frente e para trás funciona para uma leve inclinação de cabeça. Não use para fala, caminhada para frente, cabelo caindo, água sendo despejada ou uma mão pousando um objeto: a causalidade invertida aparece.

O comando pega os primeiros cinco segundos a 24 fps, reproduz os quadros 0 a 119 para frente e depois 118 a 1 para trás, removendo os quadros duplicados nas pontas que criariam uma breve pausa:

bash
ffmpeg -i input.mp4 -filter_complex \
"[0:v]fps=24,trim=start_frame=0:end_frame=120,setpts=PTS-STARTPTS,split[f][r];[r]reverse,trim=start_frame=1:end_frame=119,setpts=PTS-STARTPTS[back];[f][back]concat=n=2:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -an -c:v libx264 -crf 18 boomerang.mp4

A fonte precisa ter pelo menos cinco segundos de vídeo; a saída tem 238 quadros, cerca de 9.9 segundos. Escolha uma fonte que se mova devagar nas pontas ou a mudança de direção ainda parecerá brusca. O filtro reverse armazena tudo que processa, então corte um trecho curto primeiro (documentação de filtros do FFmpeg).

Adicione som depois que a imagem funcionar

Para uma prévia silenciosa de perfil, mantenha o loop sem som. Para ambiente, coloque uma faixa separada de som de sala ou cidade sob vários ciclos, faça a transição das pontas do ambiente independentemente da imagem e ouça a repetição com fones. Para criar uma base três vezes mais longa com emendas suaves, misture cópias de um arquivo de ambiente (cada emenda encurta o resultado em um segundo):

bash
ffmpeg -i bed.wav -i bed.wav -i bed.wav -filter_complex "[0][1]acrossfade=d=1[x];[x][2]acrossfade=d=1" bed3.wav

Não inverta a fala nem associe um evento sonoro marcante a cada repetição, a menos que seja intencional.

Antes de entregar, confira o arquivo de três ciclos no tamanho de exibição e procure reinício de câmera, salto na roupa, rosto duplicado ou clique no áudio. Se o retrato estiver estável, mas um detalhe do fundo não entrar em loop, a alternativa é um cinemagraph com máscara: mantenha um retrato estático aprovado e anime só uma região separada de cortina ou luz. Isso é composição ao redor de um sujeito estático, não uma atuação gerada sem emendas.

Também em English · 日本語 · 한국어 · Deutsch · Français · Español · Русский · Italiano · Polski

Experimente você mesmo

Você paga só pelo que executar — sem plano e sem assinatura.

Feito com MiniMax H3 · ByteDance Seedance 2.0 Fast