Nodes/Praveen's ComfyUI Tools/Overlapping Image List Merger (Auto)
ComfyUI Node

Overlapping Image List Merger (Auto)

The stitch that puts an overlapping frame sequence back in order

By Praveenhalder·Created about a year ago·Updated 6 months ago· 2
Overlapping Image List Merger (Auto)
  • segment_1
  • segment_2
  • segment_3
  • segment_4
  • segment_5
  • segment_6
  • merged_images
overlap_count6

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_count smaller 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.cat will 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.

Categoryimage/list

Inputs (7)

NameTypeDefaultDescription
overlap_countINT61–100
segment_1optIMAGE
segment_2optIMAGE
segment_3optIMAGE
segment_4optIMAGE
segment_5optIMAGE
segment_6optIMAGE

Outputs (1)

NameTypeDescription
merged_imagesIMAGE