Image Batch Interleave Split
The same reorder, but as a list you can loop over
- images
- image_batch_list
Image Batch Interleave reorders a batch and hands you back one big tensor. Image Batch Interleave Split does the same reorder but hands you back a list of batches - one per position, each containing one frame from every group. Same transpose, different delivery, and the delivery is what makes this the more useful half of the pair.
Think about what that gives you. If your XYZ workflow produced a batch where n_groups frames belong together at each step, the split version unpacks it into a list where each element is the "this position across all groups" batch. That's precisely the shape a map-style or per-item loop wants to chew on - process each position's group, then reassemble. It's the batch equivalent of "give me rows, not the whole spreadsheet." The source does the identical reshape-and-transpose as the non-split node, then slices the transposed tensor into a Python list of (n_groups, H, W, C) batches instead of flattening it back.
The outputs are declared as a list, which is the tell: this node is built for iteration. Each list element is a well-formed IMAGE batch (n_groups frames), so it plugs into normal image nodes or loop consumers. With n_groups = 1 it degenerates to "split the batch into single frames," which is a handy one-liner for getting a plain list of images.
Inputs and outputs that matter
- images (in) - the batch to reorder and split.
- n_groups (in) - how many frames belong together per output batch, default 3, range 1–1000.
- image_batch_list (out) - a list of IMAGE batches, one per position.
Same truncation rule as its sibling: if the frame count isn't divisible by n_groups, the tail is cut off (with a console warning) rather than erroring.
Installing it
Part of wenchengxiang/ComfyUI-Practical-Tools. ComfyUI Manager → Custom Nodes Manager → search "ComfyUI-Practical-Tools" → Install → restart. Or clone:
cd ComfyUI/custom_nodes
git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools
and restart. No pip install, no requirements, no models - pure Python.
Issues and gotchas
Watch the divisibility trap again: a batch that isn't a clean multiple of n_groups quietly loses its tail frames. And keep in mind the output is a list, so it only connects to list-aware or * sockets - if you try to plug it straight into a plain IMAGE input you'll get a type mismatch, and the fix is to think about whether you want the split (list) or the flattened (interleave) version instead. Choose the right one and this is the node that turns an unmanageable XYZ batch into something a loop can actually eat.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| n_groups | INT | 31–1000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_batch_list | IMAGE | — |