ComfyUI Node

Pack

Bundle MODEL, CLIP, VAE, and everything else into one wire

By godmt·Created 2 years ago·Updated about a month ago· 16
Pack
    • PACK

    ComfyUI graphs get messy fast once you're routing MODEL, CLIP, VAE, CONDITIONING, and IMAGE through the same section of a workflow - five wires running in parallel just to carry your standard pipeline through a switch, a subgraph boundary, or a routing node that only handles one socket. Pack solves that by bundling however many differently-typed values you want into a single PACK socket, preserving each one's name, type, and value, so you can send the whole bundle through one wire and split it back out later with Unpack.

    How it works

    This is the third container concept in the pack, and it's genuinely different from both List and PyList. A List and a PyList both hold one type of thing - several strings, several images. A PACK holds several different types at once: connect a MODEL here, a CLIP there, a VAE next to it, and Pack keeps track of which is which. Connect the last empty socket and another appears, the same dynamic-input pattern used by Create List, Create PyList, Merge List, and Exec elsewhere in this pack - except here, unlike Create List, each input keeps its own individual type rather than the whole node locking to one type from the first connection.

    Pack isn't in our list to write about on its own here, but its purpose only makes sense paired with Unpack: connect Pack's output to Unpack, and Unpack grows outputs matching the count and types of whatever's plugged into the Pack, restoring each value under its original type. The README notes Unpack can even trace back through some intermediate nodes - switch-style routers, "Anything Everywhere"-style broadcast nodes - to figure out its output types, as long as the upstream Pack is discoverable through the graph.

    The inputs and outputs that matter

    No fixed inputs in the schema - sockets are entirely dynamic, added as you connect values of any type to the last empty one. The single output is a PACK, a typed container preserving every input's name, type, and value. There's nothing to configure beyond wiring in the values you want bundled; the node has no widgets of its own.

    How to install it

    ComfyUI Manager: search "ComfyUI-List-Utils," install, restart. Or clone directly:

    cd ComfyUI/custom_nodes
    git clone https://github.com/godmt/ComfyUI-List-Utils.git
    

    Restart after. No models, no dependencies beyond what ComfyUI already has - Pack is pure bookkeeping, not computation.

    Common issues & troubleshooting

    Unpack's outputs don't show the types you expect, or show none at all. Unpack needs to actually trace back to a connected Pack to know what types to expose. If there's a node in between that it can't see through - something more exotic than the switch-style or broadcast-style nodes the README mentions - the type inference can fail. The reliable fix is a direct connection from Pack to Unpack, or at minimum keeping the chain short and made of node types Unpack is documented to trace through.

    Only using this to reduce wire clutter, but the graph got harder to debug instead of easier. That's a real tradeoff worth being honest about: a PACK hides what's actually flowing through a wire until you either hover over it or trace it to an Unpack. For a two- or three-value bundle, plain wires are often just as readable and easier to debug at a glance; Pack earns its keep more on wider bundles (five-plus values) or when you're specifically routing through something that can only carry one socket type, like a single-input switch node.

    Wanted to bundle several values of the same type instead. If everything you're bundling is one type - several strings, several images - Create List or Create PyList is the simpler tool; Pack is specifically for carrying different types together.

    Categorylist_utils

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    PACKPACKA List-Utils container that preserves input names, types, and values.