WanV2V: Merge De-Overlap (10x)
The last node before your stitched video becomes a video
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- images
- info
Every stitching workflow needs a finish line, and this is this pack's. After N iterations of WanV2VIterControlGroup → sampler, you have N overlapping IMAGE batches sitting around, each one containing the tail of its predecessor (that was the point of the overlap). WanV2VMergeDeOverlap takes up to ten of them and welds them into one continuous sequence with the duplicated frames gone. The README calls it "seamless." More precisely: it's duplication-free, which is the part that actually matters, and optionally crossfaded, which is polish.
Mechanism first, because it's dead simple. The first batch you plug in (image_1) is kept whole. Every batch after it gets its first overlap_size frames dropped - those are the frames that duplicate the tail of the previous chunk - and then the remainders are concatenated in order. If you used overlap_size: 8 on the chunking side, you use 8 here. Mismatch those and you get either duplicated frames (too small) or dropped content (too large), and it's the kind of bug that doesn't error - it just looks subtly wrong in the final video.
The crossfade is where it gets slightly fancy. With enable_crossfade on, before appending a new chunk the node blends the last crossfade_frames of the accumulated output with the first crossfade_frames of the de-overlapped next chunk. The blend follows the easing curve you pick from interpolation - the menu is linear, ease_in, ease_out, ease_in_out, bounce, elastic, glitchy, and exponential_ease_out - and start_level/end_level (0 to 1) control how deep the blend goes across that window. My take: bounce, elastic and glitchy are there for effect, and glitchy is literally a glitch. For actual video you want linear or ease_in_out. Crossfading is also off by default, and that's fine - a hard de-overlap seam at the right place is usually invisible anyway.
Inputs: overlap_size, enable_crossfade, crossfade_frames, interpolation, start_level, end_level, and the ten image_1 through image_10 slots (all optional, all IMAGE).
Outputs: images, the merged batch, ready to wire straight into VHS_VideoCombine or any video writer. And info, a STRING that reports how many frames went in, how many were dropped, how many were crossfaded, and what came out. Wire it to a text display. If you ever suspect the merge, this string tells you the story before you start hunting through frames.
One hard rule from the source: every input must share the same H/W/C. A 528×944 chunk next to an 832×480 chunk throws an assert, not a graceful message - resize before merging.
Install is the pack standard, no extra dependencies and no model files:
cd ComfyUI/custom_nodes
git clone https://github.com/Kishor900/comfyui-wanv2v-video-stitcher
Restart ComfyUI and it shows up under WanV2vControlnetManager/WAN (ComfyUI Manager: search "ComfyUI WANv2v Video Stitcher").
Troubleshooting, in order of how often people hit it: (1) the resolution assert above - mismatched chunk sizes; (2) overlap mismatch with the chunking side - duplicates or gaps, and info will tell you which; (3) you wired sampler latents in instead of decoded IMAGE batches - the node takes images, so decode first. Keep it simple, match the overlap, and read the info string. That's the whole node, and it's the whole reason the pack works.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| overlap_size | INT | 80–2048 | — |
| enable_crossfade | BOOLEAN | false | — |
| crossfade_frames | INT | 80–2048 | — |
| interpolation | COMBO | 8 options: linear, ease_in, ease_out, ease_in_out, bounce, elastic, +2 | |
| start_level | FLOAT | 0.000–1 | — |
| end_level | FLOAT | 1.000–1 | — |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| info | STRING | — |