Wan - 2-6-flash-video-to-video
Three clips in, one new clip out
- video_1
- video_2
- video_3
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Video-to-video means you already have footage and you want it changed - restyled, re-shot, re-clothed, extended into something new. KIE's Wan 2.6 Flash tier gives you that as an API call, and the wrapper takes up to three source clips as native VIDEO sockets, which is the part that makes it usable from inside a graph rather than a browser tab.
This is the place to be clear-eyed about the architecture question. Locally in 2026 this job belongs to Bernini (built on Wan 2.2) or VACE; both are open weights, both are slow, and Bernini's editing runs roughly double the compute of an equivalent generation because your source video becomes part of the model's input sequence. On KIE you skip the compute and pay per second instead. Neither is free, one is faster to set up.
How it works
prompt is required - it's the instruction describing what should change. video_1, video_2 and video_3 are optional VIDEO sockets, the pack's version of KIE's plural video-reference array (VIDEO and AUDIO have no universal batch socket in ComfyUI, so the pack exposes numbered ones instead of asking you to paste URL JSON). duration is a string enum of 5 or 10, resolution is 1080p or 720p, and multi_shots toggles single-take versus cut-together output.
The node converts each connected video to a temp MP4, uploads them, POSTs to /api/v1/jobs/createTask with marketplace model wan/2-6-flash-video-to-video, polls /api/v1/jobs/recordInfo, then downloads the result into ComfyUI/output/KIE-Results/videos and returns a native VIDEO.
Inputs that matter
prompt- describe the transformation, not the footage. "The video drinks milk tea while doing some improvised dance" is the shipped example, and note the style: you're telling the model what should happen, not captioning what's there.video_1alone is the normal case. The extra sockets exist for multi-clip references.duration-5or10. Short.audio- a boolean, off by default. Sound is priced separately by KIE.multi_shots- off. On, it composes several shots with transitions.resolution-1080pdefault. Draft at720p.
Outputs
video is the result; feed it to a save node or to another video node if you're chaining a second edit. url, all_urls_json, task_id, raw_json, credits_consumed, credits_left are the plumbing - task_id for a job you need to chase, the credits pair for knowing what the edit cost (also printed on the node as a receipt after each run).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt
Restart, then find it under KIE Next / Video / Wan. No checkpoints, no LoRAs, no local compute - the dependency list is requests, Pillow, numpy, PyYAML, because all the pack does is upload, submit, wait, download.
API key, once: Settings → KIE.ai Nodes Next → Connection, paste it, and KIE validates before the key is stored. You'll see ✅ CONNECTED and a masked fingerprint. KIE_API_KEY works for servers and outranks the saved key. KIE is a credit marketplace - pre-pay, no subscription, spendable across every model in their catalog.
Common issues
The output ignores your instruction. V2V edits live and die on the prompt reading as a change, not a caption. Also check multi_shots isn't on and mangling the take.
Your clip is rejected or truncated. Duration is capped at 5 or 10 seconds in this endpoint's schema; trims and lengths outside that get handled by the provider, not by you.
Upload problems on odd containers. The pack writes source video to a temp MP4 via ComfyUI's own video API, which needs a reasonably current ComfyUI. Update if the upload step errors before anything reaches KIE.
Timed out. timeout_seconds is 1200 by default. Editing jobs queue behind generations; raise it.
Nothing visible. Attach a preview/save - this returns a VIDEO and isn't an output node.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The video drinks milk tea while doing some improvised dance moves to the music. | Text prompts for video generation. Supports both Chinese and English, with a minimum of 2 characters and a maximum of 5,000 characters. (Max length: 1500 characters) |
| video_1opt | VIDEO | — | |
| video_2opt | VIDEO | — | |
| video_3opt | VIDEO | — | |
| durationopt | COMBO | 5 | The duration of the generated video in seconds |
| resolutionopt | COMBO | 1080p | Video resolution tier |
| multi_shotsopt | BOOLEAN | false | The multi shots parameter controls the shot composition style during AI video generation, determining whether the generated video is a single continuous shot or multiple shots with transitions. (Boolean value (true/false)) |
| nsfw_checkeropt | BOOLEAN | false | Defaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements. |
| audioopt | BOOLEAN | false | Whether to generate video with audio. Audio directly affects the cost, as the pricing differs between videos with sound and silent videos. (Boolean value (true/false)) |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |