Visual Node Bag (Studio Leiel)
Fold your finished nodes into chips — without touching the graph
Most of your workflow is finished. The loaders were wired months ago, the sampler chain hasn't changed in weeks, and none of it needs looking at again - but it's still on screen, taking up room and dragging wires across whatever you're actually working on. The usual fix is to shove it off to the side, which just trades a crowded canvas for a long scroll back to it. Groups help a little, but a group is still every node at full size.
Visual Node Bag is the other option: drag nodes in and they fold into chips, right where they are. Same links, same ids, same execution. Nothing about the graph changes - which is the whole design, and the part people trust it for.
How it works
The bag is a purely visual container. The Python class behind it is literally a noop - all the behaviour lives in the frontend (web/visual_node_bag.js). A bag stores a list of node ids, sets their collapsed flag, and lays them out inside its own rectangle. It does not group, move, merge or rewire anything, so a workflow runs identically with or without bags. Delete a bag and every node it held comes back exactly as it was. There are no inputs or outputs, because there's no data - it's a utility node, not a data node, so wire nothing into it.
That's the honest pitch: it buys you screen space, not capability. In the taxonomy of ComfyUI's legibility layer (the stuff that exists purely to keep a graph readable), it sits next to group muters - but where rgthree's Fast Groups Muter switches a region off, a bag tucks it away while it stays on.
How to use it
Drag a node so the pointer's over the bag and it folds into a chip. Drag a chip out and the node returns open, at full size, wherever you let go. Double-click a chip (or press the dot on its left) and it opens as a popover over the bag - change a widget, click away, done. No need to unpack a node just to tweak one value.
- Shelves -
+ SHELFadds a named row, so a bag can hold your whole model chain on one shelf and sampling on another. Drag chips between shelves, fold a shelf down to its title,UNPACKjust that row. SORTreorders the chips on each shelf by following the wiring, so a node lands next to the one that feeds it.- The slider left of
+ SHELFfades the bag's body so you can check the wiring underneath without unpacking anything - useful, because links are painted before nodes, so the bag body covers whatever runs beneath it. Wires that leave the bag get a dot in the link's colour where they cross the edge, so an external connection is still visible. - Several bags per workflow is the intended use, not a stretch goal.
Install
Part of Visual Suite (Studio Leiel). In ComfyUI Manager, search "Visual Suite (Studio Leiel)", or:
cd ComfyUI/custom_nodes
git clone https://github.com/StudioLeiel/comfyui-visual-suite
Restart ComfyUI. No dependencies beyond stock ComfyUI - nothing heavy here.
Common issues
- I pasted a bag and it's empty. Expected: copy-and-paste mints new node ids, and a bag holds ids, so the pasted copy points at nothing. Re-drag the nodes in.
- The bag covers my wires. That's how it draws - fade the body with the slider, or drag the bag clear of the links you care about.
- A node won't fold back out. If a folded bag starts misbehaving after a ComfyUI frontend update,
UNPACK ALLempties it and every node comes back at full size, unchanged - that's the safety net the "never touches the graph" design gives you.
It's a small thing, but for anyone living in a 200-node workflow, reclaiming the canvas without risking the graph is worth more than the sum of its parts.
Inputs (0)
No inputs
Outputs (0)
No outputs