Nodes/ComfyUI-AngelosKar/πŸ”€ AK Tag Bypasser (Active / Bypass)
ComfyUI Node

πŸ”€ AK Tag Bypasser (Active / Bypass)

Switch a whole stage of your graph off with a title tag

By AngelosKar-codeΒ·Created 3 days agoΒ·Updated about 19 hours agoΒ· 0
πŸ”€ AK Tag Bypasser (Active / Bypass)
    • is_active
    • tag
    β—„tag[RMBG]β–Ί
    β—„modeActiveβ–Ί

    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.

    CategoryAngelosKar/Control

    Inputs (2)

    NameTypeDefaultDescription
    tagSTRING[RMBG]β€”
    modeCOMBOActive2 options: Active, Bypass

    Outputs (2)

    NameTypeDescription
    is_activeBOOLEANβ€”
    tagSTRINGβ€”