FL Wan Video Blender 3-Way
Cross-fade three Wan clips into one continuous take
- video_1
- video_2
- video_3
- blended_video_frames
Wan tops out around 81 frames per generation - call it 5 seconds at 16fps - and every longer video you've seen made with it is really several separate clips stitched together. The classic community fix is last-frame-to-first-frame chaining: generate clip one, grab its last frame, use it as the starting image for clip two, and so on. That gets you continuity of content, but the cut between clips is still a hard cut unless you smooth it. FL_WanVideoBlender3Way is that smoothing step for the specific shape most people actually generate: an input clip, a middle "continuation" clip, and an end clip.
How it works
It's a straight cross-fade, not an AI reconciliation step - don't expect it to fix a case where your three clips genuinely disagree on lighting or a character's face. What it does is take the last overlap_frames of clip one and dissolve them into the first overlap_frames of clip two, then do the same between clip two and clip three, so instead of two visible jump-cuts you get two smooth dissolves. All three clips get resized to match video_1's resolution first, so mismatched output sizes between generations won't break the blend (though a genuinely different aspect ratio will stretch, not letterbox).
This is the same basic trick the wider Wan community has leaned on for the "5-second problem" since Wan 2.1 - parallel or sequential clip generation, then stitched with an overlap dissolve to hide the seam. Fill-Nodes just packages it as one node instead of a manual crossfade you'd build yourself with opacity masks.
The inputs and outputs that matter
Four inputs, all required, and the tooltips are the author's own so trust them over guessing:
video_1(IMAGE) - "First video (reference resolution) - typically your input/start video." Everything else gets resized to match this one.video_2(IMAGE) - "Second video (middle/continuation)... will be resized to match video_1."video_3(IMAGE) - "Third video (end)... will be resized to match video_1."overlap_frames(INT, default 10, range 1–1000) - "Number of frames to blend at each transition point using cross-fade." This is the one knob you'll actually tune. Too few frames and the dissolve is still an obvious cut; too many and you eat into the unique content of each clip (the cross-fade happens within the overlap, so it doesn't extend total length - it consumes it).
One output: blended_video_frames (IMAGE) - the full three-clip take, ready for your video-save node.
How to install it
Through ComfyUI Manager: search ComfyUI_Fill-Nodes (or Fill-Nodes), install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
This particular node is a plain image-tensor blend - no model weights to download, no extra Python dependencies beyond what the rest of the (large) pack already needs.
Common issues & troubleshooting
overlap_frames bigger than a clip. If a clip is shorter than the overlap window you asked for, there's nothing left to cross-fade against - keep overlap_frames comfortably smaller than your shortest input clip (an 81-frame Wan generation with a 10-frame default overlap is fine; don't push it toward 40+ on the same clip).
The seam still looks bad. A cross-fade only hides motion discontinuity, not identity drift. If your middle clip's character looks subtly different from the input clip - a known Wan failure mode when you regenerate rather than chain from a shared last frame - no amount of overlap will paper over it convincingly. Fix the source generations (shared seed, shared LoRA, last-frame-to-first-frame chaining) before reaching for a bigger blend window.
Total length is shorter than you expected. Each transition consumes overlap_frames from the total (two transitions here, since it's three clips), so the output is shorter than the sum of your three inputs. Plan your target duration with that subtraction in mind.
Resolution mismatch stretches instead of crops. Since video_2 and video_3 are resized - not cropped - to match video_1, an end clip generated at a different aspect ratio than your input will look distorted rather than cut off. Regenerate at matching dimensions if that happens.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| overlap_frames | INT | 101–1000 | Number of frames to blend at each transition point using cross-fade. |
| video_1 | IMAGE | First video (reference resolution) - typically your input/start video. | |
| video_2 | IMAGE | Second video (middle/continuation) - will be resized to match video_1. | |
| video_3 | IMAGE | Third video (end) - will be resized to match video_1. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| blended_video_frames | IMAGE | — |