ComfyUI Node

XLinker

A note pad and a passthrough that hides the spaghetti

By Xz3r0-M·Created 8 months ago·Updated about 6 hours ago· 13
XLinker
  • any_input
  • any_output
note_text
type_warningtrue

Every serious ComfyUI workflow ends up as a wall of wires, and half of the nodes on screen exist just to keep that wall readable - reroutes, groups, note nodes. XLinker is this pack's entry in the genre: a passthrough node with a multiline note area and a frontend button that hides or shows its own connection lines. It doesn't process anything. What it does is let you label a stage of the graph and tidy the links around it, which is more useful than it sounds on a graph with forty nodes and a hundred wires.

How it works

The data part is minimal by design: one any_input (MatchType, accepts anything) that passes straight through to any_output with the same type. The value is untouched - the tooltip is explicit that the note text is ignored during execution. That passthrough matters more than you'd think: it means you can drop XLinker into an existing wire as an annotation point, and the data flows through as if the node weren't there. No type conflicts, no data conversion, nothing to configure.

The note_text widget is a freeform multiline box for your own comments - "this branch is the hires pass," "swap to model B here" - the kind of thing that lives in a separate note node in most graphs, here welded to a data-bearing passthrough so the annotation travels with the wire it describes.

Then there's the button, which is a frontend feature (the pack's xlinker_extension.js). It cycles four link-visibility states: show all, hide only input links, hide only output links, hide both. Because the hiding is pure frontend - the data path is untouched - you can collapse the visual noise around a section without muting or bypassing anything. That's the differentiator from Mute/Bypass: XLinker hides the lines, not the function.

Inputs and outputs

  • note_text - your annotation; ignored during execution.
  • any_input - optional, any type.
  • any_output - the passthrough output, same type as the input.

That's the whole node. One wire in, one wire out, a notepad, and a button.

Installing it

Part of ComfyUI-Xz3r0-Nodes. ComfyUI Manager: search ComfyUI-Xz3r0-Nodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Xz3r0-M/ComfyUI-Xz3r0-Nodes.git
cd ComfyUI-Xz3r0-Nodes
pip install -r requirements.txt

Restart ComfyUI. No dependencies beyond the pack itself.

Gotchas

Keep expectations in line with what it is: the link-hiding is cosmetic and lives in the frontend extension. If your frontend strips custom extensions, the node still passes data but the button won't appear. And remember the note text never reaches the backend - if you're looking for an annotation that shows up in saved workflow JSON or exported metadata, this isn't that; it's for your eyes while you work. Compared to rgthree's reroutes and context nodes - the usual tools for decluttering - XLinker is a lighter-weight, more opinionated take: less configurable, but it combines note + passthrough + line-hiding in one node, which is genuinely convenient.

Category♾️ Xz3r0/Workflow-Processing

Inputs (3)

NameTypeDefaultDescription
note_textSTRINGFreeform note text. Use this to annotate the workflow — the value is ignored during execution.
type_warningBOOLEANtrueShow visual warning on links and output ports when a type mismatch is detected. Disable to hide the warning effect.
any_inputoptCOMFY_MATCHTYPE_V3Input (any type). Passed through to the output unchanged.

Outputs (1)

NameTypeDescription
any_outputCOMFY_MATCHTYPE_V3Passthrough output (same data type as input).