ワンクリックで
scrollclaw-animate
// Animate first frames into A-roll talking head clips. Uses Sora 2 via fal.ai (primary) with Kling 3 auto-fallback when Sora is unavailable or sunset.
// Animate first frames into A-roll talking head clips. Uses Sora 2 via fal.ai (primary) with Kling 3 auto-fallback when Sora is unavailable or sunset.
| name | scrollclaw-animate |
| description | Animate first frames into A-roll talking head clips. Uses Sora 2 via fal.ai (primary) with Kling 3 auto-fallback when Sora is unavailable or sunset. |
| metadata | {"openclaw":{"emoji":"🎥","user-invocable":true,"triggers":["animate clip","sora animate","generate clip","a-roll","talking head clip","sora video","kling animate","kling a-roll"]}} |
Turns first frames into talking head clips with synced lip movement and audio. Image-to-video is the default — text-to-video is the fallback.
Fallback chain: Sora 2 (fal.ai) -> Kling 3 (fal.ai) -> Kling 3 (Replicate). Use --provider kling to skip Sora entirely (for when Sora is sunset).
/first-frame)[A-ROLL] segments tagged (from /persona)Read references/motion-prompting.md for the structured prompt format. Use labeled fields — not prose paragraphs:
USE THE SCRIPTS. DO NOT construct API calls manually. Scripts handle provider routing, field names, polling, downloading, and error handling.
# Image-to-video (RECOMMENDED — first frame locks the face)
bash scripts/generate-clip.sh \
--provider fal \
--image workspace/campaigns/<slug>/frames/frame1.png \
--prompt-file workspace/campaigns/<slug>/motion-prompt.txt \
--output workspace/campaigns/<slug>/clips/a-roll-01.mp4 \
--log-file workspace/campaigns/<slug>/output-log.md \
--label a-roll-01 \
--seconds 8 --aspect-ratio portrait
# Text-to-video (fallback — no first frame)
bash scripts/generate-clip.sh \
--provider fal \
--prompt-file workspace/campaigns/<slug>/scene-prompt.txt \
--output workspace/campaigns/<slug>/clips/a-roll-01.mp4 \
--log-file workspace/campaigns/<slug>/output-log.md \
--label a-roll-01 \
--seconds 8 --aspect-ratio portrait
# Kling direct (skip Sora — use when Sora is sunset)
bash scripts/generate-clip.sh \
--provider kling \
--image workspace/campaigns/<slug>/frames/frame1.png \
--prompt-file workspace/campaigns/<slug>/motion-prompt.txt \
--output workspace/campaigns/<slug>/clips/a-roll-01.mp4 \
--log-file workspace/campaigns/<slug>/output-log.md \
--label a-roll-01 \
--seconds 8 --aspect-ratio portrait
# Replicate Sora (legacy — may stop working when Sora is sunset)
bash scripts/generate-clip.sh \
--provider replicate \
--image workspace/campaigns/<slug>/frames/frame1.png \
--prompt-file workspace/campaigns/<slug>/motion-prompt.txt \
--output workspace/campaigns/<slug>/clips/a-roll-01.mp4 \
--log-file workspace/campaigns/<slug>/output-log.md \
--label a-roll-01 \
--seconds 8 --aspect-ratio portrait
Read references/sora-api.md for endpoint details, queue workflow, field names, and duration options. Sora fal.ai supports 4/8/12/16/20s. Kling supports 3-15s (durations >15s are auto-clamped). Replicate Sora is limited to 4/8/12.
Sora's content filter runs AFTER generation — can fail at 99%. If blocked:
--provider kling — Kling has no content safety filter--provider kling to skip Sora entirely| File | Purpose |
|---|---|
workspace/campaigns/<slug>/frames/frame1.png | Canonical face — fed to Sora i2v to lock creator identity |
workspace/campaigns/<slug>/scripts/<format>-script.md | A-roll segments, dialogue, shot timing |
workspace/campaigns/<slug>/creators/creator-<name>.md | Creator energy/vibe reference for motion prompting |
workspace/creators/creator-<name>.md | Fallback if no campaign-specific profile exists |
| File | Notes |
|---|---|
workspace/campaigns/<slug>/clips/a-roll-01.mp4 | One file per A-roll segment |
workspace/campaigns/<slug>/output-log.md | Motion prompt, model, duration, provider (append-only) |
🎥 Animate context loaded:
✓ First frame: workspace/campaigns/ridge-q1/frames/frame1.png
✓ Script: talking-head (A-roll segments: 3)
✓ Creator: Maya
✓ Campaign: ridge-q1
frame1.png plus a script with [A-ROLL] segments/first-frame, /persona, and references/motion-prompting.md[A-ROLL] segment plus append-only generation logsworkspace/campaigns/<slug>/clips/ and rows in output-log.md/b-roll and /assembleworkspace/campaigns/<slug>/clips/a-roll-<segment>.mp4 corresponding to an [A-ROLL] script segmentworkspace/campaigns/<slug>/output-log.mdA-roll done → run /b-roll for environment shots, or /assemble if no B-roll needed.
One-time brand initialization. Given a brand name and URL, researches the brand and generates the three workspace/brand/ files that the rest of the pipeline reads. Run once per brand before any campaign work.
Router and orchestrator for AI UGC video production. Use for broad outcome requests like making a UGC video or running a campaign; it routes step-specific requests to the right sub-skill and can drive the full pipeline from persona research through virality-scored video.
ScrollClaw system — core doctrine, format selection, pipeline routing, and anti-patterns. Loaded into every UGC conversation.
Assembly stage for UGC videos. Handles stitch mode, post mode, captions mode, or full-assemble mode when the user is explicitly working on finalizing an existing campaign video.
Generate B-roll environment and product shots with Kling 3 via fal.ai. Environment matching, cut timing, and visual-only clips that play under continuous voice.
Generate the canonical first frame with Nano Banana 2. Composition, character, environment, and color — all locked before animation. The visual design gate.