ComfyUI Node

Bundle Unpack

Explode a bundle back into individual outputs

By Stibo·Created 5 months ago·Updated 2 months ago· 9
Bundle Unpack
  • bundle
  • bundle
  • value1
  • value2
  • value3
  • value4
  • value5
  • value6
  • value7
  • value8
  • value9
  • value10
  • value11
  • value12
  • value13
  • value14
  • value15
  • value16
  • value17
  • value18
  • value19
  • value20
  • value21
  • value22
  • value23
  • value24
  • value25
  • value26
  • value27
  • value28
  • value29
  • value30
  • value31
  • value32
count1
hide_linksfalse
_slot_names[]

Bundle Pack collapses values into one wire so your graph stays clean in the middle. Bundle Unpack is the other bookend: at the destination, it takes that BUNDLE and explodes it back into up to 32 individual outputs, one per key. You pack once, travel clean, unpack where you actually use the values.

How it works

A required bundle input, then up to 32 value outputs - value1 through value32 - plus the bundle itself passed through unchanged as the first output (handy if you want to keep the bundle flowing after unpacking). The count control sets how many output slots are visible (1–32), and hide_links does the usual wire-hiding for tidiness.

The key detail: output labels are set by renaming the slots, and they must match the keys used when packing. Unpack isn't magic - it reads by label, exactly the same contract as Bundle Pack on the other end. You renamed the Pack slot seed, so you rename this output slot seed and the value lands there. If the labels don't match, the output is None.

Outputs beyond count are None, and any slot whose key isn't in the bundle comes out None rather than erroring. So an Unpack with more slots than the bundle has keys is safe - just full of Nones.

When to use it vs. Bundle Get

If you need most of the bundle's values at the destination, Unpack is the clean move: one node, all the sockets, wire them where they go. If you need exactly one value, Bundle Get is lighter - it reads a single key (with dot notation for nested paths) and outputs just that, without plopping a 32-output node in your graph. Rule of thumb: several values → Unpack, one value → Get.

Install

Part of Nifty Nodes for ComfyUI. Manager: search "Nifty Nodes for ComfyUI" → Install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes

Restart ComfyUI. Pure Python, no models, no special dependencies. The pack is MIT-licensed, v3-API native, and new (v2.1.0, mid-2026) - update it if a workflow references these nodes and ComfyUI doesn't recognize them.

Gotchas

Label matching is the entire failure mode. Pack renames a slot to seed, Unpack must have an output slot renamed seed - case-sensitive, exact. A mismatch gives you a silent None, and since there's no error, you'll debug it by double-clicking labels. Also: Unpack reads the bundle as it arrived at that node. If something downstream of the Pack also modifies the bundle via Bundle Set on a parallel branch, that later copy doesn't retroactively change what this Unpack already unpacked. The bundle is a value that flows forward, like everything else in ComfyUI.

Categorynifty/bundle

Inputs (4)

NameTypeDefaultDescription
bundleBUNDLEThe bundle to unpack.
countINT11–32Number of value outputs to show (1–32). The slot labels must match the keys used when packing.
hide_linksBOOLEANfalseHide the connection wires going out of this node to reduce visual clutter.
_slot_namesSTRING[]

Outputs (33)

NameTypeDescription
bundleBUNDLE
value1*
value2*
value3*
value4*
value5*
value6*
value7*
value8*
value9*
value10*
value11*
value12*
value13*
value14*
value15*
value16*
value17*
value18*
value19*
value20*
value21*
value22*
value23*
value24*
value25*
value26*
value27*
value28*
value29*
value30*
value31*
value32*