Overlapping Image List Merger (Auto)
The stitch that puts an overlapping frame sequence back in order
- segment_1
- segment_2
- segment_3
- segment_4
- segment_5
- segment_6
- merged_images
Overlapping Image List Merger (Auto) is the "undo" half of this pack's overlapping-split workflow. Its sibling, Overlapping Image List Splitter, chops a long image sequence into sliding windows with a fixed overlap; this node takes those windows and puts the sequence back together so you don't get duplicated frames at the seams. Think of it as de-duplicating a video frame batch that was windowed for processing.
You'd reach for this when something downstream needs fixed-length, overlapping chunks - say you're feeding frame windows into a per-window processor and then reconstructing the full clip. The whole point of the overlap is that the seam between chunks isn't a hard cut, and the merger honors that by dropping the shared frames.
What you actually set
The only required input is overlap_count (INT, 1–100, default 6). That number has to match the overlap_count you used on the splitter, full stop. Get it wrong and you'll either duplicate frames or drop real ones - both look like the output is "jumping." The segment_1 through segment_6 inputs are all optional IMAGEs, which makes the node forgiving: leave unconnected inputs empty and it just ignores them.
Output is a single merged_images IMAGE batch, in the order you connected the segments.
How it works
The mechanism is plain concatenation with one clever filter: it checks each segment for all-zero content and skips any that are pure black. That matters because the splitter pads unused segment slots with black placeholder tensors - without the filter, you'd inject a block of black frames into the middle of your sequence. Then, for every segment after the first, it slices off the first overlap_count frames (the part that already appeared at the tail of the previous segment) and concatenates the rest.
So the arithmetic is: merged = seg1 + seg2[overlap:] + seg3[overlap:] + ...
Gotchas
- Keep
overlap_countsmaller than the segment size, and ideally identical between splitter and merger. - The black-segment filter is a blunt instrument: if a legitimate segment of yours is genuinely all black (a fade-to-black shot), the merger will silently drop it. Rare, but worth knowing when you're debugging a missing chunk.
- All connected segments must share the same frame dimensions, or
torch.catwill throw. If you processed segments at different resolutions, resize before merging.
Honest take: for a plain batch that was never windowed, a bare concatenate node does the same job. This one earns its keep specifically with the splitter, where the overlap bookkeeping lives. It's part of Praveen's ComfyUI Tools, a small solo utility pack that installs with zero extra dependencies.
Installation
Install the pack via ComfyUI Manager (search "Praveen" or "praveen-tools"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Praveenhalder/praveen-tools
Then restart ComfyUI. No models to download, no requirements to pip install - it's pure PyTorch/Pillow/NumPy, all of which ship with ComfyUI.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| overlap_count | INT | 61–100 | — |
| segment_1opt | IMAGE | — | |
| segment_2opt | IMAGE | — | |
| segment_3opt | IMAGE | — | |
| segment_4opt | IMAGE | — | |
| segment_5opt | IMAGE | — | |
| segment_6opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| merged_images | IMAGE | — |