$npx -y skills add prime-skills/runcomfy-agent-skills --skill video-extendExtend or continue an existing video clip on RunComfy via the runcomfy CLI. Routes to Google Veo 3-1's extend-video and fast/extend-video endpoints — pick the source video plus a prompt describing what should happen next, and the model produces a clip that continues the ori
| 1 | # Video Extend |
| 2 | |
| 3 | Continue an existing video clip past its per-call duration cap, or chain a narrative shot-by-shot from a single seed. This skill routes to Google Veo 3-1's `extend-video` endpoints and ships the documented prompting patterns + the exact `runcomfy run` invoke. |
| 4 | |
| 5 | [runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) · [Veo 3-1 extend-video](https://www.runcomfy.com/models/google-deepmind/veo-3-1/extend-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) |
| 6 | |
| 7 | ## Powered by the RunComfy CLI |
| 8 | |
| 9 | ```bash |
| 10 | # 1. Install (see runcomfy-cli skill for details) |
| 11 | npm i -g @runcomfy/cli # or: npx -y @runcomfy/cli --version |
| 12 | |
| 13 | # 2. Sign in |
| 14 | runcomfy login # or in CI: export RUNCOMFY_TOKEN=<token> |
| 15 | |
| 16 | # 3. Extend |
| 17 | runcomfy run google-deepmind/veo-3-1/extend-video \ |
| 18 | --input '{"video_url": "https://...", "prompt": "..."}' \ |
| 19 | --output-dir ./out |
| 20 | ``` |
| 21 | |
| 22 | CLI deep dive: [`runcomfy-cli`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/runcomfy-cli) skill. |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ## Pick the right endpoint |
| 27 | |
| 28 | Listed newest first. Both endpoints are Google Veo 3-1; pick by quality/latency trade-off. |
| 29 | |
| 30 | **Veo 3-1 Extend** — `google-deepmind/veo-3-1/extend-video` *(default)* |
| 31 | > Continues an existing Veo clip with consistent motion, lighting, identity, and physics. |
| 32 | > Pick for: hero-quality extends, final-delivery cuts, chained narrative shots that need to look like one continuous take. |
| 33 | > Avoid for: cost-sensitive iteration — drop to **Veo 3-1 Fast Extend**. |
| 34 | |
| 35 | **Veo 3-1 Fast Extend** — [`google-deepmind/veo-3-1/fast/extend-video`](https://www.runcomfy.com/models/google-deepmind/veo-3-1/fast/extend-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) |
| 36 | > Faster Veo 3-1 extend at lower per-call cost. |
| 37 | > Pick for: iteration on extend compositions, multi-shot drafts. |
| 38 | > Avoid for: final delivery — use full **Veo 3-1 Extend**. |
| 39 | |
| 40 | The agent picks one and supplies the source video URL + a continuation prompt. |
| 41 | |
| 42 | --- |
| 43 | |
| 44 | ## Route: Veo 3-1 Extend |
| 45 | |
| 46 | **Model**: `google-deepmind/veo-3-1/extend-video` (or `/fast/extend-video`) |
| 47 | **Catalog**: [Veo 3-1 extend](https://www.runcomfy.com/models/google-deepmind/veo-3-1/extend-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) · [Veo 3-1 fast extend](https://www.runcomfy.com/models/google-deepmind/veo-3-1/fast/extend-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) · [`veo-3` collection](https://www.runcomfy.com/models/collections/veo-3?utm_source=skills.sh&utm_medium=skill&utm_campaign=video-extend) |
| 48 | |
| 49 | ### Invoke |
| 50 | |
| 51 | ```bash |
| 52 | runcomfy run google-deepmind/veo-3-1/extend-video \ |
| 53 | --input '{ |
| 54 | "video_url": "https://your-cdn.example/source-clip.mp4", |
| 55 | "prompt": "The camera continues pushing in slowly. The character looks down at the object, then turns toward the window. Soft daylight, no other motion in the background." |
| 56 | }' \ |
| 57 | --output-dir ./out |
| 58 | ``` |
| 59 | |
| 60 | ### Prompting tips |
| 61 | |
| 62 | - **The source video provides identity, lighting, framing, and physics.** Your prompt describes only what happens **next** — don't re-describe the scene. |
| 63 | - **Anchor the camera explicitly**: "camera continues pushing in", "camera stays static", "slow dolly out". Without an anchor the camera tends to drift. |
| 64 | - **One main beat per extend.** "Character turns and walks toward camera" is one beat. "Character turns, walks toward camera, then sits down" is three beats — split into separate extend calls. |
| 65 | - **Chain consecutive extends** by feeding the output of one extend call as the input to the next. Identity drift accumulates per generation, so keep individual extends short (3–5 s) for long chains. |
| 66 | |
| 67 | --- |
| 68 | |
| 69 | ## Common patterns |
| 70 | |
| 71 | ### Single clip → 16s feature |
| 72 | - Start with an 8s Veo 3-1 i2v or t2v clip |
| 73 | - Run `extend-video` once → 16s total. Same prompt rhythm for the second 8s. |
| 74 | |
| 75 | ### Story beats (shot by shot) |
| 76 | - Beat 1: t2v generates establishing shot |
| 77 | - Beat 2: feed output to `extend-video` with prompt "camera cuts to medium close-up; character speaks l |