Nodes/Orion4D_MetaNode/πŸ“€ List Unpacker (Dynamic)
ComfyUI Node

πŸ“€ List Unpacker (Dynamic)

Split one list into 32 real wires

By orion4dΒ·Created 5 months agoΒ·Updated 5 months agoΒ· 5
πŸ“€ List Unpacker (Dynamic)
  • list_in
  • item_1
  • item_2
  • item_3
  • item_4
  • item_5
  • item_6
  • item_7
  • item_8
  • item_9
  • item_10
  • item_11
  • item_12
  • item_13
  • item_14
  • item_15
  • item_16
  • item_17
  • item_18
  • item_19
  • item_20
  • item_21
  • item_22
  • item_23
  • item_24
  • item_25
  • item_26
  • item_27
  • item_28
  • item_29
  • item_30
  • item_31
  • item_32

This is the mirror image of the List Packer, and you'll usually install the pair even if you only reach for one. Where the Packer gathers scattered wires into a single Python list, the List Unpacker takes one list in on list_in and fans it out into up to 32 individual item_N outputs - each one a separate wire you can route to a specific consumer.

Why would you want that? Because ComfyUI's wiring is positional and inflexible. A list is a nice compact bundle, but the moment you want to feed element #3 to one node and element #7 to another, you can't "index into" a wire. The Unpacker gives you real, addressable outputs: item_1, item_2, … item_32, each carrying one element.

How it works

The Python side is deliberately simple. On execution it takes whatever arrives on list_in:

  • If it's already a list, it walks the first 32 elements.
  • If it's a single value that isn't a list, it wraps it in [value] - so a bare string or image still comes out on item_1.
  • If the list is shorter than 32, the unused outputs return None rather than erroring.

That last behavior is worth knowing. The node is capped at 32 outputs to keep ComfyUI responsive - the pack's README is explicit that this is a performance choice, not an arbitrary number. And the None padding means you can wire all 32 outputs downstream and only the ones that got a real value will do anything meaningful.

Inputs and outputs

  • Input: list_in (type *) - a Python list, or a single value that will be treated as a one-element list.
  • Outputs: item_1 through item_32 (type * each).

There are no widgets to configure. Connect, run, done.

When it shines

The classic pairing is Packer β†’ Unpacker as a "bus": bundle things on one side of a complex graph, carry one wire across, and fan out on the other side instead of dragging a dozen long connections through the middle of your workflow. It's also the natural way to pull results out of any node that returns a list - for instance a PyCodeMax script that computed a batch of values, or this pack's own List Selector Max if you're dealing with raw list output and want to address elements individually.

Troubleshooting

  • Unwired or short outputs give None, not an error. Downstream nodes that can't handle None will throw on their end, so mute or bypass them, or check what actually landed before wiring everything.
  • Position is everything. item_5 is the fifth element of the input list, regardless of what it contains. If you unpack a list whose order you don't control, log it first with this pack's Logger node (πŸ–¨οΈ Logger) to see what's actually in each slot.
  • 32 is the ceiling. Longer lists get silently truncated; if you need more, split the list upstream.

Installing it

Same story as every node in this pack - it ships inside Orion4D_MetaNode:

cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Orion4D_MetaNode

Or search "Orion4D_MetaNode" in ComfyUI Manager. Restart, and you'll find it under Orion4D_MetaNode β†’ Utils. No extra dependencies - the pack's requirements (numpy, Pillow, torch, opencv-python) are all things ComfyUI already has. One honest caveat: this is a small, young, one-author pack with little community signal behind it, so treat it as a handy utility rather than a standard you'll see in every shared workflow.

CategoryOrion4D_MetaNode/Utils

Inputs (1)

NameTypeDefaultDescription
list_in*β€”

Outputs (32)

NameTypeDescription
item_1*β€”
item_2*β€”
item_3*β€”
item_4*β€”
item_5*β€”
item_6*β€”
item_7*β€”
item_8*β€”
item_9*β€”
item_10*β€”
item_11*β€”
item_12*β€”
item_13*β€”
item_14*β€”
item_15*β€”
item_16*β€”
item_17*β€”
item_18*β€”
item_19*β€”
item_20*β€”
item_21*β€”
item_22*β€”
item_23*β€”
item_24*β€”
item_25*β€”
item_26*β€”
item_27*β€”
item_28*β€”
item_29*β€”
item_30*β€”
item_31*β€”
item_32*β€”