VYBE Image-to-Motion
I = node <este skill>/scripts/i2m.mjs. Funciona de forma independiente o como etapas 4–5 de /vybe (entonces el directorio de composición es el composition/ del proyecto VYBE).
La regla de honestidad
El movimiento programático mueve una cámara, capas, luz y partículas alrededor de los píxeles originales. No puede hacer que una persona camine, sonría o gire la cabeza, que el agua fluya, o que se vea la parte trasera de un producto. Nunca describas la salida programática como "la persona camina" o "movimiento realista". Si la solicitud necesita movimiento a nivel de píxeles y no se ejecutó ningún proveedor de IA, dilo claramente y entrega la versión de movimiento de cámara tal como es. Los clips de IA llevan un .provenance.json y siempre se etiquetan como generados por IA.
1 · Analizar
I analyze <imagen> # tamaño, aspecto → formato sugerido, clave tonal, paleta
Luego mira la imagen (visión) y escribe sources/image-analysis.md: sujeto principal y límite, primer plano/plano medio/fondo, perspectiva y horizonte, dirección de la luz, regiones que podrían moverse, rostros (la identidad debe conservarse).
2 · Planificar y elegir el método
I classify "<la solicitud de movimiento del usuario>" [--method programmatic|ai]
I providers # qué proveedores de IA están configurados (solo presencia)
| La solicitud implica | Método |
|---|---|
| zoom, push-in, pull-out, paneo, sensación de órbita, paralaje, profundidad | programático |
| partículas, polvo, nieve, lluvia, niebla, barrido de luz, resplandor, destello | programático |
| fondo moviéndose mientras el sujeto permanece estable | programático (capas) |
| balanceo/vaivén suave de un objeto separado | programático (capas, subjectSway) |
| personas/animales moviéndose, expresiones faciales, manos | IA |
| cabello/tela/hojas/llamas moviéndose, agua/humo fluyendo | IA |
| transformaciones (derretirse, florecer, explotar), giros completos de 360° | IA |
El --method explícito del usuario siempre gana. Un enfoque híbrido (clip de IA + superposiciones programáticas y cámara) suele ser el mejor: genera el movimiento orgánico, luego añade la cámara, luz, tipo y sonido de VYBE en HyperFrames.
Escribe sources/motion-plan.md: movimiento de cámara, movimiento de objeto/fondo, luz, partículas, duración, intensidad, método + motivo, y qué no se moverá.
3a · Programático
I scaffold --image <img> --prompt "<solicitud>" --composition <dir> [--mode layers|depth] [--format f] [--duration s]
cd <dir> && npx hyperframes check && npx hyperframes snapshot --frames 5 -o ../previews/i2m
- capas (por defecto):
npx hyperframes remove-backgroundrecorta el sujeto y un plano de fondo; el agujero del sujeto se rellena con una copia borrosa; el plano, la niebla, el sujeto, las partículas y la luz se mueven con paralaje escalado por profundidad. Mejor cuando hay un sujeto claro. - profundidad: un shader de Three.js desplaza la imagen mediante un mapa de profundidad (máscara del sujeto + gradiente del suelo) mientras una cámara virtual se mueve — verdadero paralaje 2.5D en todo el cuadro. Mejor para paisajes, interiores, escenas sin un solo sujeto. Mantén
intensity≤ 1 para rostros (los desplazamientos fuertes los distorsionan). - Ajusta a través del JSON
#i2m-configenindex.html(cámara: push · pull · pan-left · pan-right · rise · orbit; intensidad 0.5–1.5; efectos: particles · snow · rain · fog · light-sweep; subjectSway). - Sin un recorte (eliminación no disponible) se degrada a movimiento de una sola capa — informa de ello.
3b · IA de imagen a video
I generate --provider <p> --image <img> --prompt "<mensaje de movimiento>" --out sources/clip.mp4 --duration 5 --aspect 16:9 --dry-run # inspeccionar solicitud (claves redactadas)
I generate --provider <p> --image <img> --prompt "<mensaje de movimiento>" --out sources/clip.mp4 --duration 5 --aspect 16:9
I compose --clip sources/clip.mp4 --composition <dir> [--title "…"]
| Proveedor | Modelos | Notas |
|---|---|---|
runway | gen4.5 (por defecto), gen4_turbo, veo3.1, veo3.1_fast, kling3.0_pro, kling3.0_standard | una clave llega a Runway, Google Veo 3.1 y Kling 3.0; duraciones 2–10s (Veo 4/6/8, Kling 3–15) |
luma | ray-3.2 | 5s con un fotograma de inicio; prefiere una --image-url pública, datos en línea para archivos pequeños |
gemini | gemini-omni-1.1-flash | API de Interacciones, 16:9 o 9:16; los modelos preview de Veo 3.1 fueron retirados el 22/10/2026 |
kling | kling-v2-1 (directo) | experimental adaptador (endpoint de documentación secundaria); prefiere runway + kling3.0_pro |
Escribe el mensaje de movimiento como una descripción de toma: sujeto + acción + cámara + ambiente + "mantén la identidad y composición del sujeto". La generación cuesta dinero: confirma con el usuario antes de una llamada paga iniciada por el agente a menos que hayan solicitado movimiento con IA explícitamente. Nunca reintentes una generación paga fallida más de una vez sin preguntar. Los errores (autenticación, cuota, moderación, tiempo de espera) se informan textualmente.
Detalles, fuentes y advertencias: references/providers.md.
4 · Entregar
La composición recibe el tratamiento normal de VYBE: vybe audio (música/SFX/voz; los marcadores están presentes), vybe render, vybe qc, vybe finalize. De forma independiente: npx hyperframes render --output out.mp4 en el directorio de composición. Conserva la imagen original, las capas, el mapa de profundidad, i2m-plan.json y cualquier .provenance.json.