WAN Video Blender ποΈπ ’π
Sewing Wan clips together without the seam
- video_1
- video_2
- blended_video_frames
The Wan side of Steerable Motion doesn't make one long video. It makes one video per image pair, and you're left holding a folder of segments that are supposed to read as a single continuous clip. WAN Video Blender ποΈπ ’π is the stitch. It takes two videos (as IMAGE batches), cross-fades the tail of the first into the head of the second, and hands you back one smooth timeline.
What it does
Three inputs: video_1, video_2, and overlap_frames (default 10). The node resizes video_2 to match video_1's resolution (Lanczos, so it won't look like a cheap nearest-neighbor job), takes the last overlap_frames of video_1 and the first overlap_frames of video_2, and blends them with a linear alpha ramp - video_1 fades out as video_2 fades in. The output, blended_video_frames, is the first video minus its blended tail, plus the blend, plus the second video minus its blended head. No hard cut, no duplicated frames, just a cross-dissolve where they meet.
If either video is shorter than overlap_frames, the node throws a ValueError rather than silently producing garbage - which is more courtesy than most ComfyUI nodes offer.
Why you'd reach for it
In the pack's Vace_Travel.json workflow, each Wan generation takes an anchor image plus a continuation and produces a new chunk. Chain those chunks and you have an "endless" travel between images - the author's own pitch for it. But chain them naively and every join is a visible jump. The blend is what makes the chain feel like a single camera move.
The overlap_frames you set here should match the overlap you actually generated with - in practice, the frames the continuation reused from the previous clip. Set it to the same number and the blend happens exactly where the model already re-rendered the same content, which is the only place a cross-fade looks invisible.
The catch nobody tells you
A cross-fade blends two looks; it can't reconcile them. If the second VACE generation drifted the palette - and VACE colour shift is a real, frequently-posted pain point - the blend just eases from one wrong colour to the next. That's precisely why this pack ships VideoContinuationGenerator alongside it: that node produces the masks that tell VACE which frames are known and shouldn't be re-coloured in the first place. Use the two together, not the blender as a band-aid over drift. And if you blend two clips with very different framerates or pacing, the fade reads as a slow-motion pause, so keep the surrounding segment lengths similar.
Install
Nothing special beyond the pack: ComfyUI Manager β search "Steerable Motion", or git clone https://github.com/banodoco/steerable-motion into ComfyUI/custom_nodes/ and restart. The repo itself only requires matplotlib. The real dependency is on the workflow side - the Wan nodes (WanVideoModelLoader, WanVideoVACEEncode, the sampler) come from Kijai's ComfyUI-WanVideoWrapper, which you'll get prompted to install when you load Vace_Travel.json. That's where the heavy model downloads live, and that's where your VRAM goes. Blender itself is just torch math - it's the Wan pipeline around it that eats your GPU.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| overlap_frames | INT | 101β1000 | β |
| video_1 | IMAGE | β | |
| video_2 | IMAGE | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| blended_video_frames | IMAGE | β |