Split List ♾️Mixlab
Break a list into chunks, with optional overlap
- A
- B
Plumbing node. Split List takes a list of anything and breaks it into fixed-size chunks - give it 100 frames and a chunk size of 10, get ten groups of ten. It's the kind of node you don't seek out on purpose; you reach for it when a downstream step can only handle so many items at once, or you want to process a long sequence in batches instead of all in one memory-hungry gulp.
The obvious pairing is video and frame work - grab a big IMAGE list, chunk it, run each chunk through a sampler or an encode, then recombine. It mirrors the transition_frames idea from the pack's video-segment node: you can carry a little overlap between chunks so a downstream blend has a seam to work with.
How it works
It's generic. The input is typed as "any," so it doesn't care whether you're feeding images, latents, strings, or masks - it just slices the list. You set the chunk size, optionally an overlap size, and optionally an index to pull one specific chunk instead of all of them. The output is itself a list, so downstream nodes iterate over the chunks the normal ComfyUI way.
Inputs and outputs
chunk_size(INT, default10) - how many items per chunk. Your main dial. Match it to whatever the downstream step can comfortably swallow at once.transition_size(INT, default0) - overlap between adjacent chunks, in items. Leave at0for clean, non-overlapping splits; raise it if you need shared items at chunk boundaries (useful for blended video segments).index(INT, default-1) - which chunk to return.-1returns all of them; set a specific index to grab just chunk N, which is handy for stepping through a long sequence one batch at a time.A(*, optional) - the list to split. It accepts any type.
The output is B (*, a list) - the chunk(s). Because it's a wildcard type, it comes out as whatever you put in, chunked. Wire it into whatever consumes the items.
How to install it
Ships with the Mixlab pack.
- ComfyUI Manager: search
comfyui-mixlab-nodes, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/shadowcz007/comfyui-mixlab-nodes.git, install requirements (install.baton Windows or../../../python_embeded/python.exe -s -m pip install -r requirements.txt), restart.
Common issues
Got one chunk when I wanted all (or vice versa): it's the index. -1 gives you every chunk; any other value pulls just that one. This trips people who leave it at a stray value and wonder where their other chunks went.
Type won't connect downstream: the wildcard * is flexible on this node's side, but the receiving node still has to accept the actual type you're passing. If you chunked a list of latents, the next node needs to accept latents. The * doesn't magically convert anything - it just means Split List doesn't restrict what you feed it.
Overlap isn't doing anything visible: transition_size only matters if a downstream step actually uses the overlapping items (e.g. a blend). For plain batched processing you usually want it at 0 - overlap just duplicates work otherwise.
It's a utility, not a result: on its own Split List does nothing you can see. Its value is entirely in letting a downstream node process a big list in manageable pieces. If you're not hitting a batch-size or memory limit, you may not need it at all.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| chunk_size | INT | 10 | — |
| transition_size | INT | 0 | — |
| index | INT | -1 | — |
| Aopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| B | * | — |