Forward/Mute on Boolean (Any)
Forward/Mute on Boolean (Any) — the mute switch you can drive from data
- any
- any
You know how you can right-click a node and mute it? This node is that action, but controllable by data: it passes any value straight through and toggles the mute state of the directly connected downstream node based on a boolean - either the switch on the node itself or a boolean wired in from elsewhere. It's the mute-flavored sibling of the pack's Forward/Bypass on Boolean (Any), and the difference between the two matters in exactly one scenario, which we'll get to.
Mute vs. bypass, quickly
In ComfyUI, bypassing a node re-routes its input around it - downstream still gets a value and runs. Muting a node is harsher: the node doesn't execute and its output isn't produced, so downstream is effectively switched off too. So this node is your "kill this whole branch" switch, while the bypass version is your "let this value flow through without processing" switch. If you want a preview to be skipped when a flag is off, that's bypass. If you want a whole processing chain to stop running, that's mute.
How it works
The Python side is a pass-through - any in, any out. The control side is frontend: the JavaScript watches the mute boolean and flips the downstream node's state on the canvas instantly, no queue run needed. And like its sibling, the boolean resolver walks the full upstream graph, so it correctly reads values from the pack's own Boolean AND/OR/Flip nodes, from pass-through relays, and through subgraphs and pipes. Chain an AND of "mode is upscale" and "batch is large" into mute, and the branch quietly kills itself when either condition fails.
Inputs and outputs
any(any type) - forwarded unchanged.mute(boolean, default off) - the switch; linkable from any boolean node.- Output
any- the forwarded value.
Two inputs, one output, nothing hidden.
Where it earns its keep
Conditional preview branches ("only run the high-res save when the quality flag is on"), toggling heavy processing like a tiled refine or a ControlNet pass off when testing a fast path, or building an "A/B switch" where one boolean decides which of two branches is even alive. Combined with the pack's boolean operators you get genuine multi-condition control flow in a graph that's otherwise stuck with manual right-clicks.
Install
Part of the vsLinx pack. ComfyUI Manager → search "ComfyUI vsLinx Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/vslinx/ComfyUI-vslinx-nodes.git comfyui-vslinx-nodes
Restart, look under vsLinx/utility. No extra dependencies.
Gotchas
The one thing that trips people: this only mutes the node directly connected to its output - it doesn't cascade. If you mute a node that feeds two others, those two are left hanging with a missing input, which is ComfyUI's mute behavior showing through, not a bug. If you actually want state to cascade, that's what the newer Forward/Bypass-Mute on State (Any) node's mirror_own_state toggle is for. Pick the mute variant when "off means this branch stops", and the bypass variant when "off means this branch is transparent".
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| any | * | — | |
| mute | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | — |