Video Compose
Crea prompts de generación de video y flags generate_video.js para el lienzo de creación de películas pai-pro
Funciona con configuración
Qué hace
Habilidad de dispatcher para el lienzo de creación de películas pai-pro que convierte una solicitud de video en una invocación de generate_video.js: elige uno de siete patrones (texto a video, imagen a video, composición de personaje/ubicación, extensión de clip, edición de clip, clip impulsado por voz, anuncio/MV de múltiples tomas), construye el prompt con @Image/@Video/@Audio binding de referencia, y establece flags de duración, resolución, audio y referencia. Se activa cuando el usuario pide generar, animar, continuar, reestilizar o componer un clip de video en el lienzo, o renderizar una toma de guion o storyboard como video. Requiere la propia aplicación pai-pro — una PAI_KEY, el servidor visor local y un proyecto de lienzo — por lo que la CLI que envuelve no puede ejecutarse de forma independiente.
Informe de la prueba
Cloné el repositorio, confirmé que skills/video-compose/SKILL.md más los cuatro references/*.md se obtienen con HTTP 200 (y server/cli/generate_video.js y agent-templates/PROJECT_AGENT.md con 200), e instalé la carpeta en un HOME temporal=$(mktemp -d) — SKILL.md y references/ aterrizaron correctamente. NO pude ejecutar la habilidad de principio a fin: generate_video.js necesita PAI_KEY, el visor pai-pro en ejecución, un túnel cloudflared e IDs de nodos de lienzo, por lo que no existe ningún artefacto de video y outputMeasured es falso. Lo que sí medí: dos artefactos prompt+argv para la misma tarea, una línea base escrita solo a partir de los flags parseArgs de la CLI y uno construido estrictamente a partir del Patrón 6 más references/video-single-shot.md, ambos ejecutados a través del propio server/cli/_ref_guard.js del repositorio — ambos pasaron la guardia, pero la línea base (376 caracteres) redescribió el personaje en prosa sin binding @Image1, apiló movimientos de cámara conflictivos ("slowly orbits her while pushing in"), y no tenía guardia de diálogo once/no-echo ni línea negativa, mientras que el artefacto de la habilidad (678 caracteres) vinculó la identidad a través de "The character in @Image1", añadió "Speak the quoted line exactly once, no echo, no repeated reads" y cerró con "no captions, watermarks, distortion, stretching"; si eso produce un clip mejor no está verificado. Las afirmaciones de SKILL.md coinciden con la fuente — ref caps (9 imágenes / 3 audios / 3 videos, 1.8-15.2s, 15s de video agregado), valores predeterminados (15s, 16:9, 720p, audio activado) y las cadenas bad_args citadas coinciden exactamente con server/cli/_limits.js y model_registry.js. Frases de activación que juzgué: DEBERÍA activarse — "Animate this character image into a 6-second rooftop clip where she says 'It's over'" (sí), "Continue the last clip on the canvas — what happens after she walks out?" (sí), "Make a 15-second product promo using the character and location refs on the canvas" (sí); NO DEBERÍA activarse — "Trim the first 3 seconds off /Users/me/clip.mp4 and re-encode to h264" (no: no se genera nada, aunque la palabra "edit" de la descripción hace que este sea el único caso realmente cercano), "Make a storyboard mosaic for scene 2" (no: eso es image-compose). No hay problemas de seguridad en skills/ (sin curl|sh, sin base64, sin exfiltración o texto de inyección); el .env.example a nivel de repositorio documenta que el agente de proyecto incrustado se inicia con --dangerously-skip-permissions por defecto, lo cual es una propiedad del producto pai-pro más que de esta habilidad.
Probado el: 2026-07-31 · Claude Code 2.x (agent harness)
Instalación
git clone --depth 1 https://github.com/Utopai-Research/pai-pro.git /tmp/video-compose-src mkdir -p ~/.claude/skills cp -R /tmp/video-compose-src/skills/video-compose ~/.claude/skills/video-compose # Verified: places SKILL.md + references/ (4 files) at ~/.claude/skills/video-compose/ in a clean HOME. # NOT USABLE STANDALONE. The skill only writes flags for /tmp/video-compose-src/server/cli/generate_video.js, # which needs the full pai-pro product running: # 1. cp /tmp/video-compose-src/.env.example /tmp/video-compose-src/.env # 2. set PAI_KEY=... (paid media API key from https://pai-pro.utopaistudios.com/keys) # 3. cd /tmp/video-compose-src && ./scripts/setup --agent claude && ./scripts/start.sh # (start.sh also launches a cloudflared quick tunnel so the provider can fetch reference assets) # 4. create a project in the viewer; the skill reads canvas node ids from that project's workflow.json # Plugin-marketplace alternative: the repo ships .claude-plugin/marketplace.json (plugin name "pai-pro", # installs all skills at once). Two of its listed skills (add-note, show-dag) point at directories that # do not exist in the repo tree. # Each generated clip costs real money; the skill's own text says to stage before firing.
Comandos y prompts de ejemplo
/video-composeCrea prompts de generación de video y flags generate_video.js para el lienzo de creación de películas pai-pro
Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):
Generate a video clip from this storyboard frameAnimate this character reference into a shotCompose a product promo video sequence