Video Compose
Erstellt Video-Generierungs-Prompts und generate_video.js-Flags für die pai-pro Filmemacher-Canvas
Funktioniert mit Setup
Was es kann
Dispatcher-Fähigkeit für die pai-pro Filmemacher-Canvas, die eine Videoanfrage in einen generate_video.js-Aufruf umwandelt: Sie wählt eines von sieben Mustern (text-to-video, image-to-video, character/location composition, clip extension, clip editing, voice-driven clip, multi-shot ad/MV), erstellt den Prompt mit @Image/@Video/@Audio-Referenzbindung und setzt Dauer, Auflösung, Audio- und Referenz-Flags. Wird ausgelöst, wenn der Benutzer ein Video auf der Canvas generieren, animieren, fortsetzen, neu gestalten oder komponieren oder ein Skript-Shot oder Storyboard als Video rendern möchte. Erfordert die pai-pro-App selbst – einen PAI_KEY, den lokalen Viewer-Server und ein Canvas-Projekt – sodass die CLI, die sie umschließt, nicht eigenständig ausgeführt werden kann.
Testbericht
Ich klonte das Repo, bestätigte, dass skills/video-compose/SKILL.md plus alle vier references/*.md mit HTTP 200 abgerufen werden (und server/cli/generate_video.js und agent-templates/PROJECT_AGENT.md mit 200), und installierte den Ordner in ein temporäres HOME=$(mktemp -d) – SKILL.md und references/ landeten korrekt. Ich konnte den Skill nicht End-to-End ausführen: generate_video.js benötigt PAI_KEY, den laufenden pai-pro Viewer, einen cloudflared Tunnel und Canvas-Knoten-IDs, sodass kein Video-Artefakt existiert und outputMeasured false ist. Was ich gemessen habe: zwei prompt+argv-Artefakte für dieselbe Aufgabe, eine Baseline, die nur aus den parseArgs-Flags der CLI geschrieben wurde, und eine, die streng nach Pattern 6 plus references/video-single-shot.md erstellt wurde, beide durch den server/cli/_ref_guard.js des Repos ausgeführt – beide bestanden den Guard, aber die Baseline (376 Zeichen) beschrieb den Charakter in Prosa ohne @Image1-Bindung neu, stapelte widersprüchliche Kamerabewegungen ("slowly orbits her while pushing in") und hatte keinen once/no-echo-Dialog-Guard und keine negative Zeile, während das Skill-Artefakt (678 Zeichen) die Identität über "The character in @Image1" band, "Speak the quoted line exactly once, no echo, no repeated reads" hinzufügte und mit "no captions, watermarks, distortion, stretching" schloss; ob dies einen besseren Clip ergibt, ist unbestätigt. SKILL.md-Ansprüche stimmen mit der Quelle überein – Ref-Caps (9 Bild / 3 Audio / 3 Video, 1.8-15.2s, 15s aggregiertes Video), Defaults (15s, 16:9, 720p, Audio an) und die zitierten bad_args-Strings stimmen alle genau mit server/cli/_limits.js und model_registry.js überein. Auslöser-Formulierungen, die ich beurteilt habe: SOLLTE auslösen – "Animate this character image into a 6-second rooftop clip where she says 'It's over'" (ja), "Continue the last clip on the canvas — what happens after she walks out?" (ja), "Make a 15-second product promo using the character and location refs on the canvas" (ja); sollte NICHT auslösen – "Trim the first 3 seconds off /Users/me/clip.mp4 and re-encode to h264" (nein: nichts wird generiert, obwohl das bloße Wort "edit" in der Beschreibung dies zum einzig wirklich knappen Fall macht), "Make a storyboard mosaic for scene 2" (nein: das ist image-compose). Keine Sicherheitsmängel in skills/ (keine curl|sh, keine base64, keine Exfiltration oder Injektionstexte); repo-level .env.example dokumentiert, dass der eingebettete Projekt-Agent standardmäßig mit --dangerously-skip-permissions startet, was eine pai-pro Produkteigenschaft und nicht die dieses Skills ist.
Getestet am: 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.
Befehle & Beispiel-Prompts
/video-composeErstellt Video-Generierungs-Prompts und generate_video.js-Flags für die pai-pro Filmemacher-Canvas
Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):
Generate a video clip from this storyboard frameAnimate this character reference into a shotCompose a product promo video sequence