Pepe Break
A mute switch for any branch of your workflow
- value
- value
Every serious workflow ends up with a branch you only want sometimes. A refiner pass. An upscaler you flip on for final renders. A second sampler you keep around for A/B comparison. The classic ways to disable that stuff are all annoying - right-click bypass on a chain of nodes, or unplugging a wire and remembering where it went. Pepe Break is the cleaner answer: one toggle that silences an entire downstream branch at runtime, and leaves the rest of the graph alone.
Drop it just before the first node of the section you want to disable, flip the switch, and that whole route stops running. No node wrangling, no spaghetti.
How it works
The node has two inputs: value (accepts any data type - it's a wildcard * socket) and enabled, a boolean that renders as a CONTINUE / BREAK toggle. In CONTINUE mode it passes value through untouched. In BREAK mode it returns ComfyUI's silent execution blocker - downstream nodes on that route simply don't execute, and they don't report an error. It's not "run this and output nothing"; it's "never run this at all."
The detail that makes it genuinely useful is that value is declared as a lazy input. ComfyUI's executor only requests the inputs a node actually needs, so when the break is active and the value is never going to be used, the upstream nodes on that branch aren't evaluated either. That's the whole point: the expensive part you're trying to avoid - a second sampling pass, a large upscale - is skipped along with everything else, not just ignored after the fact.
What to know
- Output: a single
valuesocket, which passes the input through in CONTINUE mode and is blocked entirely in BREAK mode. - Scope: the break only affects nodes downstream of its output. Independent branches keep running normally, so you can break one route without freezing the whole queue.
- It's a runtime switch, not a UI convenience. A bypassed node is a frontend thing; this is a graph thing. Which means you can drive
enabledfrom another node by converting the widget to an input - wire it to a Pepe Image Filter choice or any other boolean source, and your workflow decides its own routing.
Installing it
Part of the ComfyUI-PepeUtils pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Pepehoschi/ComfyUI-PepeUtils.git
or search ComfyUI-PepeUtils in ComfyUI Manager, then restart. No extra dependencies - the blocker is part of ComfyUI's execution engine.
Gotchas
The one thing to keep straight: a BREAKed branch produces nothing, so any node that must have a value on that path will just not run - which is exactly what you asked for, but it can look confusing if you expected an empty image instead of a skipped node. And remember that lazy evaluation only helps when nothing else downstream needs the branch's output; if another live path depends on it, the input still gets evaluated. For full "not evaluated at all" routing between alternatives, that's what Pepe Lazy Route is for.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| value | * | Any value to pass through while the break is disabled | |
| enabled | BOOLEAN | true | Continue passes the value; Break blocks this downstream branch |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |