Nodes/ComfyUI Block Bypass Switch/⚡ Block Bypass Switch
ComfyUI Node

⚡ Block Bypass Switch

Flip one boolean and skip a whole block of nodes — no rewiring

By DaPaLi·Created 6 months ago·Updated 6 months ago· 1
⚡ Block Bypass Switch
  • direct_in
  • block_out
  • output
bypassfalse

Every serious ComfyUI workflow eventually hits the same wall: you built a block of nodes - an upscaler, a refiner, a whole second sampler pass - and now you want to flip it on and off to compare. ComfyUI's native bypass works per-node, and muting an entire group gets fiddly fast. ⚡ Block Bypass Switch is the tiny answer: one node with one boolean that routes your signal either straight through or around the block. Flip it, hit queue, done. No rewiring, no deleted nodes, no "wait, which wire did I unplug."

It's a fresh, tiny pack from DaPaLi - no model files, no Python dependencies, nothing to break. That's the whole appeal: it's a utility that installs clean and stays out of the way.

How it works

The mechanism is embarrassingly simple, and that's a compliment. You wire two things in:

  • direct_in - the signal before your block
  • block_out - the signal after your block (i.e. the block's output)
  • bypass - the boolean toggle

The node passes one of them through as its single output:

bypass = ON  → output = direct_in   (signal skips the block)
bypass = OFF → output = block_out   (signal flows through the block)

Under the hood it's literally direct_in if bypass else block_out - the sort of logic you'd write yourself in ten seconds if the node didn't exist, which is exactly why you'd rather have it as a node you can click, name, and drive from elsewhere in the graph.

Both direct_in and block_out are ANY type, so this works with images, latents, conditioning, even model objects. The output is ANY too - whatever you selected gets passed through untouched.

The inputs that matter

Honestly, just one: bypass. It defaults to off (block active), which trips people up at first - the name is "bypass switch," so most newcomers expect it to start bypassed. Click it once and it flips to bypass (the widget literally labels itself "BYPASS" / "BLOCK AKTIV").

The underrated trick: because bypass is a plain boolean input rather than a widget-only value, you can drive it from anything that outputs a boolean - a primitive you expose to the API, a frontend controller, a logic node in another corner of the graph. That turns a manual toggle into something you can automate or persist in saved workflow parameters.

Where the pack earns its keep

The same install also adds two frontend conveniences, because this node is really the anchor of a bigger idea: bypassing whole groups, not just one block. Right-click any group frame and you get bypass / mute / activate for every node inside it. There's also a floating ⚡ Gruppen panel at the bottom center - pick a group from the dropdown, hit bypass or mute in one click, use ↻ to refresh after renames. If you've ever used rgthree's Fast Groups Muter/Bypasser, this is the lightweight, no-nonsense version of the same muscle.

Installing it

Two options, both trivial:

ComfyUI Manager - open Manager, search for Block Bypass Switch, install, restart.

Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/DaPaLi/comfyui-block-bypass

Restart ComfyUI. That's it - the pack has no requirements.txt and downloads nothing. It targets the new frontend (Node Spec 2.0) with a fallback for legacy versions, so it shouldn't fight your install.

Where people get burned

  • Both inputs are required. You can't leave direct_in or block_out dangling "for later" - ComfyUI will complain about the missing required input. Wire both before you queue.
  • The default is block active. If you flip to bypass and "nothing changed," check the toggle - you may have just selected the path you were already on.
  • Type discipline. The output is whatever input you chose, so downstream nodes still need to accept that type. Bypassing a VAE-decode block means your output is now a latent, and the next node had better take latents.
  • Don't conflate it with muting. Muting a block can leave its outputs in a weird half-state on newer ComfyUI builds - some subgraph/muted nodes emit stale or unexpected values. This node sidesteps that entirely by re-routing data instead of suppressing execution. That's the real reason to reach for it.

A four-impression search history means you won't find much community lore about this specific pack yet. Doesn't matter - there's less that can go wrong with a node this small.

Categoryutils/bypass

Inputs (3)

NameTypeDefaultDescription
direct_in*
block_out*
bypassBOOLEANfalse

Outputs (1)

NameTypeDescription
output*