EzFlex-SplitList
Taking the list back apart, one port per item
- list
- item0
- item1
- item2
- item3
- item4
- item5
- item6
- item7
- item8
- item9
- item10
- item11
- item12
- item13
- item14
- item15
EzFlex-SplitList is the inverse of EzFlex-MergeList, and it's a small node: one input, list (a * port you must wire - it's forced to input, so you can't type a list in), and sixteen outputs, item0 through item15. Item i of the list goes out port i. Anything past the end of the list comes out as nothing at all.
That last sentence is the design, not a bug, and it's the thing to remember. If your merged list has three items and something is wired to item7, that wire carries no value. Optional downstream inputs treat that the same as "not connected" and quietly skip; a node that needs a real tensor there will error at execution time, and the error will name the node downstream, not this one.
Why you need both halves
Lists are how you escape the one-round-only limit of the EzFlex loop. EzFlex-MergeList collects the loop's products into one growing list; LoopEnd carries that list forward and returns it whole on the final round. But a list is not a deliverable - you can't click "save" on a list. So you split it back: item0 is segment one's video, item1 is segment two's, and each one feeds the node that actually wants it (a save node, a joiner, a second refinement pass on the tail).
The complement is the "itinerary" pattern from the other direction; you merge a list of per-segment prompts or durations, then hand item_i to the round whose index is i, so one body serves six different segments. Same idea, applied to inputs instead of outputs. The author's own note on the pair is the sentence to keep: MergeList is N→1, SplitList is 1→N, and if you want a straight pass-through without either, that's EzFlex-Reroute.
The port count is driven by the panel - outputs are added as needed, always keeping at least one, and unconnected ports stay out of the way without a black label cluttering the node.
Install
It ships in the EzFlex pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/blackbossokok/Comfyui-EzFlex-Presets
# restart ComfyUI, or install via Manager with the search term "EzFlex"
mutagen is the only extra Python dependency (pip install -r requirements.txt), and there are no model downloads. ComfyUI 0.3.13 or newer.
Troubleshooting
- A port outputs nothing while the list clearly has items. You're past the end of the list. Check how many items the merged list really contains - a hole in the upstream wiring shows up here as a shorter list, since
EzFlex-MergeListskips unwired ports instead of padding them. - Type errors downstream. The node hands out list items untouched; each port inherits the item's own type. If item 4 is a string and you expected a latent, the mistake was made upstream when the list was merged.
- The list arrives as one item instead of many. Something upstream is passing a single value rather than a list - MergeList only flattens real lists and tuples, and appends everything else as one item.
- You want the segments joined again. Splitting is the wrong tool: keep them in the list and feed the list to a joiner, or use the pack's
EzFlex-MediaOutin group mode, which merges multiple images into one batch tensor and refuses to guess when the types or sample rates don't match.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| list | * | Any ComfyUI list value (for example the output of EzFlex-MergeList). |
Outputs (16)
| Name | Type | Description |
|---|---|---|
| item0 | * | — |
| item1 | * | — |
| item2 | * | — |
| item3 | * | — |
| item4 | * | — |
| item5 | * | — |
| item6 | * | — |
| item7 | * | — |
| item8 | * | — |
| item9 | * | — |
| item10 | * | — |
| item11 | * | — |
| item12 | * | — |
| item13 | * | — |
| item14 | * | — |
| item15 | * | — |