π AK Tag Muter (Active / Mute)
Silence branches by tag (and know when muting bites back)
- is_active
- tag
Mute and bypass look like the same button in ComfyUI and behave nothing alike. Bypass passes data through a skipped node; mute makes the node vanish from execution entirely, so nothing comes out of it at all. That difference is the entire argument for having both controllers, and it's why AK Tag Muter keeps its "off" state on a separate node from AK Tag Bypasser.
Reach for this one when the thing you want off is an endpoint: the preview you don't need during a 400-image overnight batch, the second Save Image that's been doubling your output folder, the upscale branch you keep around for the two files where it helps. Tag them [PREVIEW], [SAVE], [EXTRA], flip one switch, and the graph stops paying for them.
How it works
Same engine as the rest of the pack's control family. Every muter node that is itself active contributes a rule made of its tag and mode widgets. The pack's JavaScript walks all the nodes on the canvas, lowercases both sides, and tests title.includes(tag). A match with Mute selects LiteGraph's mode 2 - the node will not execute - and a match with Active selects mode 0. There are two on-node buttons, π’ Set ACTIVE and π΄ Set MUTE (Disabled), plus a red/green banner drawn on the node so you can see which way it's pointing without opening anything.
Rules are re-evaluated when you change the widgets, when the workflow loads, and on execution_start - so every queued prompt starts with your declared mute state enforced, even if you toggled something by hand a minute ago.
When multiple controllers hit the same node, the pack's fixed hierarchy is MUTE > BYPASS > ACTIVE. Muting wins. That's deliberate: the AK Garment Mode Controller mutes disabled garment branches, and a muted garment should not be resurrected because some bypasser's tag also matched the node.
The inputs
tag (string, default [PREVIEW]) is the literal text that has to appear in a node's title - case-insensitive, and it's a substring match, so bracket your tags to keep them self-delimiting. mode is Active or Mute.
The outputs are is_active (BOOLEAN) and tag (STRING), handed back by the Python node. By the time they're produced the frontend has already applied the mode change; they're there so graph logic can branch on the state, not because you need to wire them.
The trap worth internalising
Muting is a guillotine, not a bypass. Mute a Preview or a Save Image and everything is fine - they're the last node in their chain and nothing needs their output. Mute a node in the middle of a chain and everything downstream of it is now missing an input; ComfyUI will skip or error on those nodes, and the visible symptom is a run that finishes suspiciously fast with half your outputs missing. Read the graph from the node you're muting to the right edge before you flip it.
Rule of thumb: if the node's output feeds anything you still want, use the bypasser instead. That's the whole reason both nodes exist.
Don't mute the muter. The evaluator only collects controllers whose own mode is 0, so muting or bypassing your Tag Muter silently stops it enforcing anything, and the tags stay wherever they were last left. If a tag stops responding, look at the controller before you look at the target.
Install
Ships with the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/AngelosKar-code/ComfyUI-AngelosKar.git
# restart ComfyUI
Or through ComfyUI Manager - search ComfyUI-AngelosKar, install, restart. Dependencies are torch, numpy, Pillow, aiohttp, all of which your ComfyUI install already has; Python 3.10+. Restart and hard-refresh the browser after install, since the buttons and banners come from the pack's js/ directory and a cached frontend is the number one reason this node looks inert.
Compared to rgthree
rgthree's Fast Groups Muter covers the same job for whole groups, using a lighter trick than tagging titles. If your stage already lives in a group, that's arguably tidier. The AK version wins when the branch you're gating isn't a clean rectangle - nodes here, a preview over there, a save at the far right - or when you want the same switch to reach nodes in two different groups. And as with every pack that draws on the LiteGraph canvas, if you've enabled ComfyUI's Nodes 2.0 renderer and the banners don't appear, the legacy canvas is your workaround.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| tag | STRING | [PREVIEW] | β |
| mode | COMBO | Active | 2 options: Active, Mute |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| is_active | BOOLEAN | β |
| tag | STRING | β |