ComfyUI Node

Bundle Pack

Stuff up to 32 named values into one wire and declutter your graph

By Stibo·Created 5 months ago·Updated 2 months ago· 9
Bundle Pack
  • 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
  • bundle
count1
hide_linksfalse
_slot_names[]

Every serious ComfyUI workflow eventually hits the wall where ten values need to travel together and the graph looks like a bowl of spaghetti. Bundle Pack is Nifty Nodes' answer: it packs up to 32 values of any type into a single BUNDLE wire, keyed by name, so one connection carries the whole payload. It's the same itch rgthree's Context nodes scratch, but with named keys and dot-notation nesting instead of fixed slots.

How it works

You connect values into the auto-growing slots (value1, value2, … up to 32), and each slot's renamed label becomes the key. Double-click a slot label, type seed, and from then on that value lives in the bundle under seed. This is the critical bit: the key isn't "value1" forever - it's whatever you rename it to. Keys support dot notation too, so a slot labeled camera.fov nests one level deep and render.output.format goes deeper.

The output is a single bundle socket of type BUNDLE, ready to travel anywhere - into a Bundle Unpack, a Bundle Get, or on to another Pack for merging.

Three controls matter on the node:

  • count - how many value slots to show (1–32). You don't have to display all 32; set it to what you're packing.
  • hide_links - hides the incoming wires on this node. Pure cosmetics, but if you're packing a dozen values, this is the difference between "clean hub" and "octopus."
  • bundle (optional) - an incoming bundle to merge into. New values overwrite keys with the same name; everything else is preserved. This is how you incrementally build up a shared settings object across multiple nodes: one node adds the seed, another adds the dimensions, both merge into the same bundle.

Why you'd reach for it

Two reasons. First, decluttering: settings, prompts, flags, and model names that all need to reach a distant section of graph collapse into one wire. Second, composition: because a bundle is just a dict of named values, you can build it up in stages (Pack → Set → merge) instead of one giant Pack with 20 sockets at the top of your workflow.

Install

It's 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. The bundle nodes are pure Python - no models, no dependencies beyond the pack (which Manager's requirements.txt installs). MIT-licensed, built on the v3 comfy_api.latest API, and new enough (v2.1.0, mid-2026) that updating is recommended.

Gotchas

The contract between Pack and Unpack is the slot label, and it's easy to trip on. The same label must be used on both ends - Pack's renamed slot seed lines up with Unpack's renamed output seed. If you rename on one side but not the other, values quietly misalign (you'll get None on a Get, or values in the wrong output). Also, "hide_links" hides wires visually but changes nothing about data flow - don't panic when wires vanish. And remember, merging via the optional bundle input is an overwrite-on-conflict merge, so order matters: whichever node runs last with a given key wins.

Categorynifty/bundle

Inputs (36)

NameTypeDefaultDescription
countINT11–32Number of value slots to show (1–32).
hide_linksBOOLEANfalseHide the connection wires going into this node to reduce visual clutter.
_slot_namesSTRING[]
bundleoptBUNDLEOptional existing bundle to merge into. New values will be added or overwrite keys with the same name.
value1opt*Value to pack into the bundle. Rename the slot label to set the key name.
value2opt*Value to pack into the bundle. Rename the slot label to set the key name.
value3opt*Value to pack into the bundle. Rename the slot label to set the key name.
value4opt*Value to pack into the bundle. Rename the slot label to set the key name.
value5opt*Value to pack into the bundle. Rename the slot label to set the key name.
value6opt*Value to pack into the bundle. Rename the slot label to set the key name.
value7opt*Value to pack into the bundle. Rename the slot label to set the key name.
value8opt*Value to pack into the bundle. Rename the slot label to set the key name.
value9opt*Value to pack into the bundle. Rename the slot label to set the key name.
value10opt*Value to pack into the bundle. Rename the slot label to set the key name.
value11opt*Value to pack into the bundle. Rename the slot label to set the key name.
value12opt*Value to pack into the bundle. Rename the slot label to set the key name.
value13opt*Value to pack into the bundle. Rename the slot label to set the key name.
value14opt*Value to pack into the bundle. Rename the slot label to set the key name.
value15opt*Value to pack into the bundle. Rename the slot label to set the key name.
value16opt*Value to pack into the bundle. Rename the slot label to set the key name.
value17opt*Value to pack into the bundle. Rename the slot label to set the key name.
value18opt*Value to pack into the bundle. Rename the slot label to set the key name.
value19opt*Value to pack into the bundle. Rename the slot label to set the key name.
value20opt*Value to pack into the bundle. Rename the slot label to set the key name.
value21opt*Value to pack into the bundle. Rename the slot label to set the key name.
value22opt*Value to pack into the bundle. Rename the slot label to set the key name.
value23opt*Value to pack into the bundle. Rename the slot label to set the key name.
value24opt*Value to pack into the bundle. Rename the slot label to set the key name.
value25opt*Value to pack into the bundle. Rename the slot label to set the key name.
value26opt*Value to pack into the bundle. Rename the slot label to set the key name.
value27opt*Value to pack into the bundle. Rename the slot label to set the key name.
value28opt*Value to pack into the bundle. Rename the slot label to set the key name.
value29opt*Value to pack into the bundle. Rename the slot label to set the key name.
value30opt*Value to pack into the bundle. Rename the slot label to set the key name.
value31opt*Value to pack into the bundle. Rename the slot label to set the key name.
value32opt*Value to pack into the bundle. Rename the slot label to set the key name.

Outputs (1)

NameTypeDescription
bundleBUNDLE