ComfyUI Node

Bookmarks

Jump straight to any group in your ComfyUI graph

By vslinx·Created about a year ago·Updated 26 days ago· 25
Bookmarks

      You know the feeling. The workflow is 200 nodes deep, the graph is bigger than your monitor, and you just spent four minutes hunting for that one group so you can tweak its seed. ComfyUI doesn't ship a jump-to-group command, so you end up zoomed out to 5% squinting at colored rectangles. This node is the fix: it adds a collapsible side panel on the right edge of the canvas that lists your bookmarked groups. One click and the canvas centers on a group and zooms to fit it in view.

      It's part of the vsLinx pack, a one-author grab-bag of quality-of-life nodes (bookmarks, pipe bundling, boolean bypass helpers) in the same spirit as rgthree-comfy - except where rgthree is a whole toolkit, this does the one job and nothing else.

      How it works

      Here's the surprising part: this node has zero inputs and zero outputs. Not "no required inputs" - literally none. It's a UI-only node whose execute() returns an empty dict. Everything happens in frontend JavaScript, which is why it's a bit of a unicorn: there's nothing to wire, nothing to run, no API calls, no models. You add it to the canvas like a bookmark manager widget and it just exists.

      Open the "Manage Bookmarks" button and you get a manager with two columns. On the left, a searchable tree of everything in your workflow - groups first, each showing its node count, with an expand arrow to dig into individual nodes. Ungrouped nodes sit at the bottom. Click a group (or its +) to bookmark the whole thing, or expand and bookmark a single node. On the right is your active bookmark list, which you can drag to reorder and organize into named, collapsible sections via the "+ Add Section" button.

      The panel itself is the useful bit. Groups get a hollow blue square glyph, nodes a filled amber dot, with a legend at the bottom. Clicking a group bookmark centers the canvas on it and zooms to fit; clicking a node centers and selects it. Panel visibility, which sections are collapsed, and the bookmark list itself are all saved with the workflow, so they survive reloads and travel with the file when you share it.

      One nicety worth knowing: node bookmarks are tracked by the node's id, not its title, so renaming a node doesn't break the bookmark. If a group or node gets deleted, its entry greys out in italic instead of vanishing - it stays so it reactivates if the thing comes back. Multiple bookmark nodes in one workflow each keep their own list, and the panel merges them (deduped).

      Installing

      Same as any vsLinx node - no dependencies, no models, no pip step, just the pack:

      • ComfyUI Manager: search for "ComfyUI vsLinx Nodes" and install, then restart.
      • Manual:
      cd ComfyUI/custom_nodes
      git clone https://github.com/vslinx/ComfyUI-vslinx-nodes.git comfyui-vslinx-nodes
      

      Restart ComfyUI and the node shows up under vsLinx/utility (search "bookmark"). There's no requirements.txt - it's pure JavaScript on top of ComfyUI's frontend, so nothing to fight over with your other packs.

      Gotchas

      • No panel? Check you actually have bookmarks. The panel hides itself automatically when there's nothing bookmarked (or no bookmark node in the graph). That's by design, not a bug - bookmark something and it appears.
      • Bookmarks live in the workflow JSON. They're tied to the current graph's node ids. Rebuild a workflow from scratch and the ids change; old bookmarks go grey. This is normal for this kind of tool.
      • The README is slightly behind the code. Older docs describe this as groups-only, but the current version also bookmarks individual nodes and supports sections. If you don't see node bookmarks, update the pack through Manager.

      For anyone who lives in one giant shared workflow, this is the rare node that changes how annoying the canvas is to navigate. It won't make your graph smaller - but you'll stop getting lost in it.

      CategoryvsLinx/utility

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs