Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Region edits across video frames on RunComfy via the `runcomfy` CLI — remove an object that appears across many frames, clean up wires or watermarks, replace a region with matching motion. Routes across Wan 2-7 edit-video (default, prompt-driven region edits with spatial language), Lucy Edit Restyle (identity-stable region-aware restyle), and Seedream 4-0 edit-sequential (when treating the clip as a frame stack). Picks the right route based on whether the change is prose-driven, identity-locked,
.claude/skills/aiskillstore-video-inpainting/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 125% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 29% | 0% |
Region edits across video frames — remove an object that appears across many frames, clean up wires or watermarks, replace a region with motion that matches the rest of the clip. This skill routes across the prompt-driven video edit endpoints in the RunComfy catalog and gives the agent a clear default for each intent.
runcomfy.com · Wan 2-7 edit-video · CLI docs
bash# 1. Install (see runcomfy-cli skill for details) npm i -g @runcomfy/cli # or: npx -y @runcomfy/cli --version # 2. Sign in runcomfy login # or in CI: export RUNCOMFY_TOKEN=<token> # 3. Edit a video (closest CLI-reachable approach) runcomfy run wan-ai/wan-2-7/edit-video \ --input '{"video_url": "...", "prompt": "..."}' \ --output-dir ./out
CLI deep dive: runcomfy-cli skill.
Routes via prompt-driven region edits — the model resolves the targeted region from spatial language across all frames.
Wan 2-7 Edit-Video — wan-ai/wan-2-7/edit-video (default) > Wan 2-7's video edit endpoint. Drive frame-by-frame edits via prompt + the source video. > Pick for: "remove the watermark in the bottom-right", "replace the sky with a sunset" — prompt-driven region intent without an explicit mask. > Avoid for: precise pixel-level region targeting — use a ComfyUI workflow.
Lucy Edit Restyle — decart/lucy-edit/restyle > Identity-stable video restyle that handles region-aware edits. > Pick for: lightweight outfit / object swap that needs to track across frames. > Avoid for: surgical mask-driven inpaint — ComfyUI workflow.
Seedream 4-0 Edit-Sequential — bytedance/seedream-4-0/edit-sequential > Sequential still edits — feed a sequence of frames as inputs, apply the same edit instruction across each, useful if you're treating the video as a frame stack. > Pick for: short, low-frame-rate sequences where each frame can be edited independently and a separate tool re-encodes to video. > Avoid for: long clips, motion-coherent fills — temporal consistency degrades.
Model: wan-ai/wan-2-7/edit-video Catalog: Wan 2-7 edit-video
bashruncomfy run wan-ai/wan-2-7/edit-video \ --input '{ "video_url": "https://your-cdn.example/source.mp4", "prompt": "Remove the watermark in the bottom-right corner across all frames. Preserve all other content exactly. Match background where the watermark was." }' \ --output-dir ./out
"bottom-right corner", "the cables overhead", "the second person from the left"."Preserve all other content exactly" — without this Wan may restyle frames inadvertently.For broader video edit, see video-edit.
The endpoints above are prompt-driven — they resolve the target region from spatial language. For pixel-precise mask propagation with SAM2 segmentation tracking + temporal-aware inpaint backfill, RunComfy hosts dedicated ComfyUI workflows:
| Need | Workflow class | |---|---| | LTX 2-3 video inpaint (targeted frame editing) | ltx-2-3-inpaint-in-comfyui-targeted-video-frame-editing | | Flux inpainting (still) — chain frame-by-frame | comfyui-flux-inpainting-workflow | | Flux ControlNet inpainting | flux-controlnet-inpainting-image-repair | | Wan 2-2 video edit (broader video edit including inpaint) | search comfyui-workflows for "wan 2-2 edit" |
These are GUI workflows, not CLI endpoints. The CLI can't reach them — open them in the RunComfy ComfyUI cloud for proper mask propagation + temporal consistency.
"remove the person walking in the background, fill with matching environment".image-inpainting.video-outpainting.video-edit.wan-models collection| 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.
The skill picks Wan 2-7 Edit-Video (default for prompt-driven region edits) or one of the alternatives based on whether the user needs identity-locked restyle or frame-stack treatment. The CLI POSTs to the Model API, polls request status, and downloads the result into --output-dir.
npm i -g @runcomfy/cli or npx -y @runcomfy/cli. Agents must not pipe an arbitrary remote install script into a shell on the user's behalf.runcomfy login writes the API token to ~/.config/runcomfy/token.json with mode 0600. Set RUNCOMFY_TOKEN env var in CI / containers.--input. The CLI does not shell-expand prompt content. No shell-injection surface.model-api.runcomfy.net and *.runcomfy.net / *.runcomfy.com. No telemetry.Bash(runcomfy *) only.runcomfy-cli — the underlying CLIvideo-edit — full video-edit router (Wan 2-7, Kling motion, Lucy Edit)image-inpainting — mask-driven still inpaintingvideo-outpainting — extending video canvasai-video-generation — general t2v / i2v| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 9,899 | 3,798 | -62% | 1 | 1 | 0% | 1,883 | 3,382 | +80% | 0 | 0 | — |
case-01 | fail→pass | 7,870 | 3,542 | -55% | 1 | 1 | 0% | 1,480 | 3,335 | +125% | 0 | 0 | — |
case-02 | fail→pass | 11,326 | 4,780 | -58% | 1 | 1 | 0% | 1,918 | 3,641 | +90% | 0 | 0 | — |
case-04 | fail→pass | 9,160 | 5,624 | -39% | 1 | 1 | 0% | 1,540 | 3,203 | +108% | 0 | 0 | — |
case-05 | fail→pass | 15,880 | 4,173 | -74% | 1 | 1 | 0% | 2,685 | 3,470 | +29% | 0 | 0 | — |
case-06 | fail→pass | 12,962 | 4,431 | -66% | 1 | 1 | 0% | 2,152 | 3,439 | +60% | 0 | 0 | — |
case-07 | pass→pass | 9,397 | 2,981 | -68% | 1 | 1 | 0% | 1,398 | 3,203 | +129% | 0 | 0 | — |
case-08 | pass→pass | 10,326 | 4,445 | -57% | 1 | 1 | 0% | 1,676 | 3,445 | +106% | 0 | 0 | — |
case-09 | fail→pass | 7,556 | 2,619 | -65% | 1 | 1 | 0% | 1,394 | 3,154 | +126% | 0 | 0 | — |
case-10 | fail→pass | 7,660 | 2,038 | -73% | 1 | 1 | 0% | 1,331 | 3,038 | +128% | 0 | 0 | — |
case-11 | pass→pass | 10,379 | 3,156 | -70% | 1 | 1 | 0% | 1,742 | 3,232 | +86% | 0 | 0 | — |
case-12 | pass→pass | 9,620 | 6,894 | -28% | 1 | 1 | 0% | 1,741 | 3,919 | +125% | 0 | 0 | — |
case-13 | fail→pass | 6,740 | 3,193 | -53% | 1 | 1 | 0% | 1,238 | 3,055 | +147% | 0 | 0 | — |
case-14 | fail→pass | 11,703 | 3,850 | -67% | 1 | 1 | 0% | 2,219 | 2,923 | +32% | 0 | 0 | — |
case-15 | fail→pass | 10,405 | 1,121 | -89% | 1 | 1 | 0% | 1,759 | 2,830 | +61% | 0 | 0 | — |
case-16 | pass→pass | 11,483 | 5,294 | -54% | 1 | 1 | 0% | 2,104 | 3,511 | +67% | 0 | 0 | — |
case-17 | fail→pass | 13,954 | 5,423 | -61% | 1 | 1 | 0% | 2,492 | 3,665 | +47% | 0 | 0 | — |
case-18 | fail→pass | 16,130 | 11,008 | -32% | 1 | 1 | 0% | 2,693 | 4,539 | +69% | 0 | 0 | — |
case-19 | fail→pass | 6,681 | 2,245 | -66% | 1 | 1 | 0% | 1,086 | 3,015 | +178% | 0 | 0 | — |
case-20 | fail→pass | 11,231 | 4,725 | -58% | 1 | 1 | 0% | 2,002 | 3,478 | +74% | 0 | 0 | — |
case-21 | fail→pass | 15,942 | 5,009 | -69% | 1 | 1 | 0% | 2,956 | 3,543 | +20% | 0 | 0 | — |
case-22 | pass→pass | 8,660 | 5,139 | -41% | 1 | 1 | 0% | 1,516 | 3,703 | +144% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +73 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.