Video Compose
Construit des invites de génération vidéo et des drapeaux generate_video.js pour le canevas de création de films pai-pro
Fonctionne avec configuration
Ce que fait
Compétence de dispatch pour le canevas de création de films pai-pro qui transforme une requête vidéo en une invocation generate_video.js : elle choisit l'un des sept modèles (text-to-video, image-to-video, composition de personnage/lieu, extension de clip, édition de clip, clip piloté par la voix, publicité/MV multi-plans), construit l'invite avec la liaison de référence @Image/@Video/@Audio, et définit les drapeaux de durée, résolution, audio et référence. Se déclenche lorsque l'utilisateur demande de générer, animer, continuer, restyler ou composer un clip vidéo sur le canevas, ou de rendre un plan de script ou un storyboard en vidéo. Nécessite l'application pai-pro elle-même — une PAI_KEY, le serveur de visualisation local et un projet de canevas — de sorte que l'outil CLI qu'elle enveloppe ne peut pas s'exécuter de manière autonome.
Rapport de test
J'ai cloné le dépôt, confirmé que skills/video-compose/SKILL.md ainsi que les quatre references/*.md ont été récupérés avec HTTP 200 (et server/cli/generate_video.js et agent-templates/PROJECT_AGENT.md à 200), et installé le dossier dans un HOME temporaire=$(mktemp -d) — SKILL.md et references/ ont atterri correctement. Je n'ai PAS pu exécuter la compétence de bout en bout : generate_video.js nécessite PAI_KEY, le visualiseur pai-pro en cours d'exécution, un tunnel cloudflared et des identifiants de nœud de canevas, donc aucun artefact vidéo n'existe et outputMeasured est faux. Ce que j'ai mesuré : deux artefacts prompt+argv pour la même tâche, une base de référence écrite à partir des seuls drapeaux parseArgs du CLI et une construite strictement à partir du Pattern 6 plus references/video-single-shot.md, toutes deux exécutées via le propre server/cli/_ref_guard.js du dépôt — les deux ont passé la garde, mais la base de référence (376 caractères) a redécrit le personnage en prose sans liaison @Image1, a empilé des mouvements de caméra conflictuels ("slowly orbits her while pushing in"), et n'avait pas de garde de dialogue once/no-echo ni de ligne négative, tandis que l'artefact de compétence (678 caractères) a lié l'identité via "The character in @Image1", a ajouté "Speak the quoted line exactly once, no echo, no repeated reads" et a terminé par "no captions, watermarks, distortion, stretching" ; si cela produit un meilleur clip n'est pas vérifié. Les affirmations de SKILL.md correspondent à la source — les limites de référence (9 images / 3 audio / 3 vidéo, 1.8-15.2s, 15s vidéo agrégée), les valeurs par défaut (15s, 16:9, 720p, audio activé) et les chaînes bad_args citées correspondent exactement à server/cli/_limits.js et model_registry.js. Phrases de déclenchement que j'ai jugées : DEVRAIT se déclencher — "Animate this character image into a 6-second rooftop clip where she says 'It's over'" (oui), "Continue the last clip on the canvas — what happens after she walks out ?" (oui), "Make a 15-second product promo using the character and location refs on the canvas" (oui) ; NE DEVRAIT PAS se déclencher — "Trim the first 3 seconds off /Users/me/clip.mp4 and re-encode to h264" (non : rien n'est généré, bien que le mot nu "edit" de la description en fasse le seul cas réellement proche), "Make a storyboard mosaic for scene 2" (non : c'est image-compose). Aucune faille de sécurité dans skills/ (pas de curl|sh, pas de base64, pas d'exfiltration ou de texte d'injection) ; le fichier .env.example au niveau du dépôt documente que l'agent de projet intégré se lance avec --dangerously-skip-permissions par défaut, ce qui est une propriété du produit pai-pro plutôt que de cette compétence.
Testé le: 2026-07-31 · Claude Code 2.x (agent harness)
Installation
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.
Commandes et exemples de prompts
/video-composeConstruit des invites de génération vidéo et des drapeaux generate_video.js pour le canevas de création de films pai-pro
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Generate a video clip from this storyboard frameAnimate this character reference into a shotCompose a product promo video sequence