Video Edit — Pro Pack on RunComfy
runcomfy.com · Wan 2.7 Edit-Video · Kling Motion-Control Pro · Lucy Edit Restyle · GitHub
Video edit, intent-routed. This skill doesn't lock you to one model — it picks the right video-edit model in the RunComfy catalog based on what the user actually wants: general restyle, motion transfer from a reference clip, or lightweight identity-stable outfit / background swap.
npx skills add agentspace-so/runcomfy-skills --skill video-edit -g
Pick the right model for the user's intent
| User intent |
Model |
Why |
| Restyle a talking-head video — preserve face / pose / lip movement |
Wan 2.7 Edit-Video |
Strong identity + motion preservation; supports up to 1080p |
| Swap product background, keep camera motion |
Wan 2.7 Edit-Video |
Camera motion preserved; one-direction edit honored |
| Replace packaging design using a reference image |
Wan 2.7 Edit-Video + reference_image |
Reference-conditioned design transfer |
| Apply cinematic color grade / commercial polish |
Wan 2.7 Edit-Video |
Good at single-direction global look changes |
| Transfer precise motion from a reference video to a target character |
Kling 2.6 Pro Motion Control |
Designed for motion mapping with identity hold |
| Lip-sync motion of a target character to source video's lip movement |
Kling 2.6 Pro Motion Control |
Built for tight temporal coherence |
| Lightweight outfit / costume swap with identity preservation |
Lucy Edit Restyle |
Core strength is localized identity-stable edits |
| Identity-stable restyle ("astronaut in desert", "warm golden-hour lighting") |
Lucy Edit Restyle |
Specializes in temporal consistency for restyle |
| Default if unspecified |
Wan 2.7 Edit-Video |
Most versatile, highest resolution |
The agent reads this table, classifies the user's intent, and picks the matching subsection below.
Prerequisites
- RunComfy CLI —
npm i -g @runcomfy/cli
- RunComfy account —
runcomfy login.
- CI / containers — set
RUNCOMFY_TOKEN=<token>.
- A source video URL — formats and limits depend on the chosen route.
Route 1: Wan 2.7 Edit-Video — default for restyle / background / packaging
Model: wan-ai/wan-2-7/edit-video
Schema
| Field |
Type |
Required |
Default |
Notes |
prompt |
string |
yes |
— |
Lead with preservation. One edit direction per call. |
video |
string |
yes |
— |
MP4/MOV URL, 2–10s, ≤100MB. |
reference_image |
string |
no |
— |
URL — use for direct design / appearance transfer only. |
resolution |
enum |
no |
(input) |
720p or 1080p. |
aspect_ratio |
enum |
no |
(input) |
W:H. Defaults to input. |
duration |
int |
no |
0 |
0 = match input; 2–10 = truncate from start. |
audio_setting |
enum |
no |
auto |
auto or origin (preserve source audio). |
seed |
int |
no |
— |
Reproducibility. |
Invoke
Background swap, identity preserved, audio kept:
runcomfy run wan-ai/wan-2-7/edit-video \
--input '{
"prompt": "Preserve the speaker'\''s face, pose, and lip movement; change the background to a modern office with neutral lighting.",
"video": "https://.../speaker.mp4",
"audio_setting": "origin"
}' \
--output-dir <absolute/path>
Packaging swap with reference image:
runcomfy run wan-ai/wan-2-7/edit-video \
--input '{
"prompt": "Maintain the original framing and hand movement; replace the packaging design using the reference image.",
"video": "https://.../hand-holding-package.mp4",
"reference_image": "https://.../new-packaging.png",
"audio_setting": "origin"
}' \
--output-dir <absolute/path>
Prompting tips
- Preservation goals first:
"Preserve [face / pose / motion / framing / lip movement]; [then state the change]".
- One edit direction per call. Compound edits drift on motion.
reference_image only when justified (packaging swap, costume swap with target visual). Don't pass refs for general restyle.
audio_setting: "origin" for talking-head where you don't want soundtrack regenerated.
- Source video constraints: 2–10s, ≤100MB.
Route 2: Kling 2.6 Pro Motion Control — when motion FROM a reference clip is the point
Model: kling/kling-2-6/motion-control-pro
Use when the user wants to transfer the motion of a reference video onto a target character (driven by an image OR another video). This isn't restyle — it's motion mapping with identity hold.
Schema
| Field |
Type |
Required |
Notes |
prompt |
string |
yes |
Describe target motion / style. |
image |
string |
yes (image orientation) |
Reference for character / background consistency. |
video |
string |
yes |
Motion reference. 10–30s depending on orientation. |
keep_original_sound |
bool |
no |
Preserve audio from reference video. |
character_orientation |
enum |
yes |
image (max 10s output) or video (max 30s output). |
Invoke
runcomfy run kling/kling-2-6/motion-control-pro \
--input '{
"prompt": "A young american woman dancing",
"image": "https://.../target-character.jpg",
"video": "https://.../motion-reference-dance.mp4",
"character_orientation": "image",
"keep_original_sound": true
}' \
--output-dir <absolute/path>
Prompting tips
- Subject must be > 5% of frame in the image reference for clean identity hold.
- Spatial constraints help:
"character on left side, background motion right".
- Simplify if results drift between iterations — drop adjectives, keep core motion description.
character_orientation: "image" caps output at 10s; "video" allows 30s.
Route 3: Lucy Edit Restyle — lightweight identity-stable restyle / outfit swap
Model: decart/lucy-edit/restyle
Use when the edit is localized style modification — outfit swap, scene relight, atmospheric restyle — and identity preservation is critical. Lighter-weight than Wan 2.7 Edit; capped at 720p.
Schema
| Field |
Type |
Required |
Default |
Notes |
prompt |
string |
yes |
— |
Natural-language edit instruction. |
video_url |
string |
yes |
— |
MP4/MOV/WEBM/GIF. |
resolution |
enum |
no |
720p |
720p only on this tier. |
Invoke
Outfit swap:
runcomfy run decart/lucy-edit/restyle \
--input '{
"prompt": "Change outfit to professional business attire; preserve face and motion.",
"video_url": "https://.../subject-walking.mp4"
}' \
--output-dir <absolute/path>
Atmospheric restyle:
runcomfy run decart/lucy-edit/restyle \
--input '{
"prompt": "Make lighting warm and golden hour; preserve face, pose, and motion.",
"video_url": "https://.../subject-portrait.mp4"
}' \
--output-dir <absolute/path>
Prompting tips
- Localized change phrasing wins. "Outfit", "lighting", "background" — pick one bucket.
- Preserve identity goals —
"preserve face and motion" is enough; don't over-specify.
- Avoid total replacement ("astronaut in space" works; "swap subject for a different person" doesn't). Lucy is built for localized style mods, not full character swap.
- No aspect ratio control — output matches input. Cropping happens server-side if you don't pre-match.
Limitations
- Each route inherits its model's limits. Wan 2.7 Edit: 2–10s, 1080p ceiling. Kling: 10s (image orientation) or 30s (video orientation). Lucy: 720p ceiling, no aspect control.
- No multi-route blending. This skill picks one model per call.
- Brand-specific overrides — if the user named a specific model, route to the corresponding brand skill (
wan-2-7) for fuller treatment.
Exit codes
| code |
meaning |
| 0 |
success |
| 64 |
bad CLI args |
| 65 |
bad input JSON / schema mismatch |
| 69 |
upstream 5xx |
| 75 |
retryable: timeout / 429 |
| 77 |
not signed in or token rejected |
Full reference: docs.runcomfy.com/cli/troubleshooting.
How it works
The skill picks one of Wan 2.7 Edit-Video / Kling 2.6 Pro Motion Control / Lucy Edit Restyle based on user intent and invokes runcomfy run <model_id> with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any .runcomfy.net/.runcomfy.com URL into --output-dir. Ctrl-C cancels the remote request before exit.
Security & Privacy
- Token storage:
runcomfy login writes the API token to ~/.config/runcomfy/token.json with mode 0600 (owner-only read/write). Set RUNCOMFY_TOKEN env var to bypass the file entirely in CI / containers.
- Input boundary: the user prompt is passed as a JSON string to the CLI via
--input. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.
- Third-party content: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.
- Outbound endpoints: only
model-api.runcomfy.net (request submission) and *.runcomfy.net / *.runcomfy.com (download whitelist for generated outputs). No telemetry, no callbacks.
- Generated-file size cap: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.