π AK Tag Bypasser (Active / Bypass)
Switch a whole stage of your graph off with a title tag
- is_active
- tag
Bypassing is ComfyUI's version of "leave it wired, just skip it" - the node goes quiet and whatever came in travels straight out the other side. The annoying part is scale: your upscale stage is four nodes, your face pass is three, your background removal is two, and switching one off by hand is three Ctrl-B's you'll forget to undo. AK Tag Bypasser lets you name the stage instead. Put [UPSCALE] in each of those nodes' titles, and one switch flips all of them.
How it works
This is a frontend node. The Python class is nearly a stub - it takes tag and mode and returns them. The real work lives in the pack's JavaScript, which registers a canvas-wide evaluator.
Every controller on your canvas that is itself active (mode 0 - an important detail, see below) contributes a rule. The evaluator lowercases each tag, walks every node in the graph, and tests title.includes(tag). Matching nodes get a mode written to them: 4 for bypass when your switch says Bypass, 0 for active when it says Active. Because the match is a plain substring test on the lowercased title, tags are effectively case-insensitive - [RMBG] and [rmbg] are the same rule.
It fires in three situations: when you change the tag or mode widget, when the workflow is loaded or the node is created, and on ComfyUI's execution_start event, which means tags are re-enforced right before every queued prompt. That last one is why it feels automatic - you can bypass something by hand mid-session and the controller will put it back to your declared state at the next run.
When several rules touch the same node, the pack resolves it with a fixed hierarchy: MUTE beats BYPASS beats ACTIVE. This is the same rule the sibling AK Tag Muter and AK Garment Mode Controller obey, and it's what stops a garment switch from fighting a stage switch.
The two inputs
tag is a string, default [RMBG]. Type it exactly as it appears in the node title, brackets included. Bracket your tags - the match is a plain substring test, so a bare face would also hit any node you happened to title "Face detail pass", while [FACE] only hits nodes that deliberately carry it.
mode is Active or Bypass. There are also two convenience buttons on the node - π’ Set ACTIVE (Process) and π Set BYPASS (Skip) - and an orange/green state banner drawn across the bottom, so you can read the state at a glance instead of opening the widget.
Outputs are is_active (BOOLEAN) and tag (STRING). They exist so a graph can reason about the state, not because you need them; the actual toggling is already done by the time they're produced.
Where it bites
Bypass only works between compatible types. ComfyUI's bypass passes an input through to the output, so it's perfect for imageβimage stages: upscalers, background removers, detailers, colour work. On a node that changes type - a text encoder, a sampler, anything latentβimage - there's nothing sensible to pass through and downstream will complain. Bypass your stages, not your pipeline steps.
Never bypass the controller itself. The evaluator only collects controllers whose own mode is 0, so bypassing or muting your Tag Bypasser quietly disables every rule it was enforcing, and the tags freeze at whatever they were. If the tags seem dead, check the controller first.
Tags live in the title. Double-click the node title on the canvas and type the tag. Putting it in a comment, a note node, or the node's type does nothing.
Old frontend, new frontend. The pack's JS is written against the legacy LiteGraph extension API, including direct canvas drawing for those state banners. ComfyUI's Nodes 2.0 renderer broke a lot of third-party packs that do that, rgthree's most famously. If the buttons and banners don't render, switch back to the legacy canvas - same advice that's been circulating since late 2025, and it costs you nothing.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/AngelosKar-code/ComfyUI-AngelosKar.git
# restart ComfyUI
Or ComfyUI Manager β search ComfyUI-AngelosKar β Install β restart. Dependencies (torch, numpy, Pillow, aiohttp) ship with ComfyUI already; Python 3.10+. After installing or updating, hard-refresh the browser or the buttons won't appear.
How it compares
If you already run rgthree, you have Fast Groups Bypasser, which does this job per group. Groups are better when the stage is a rectangle you drew anyway; tags are better when the thing you want to gate is scattered across the canvas, or when the same node belongs to two stages. They coexist - and rgthree's version is subject to the same Nodes 2.0 caveat above.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| tag | STRING | [RMBG] | β |
| mode | COMBO | Active | 2 options: Active, Bypass |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| is_active | BOOLEAN | β |
| tag | STRING | β |