Overlapping Image List Splitter (Auto)
Window a long frame sequence into fixed-length, overlapping chunks
- images
- segment_1
- segment_2
- segment_3
- segment_4
- segment_5
- segment_6
Overlapping Image List Splitter (Auto) takes a long IMAGE batch - think a long run of video frames - and carves it into up to six fixed-size, overlapping segments, sliding a window across the sequence. It's the front half of the pack's overlapping workflow: split into windows, process each window, then recombine with Overlapping Image List Merger using the same overlap.
Why would you want overlapping windows? Because a hard cut between processing chunks shows up as a discontinuity, and overlapping windows let a downstream step (an animation pipeline, a temporal filter, a per-window model pass) see context that spans the seam. The "Auto" in the name is that you don't position the windows yourself - you give it a segment size and an overlap, and it slides.
Inputs
images(IMAGE) - the sequence.overlap_count(INT, 1–100, default 6) - frames shared between adjacent segments.segment_size(INT, default 40) - target length of each window.
Outputs are six IMAGE batches, segment_1 through segment_6, because the schema is fixed at six regardless of how many actually fit.
How it works
Step size = segment_size - overlap_count, and the window slides forward by that much each time, producing up to six segments. The last segment clamps to the end of the sequence, and if a final window would be short, it pads by repeating the last frame to reach segment_size. If fewer than six windows fit, the leftover segment_N outputs are filled with all-black placeholder tensors.
That black-padding behavior is the big one to remember: an unconnected or unused segment slot comes out as a black batch, not empty. The merger knows this and skips all-zero segments when recombining, so the round-trip is clean - but if you use a segment output directly, a black one looks like a bug.
The trap
Keep overlap_count strictly less than segment_size. The math (step = segment_size - overlap_count) goes sideways otherwise: with overlap equal to segment size you get a division by zero, and with overlap larger you get negative step math and a pile of black placeholders. Six frames of overlap on a 40-frame window is the sane default; don't push it past half the window.
Also, the segments are contiguous slices of the tensor, so connect them to the merger in order - segment_1 first. Scramble the order and your reconstructed sequence jumps.
Installation
Part of Praveen's ComfyUI Tools. Install via ComfyUI Manager (search "Praveen" / "praveen-tools"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Praveenhalder/praveen-tools
Restart ComfyUI. No extra dependencies or model downloads - torch slicing plus a progress bar, all stock ComfyUI. It's a niche node, but if you're windowing frame sequences for per-window processing, it's exactly the plumbing you'd otherwise hand-roll.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| overlap_count | INT | 61–100 | — |
| segment_size | INT | 40 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| segment_1 | IMAGE | — |
| segment_2 | IMAGE | — |
| segment_3 | IMAGE | — |
| segment_4 | IMAGE | — |
| segment_5 | IMAGE | — |
| segment_6 | IMAGE | — |