VYBE Imagem-para-Movimento
I = nó <this skill>/scripts/i2m.mjs. Funciona de forma independente ou como Estágios 4–5 de
/vybe (então o diretório de composição é o composition/ do projeto VYBE).
A regra da honestidade
Movimento programático move uma câmera, camadas, luz e partículas ao redor dos
pixels originais. Ele não pode fazer uma pessoa andar, sorrir ou virar a cabeça, fazer
água fluir ou mostrar a parte de trás de um produto. Nunca descreva a saída programática como
"a pessoa anda" ou "movimento realista". Se a solicitação exigir movimento no nível do pixel
e nenhum provedor de IA foi executado, diga isso claramente e entregue a versão com movimento de câmera pelo que ela é. Clipes de IA carregam um .provenance.json e são sempre rotulados como gerados por IA.
1 · Analisar
I analyze <imagem> # tamanho, proporção → formato sugerido, tom chave, paleta
Em seguida, observe a imagem (visão) e escreva sources/image-analysis.md: sujeito
principal e limite, primeiro plano/meio-termo/fundo, perspectiva e horizonte,
direção da luz, regiões que podem se mover, rostos (a identidade deve ser preservada).
2 · Planejar e escolher o método
I classify "<solicitação de movimento do usuário>" [--method programmatic|ai]
I providers # quais provedores de IA estão configurados (apenas presença)
| Solicitação envolve | Método |
|---|---|
| zoom, aproximação, afastamento, panorâmica, sensação de órbita, paralaxe, profundidade | programático |
| partículas, poeira, neve, chuva, névoa, varredura de luz, brilho, flare | programático |
| fundo se movendo enquanto o sujeito permanece estável | programático (camadas) |
| flutuação/balanço suave de um objeto separado | programático (camadas, subjectSway) |
| pessoas/animais se movendo, expressões faciais, mãos | IA |
| cabelo/tecido/folhas/chamas se movendo, água/fumaça fluindo | IA |
| transformações (derreter, florescer, explodir), giros completos de 360° | IA |
O --method explícito do usuário sempre vence. Um híbrido (clipe de IA + sobreposições
programáticas e câmera) é frequentemente o melhor: gere o movimento orgânico, depois adicione câmera
VYBE, luz, tipo e som no HyperFrames.
Escreva sources/motion-plan.md: movimento de câmera, movimento de objeto/fundo, luz,
partículas, duração, intensidade, método + motivo, e o que não se moverá.
3a · Programático
I scaffold --image <img> --prompt "<solicitação>" --composition <dir> [--mode layers|depth] [--format f] [--duration s]
cd <dir> && npx hyperframes check && npx hyperframes snapshot --frames 5 -o ../previews/i2m
- layers (padrão):
npx hyperframes remove-backgroundrecorta o sujeito e uma placa de fundo; o buraco do sujeito é preenchido com uma cópia desfocada; placa, névoa, sujeito, partículas e luz se movem com paralaxe escalada por profundidade. Melhor quando há um sujeito claro. - depth: um shader Three.js desloca a imagem por um mapa de profundidade (máscara do sujeito +
gradiente do chão) enquanto uma câmera virtual se move — paralaxe 2.5D verdadeira em todo o
quadro. Melhor para paisagens, interiores, cenas sem um sujeito único.
Mantenha
intensity≤ 1 para rostos (deslocamentos fortes os distorcem). - Ajuste via o JSON
#i2m-configemindex.html(câmera: push · pull · pan-left · pan-right · rise · orbit; intensity 0.5–1.5; effects: particles · snow · rain · fog · light-sweep; subjectSway). - Sem um recorte (remoção indisponível) ele degrada para movimento de camada única — relate isso.
3b · IA de imagem-para-vídeo
I generate --provider <p> --image <img> --prompt "<prompt de movimento>" --out sources/clip.mp4 --duration 5 --aspect 16:9 --dry-run # inspecionar solicitação (chaves ocultas)
I generate --provider <p> --image <img> --prompt "<prompt de movimento>" --out sources/clip.mp4 --duration 5 --aspect 16:9
I compose --clip sources/clip.mp4 --composition <dir> [--title "…"]
| Provedor | Modelos | Notas |
|---|---|---|
runway | gen4.5 (padrão), gen4_turbo, veo3.1, veo3.1_fast, kling3.0_pro, kling3.0_standard | uma chave alcança Runway, Google Veo 3.1 e Kling 3.0; durações 2–10s (Veo 4/6/8, Kling 3–15) |
luma | ray-3.2 | 5s com um quadro inicial; prefere um --image-url público, dados inline para arquivos pequenos |
gemini | gemini-omni-1.1-flash | API de Interações, 16:9 ou 9:16; modelos preview do Veo 3.1 foram descontinuados em 2026-10-22 |
kling | kling-v2-1 (direto) | experimental adaptador (endpoint de docs secundários); prefira runway + kling3.0_pro |
Escreva o prompt de movimento como uma descrição de cena: sujeito + ação + câmera + clima + "mantenha a identidade e composição do sujeito". A geração custa dinheiro: confirme com o usuário antes de uma chamada paga iniciada pelo agente, a menos que eles tenham solicitado movimento de IA explicitamente. Nunca repita uma geração paga com falha mais de uma vez sem perguntar. Erros (auth, quota, moderação, timeout) são relatados textualmente.
Detalhes, fontes e ressalvas: references/providers.md.
4 · Entregar
A composição recebe o tratamento normal do VYBE: vybe audio (música/SFX/voz;
marcadores estão presentes), vybe render, vybe qc, vybe finalize. Independente:
npx hyperframes render --output out.mp4 no diretório de composição. Mantenha a
imagem de origem, camadas, mapa de profundidade, i2m-plan.json e qualquer .provenance.json.