Nodes/ComfyUI-CRZnodes/CRZ Execute Block
ComfyUI Node

CRZ Execute Block

A kill switch that stops a whole branch of your graph from running

By CoreyCorza·Created 12 months ago·Updated 12 months ago· 42
CRZ Execute Block
  • input
  • output
boolfalse

CRZ Execute Block is a gate, not a switch. A normal switch routes data; this one decides whether the stuff hanging off it is allowed to run at all. Drop it between a control point and a downstream chain, flip its boolean off, and everything past it silently never executes - no errors, no skipped pixels, the graph just ends there. It's the cleanest way to have a "disable the upscale pass" or "disable the detailer" button on your dashboard.

It's part of ComfyUI-CRZnodes, CoreyCorza's dashboard-node pack. The README's one-liner is exactly right: "Blocks downstream nodes from running." Where the sibling Execute Switch chooses between two branches, this one is simpler - one input, one output, and a boolean that decides whether anything flows.

How it works

The mechanism is ComfyUI's own ExecutionBlocker, a built-in you can return from any node to tell the executor "don't run anything downstream of me." When the boolean is true, the node passes your input through normally and everything downstream runs. When it's false, it returns an ExecutionBlocker(None) instead, and the executor skips the entire downstream subgraph.

That's the important part to internalize: this isn't a data switch, it's an execution control. Even nodes with side effects (image savers, anything making API calls) won't run when the block is on, because they never execute. It's the difference between "output zero pixels" and "compute nothing at all."

Inputs and outputs

  • input (input, *) - whatever data you want to gate. Can be anything, including nothing in particular - many people just use this as a pure execution gate.
  • bool (input, BOOLEAN, default false) - the gate. Wire it from a CRZ Boolean Toggle for a visible switch, or from a CRZ Compare for an automatic one.
  • output (output, *) - your input, passed through only when the gate is open.

Two inputs, one output, and the boolean is the whole show.

How to use it well

The natural pattern: Boolean Toggle → Execute Block, with your expensive branch hanging off the output. Toggle off = branch skipped, faster queue times, cleaner results when you're testing. The toggle-hook into the switch/block family is the pattern people actually recommend for this pack in the community - someone asking for a clean "enable/disable this section" answered with "try CRZ Nodes, hook a toggle into the switch." This is the block version of that same idea, for whole subgraphs instead of two rival inputs.

One design note: since blocking stops everything downstream, place the block at the point where the disabled branch diverges from the rest of your graph. If you block something that's also feeding the output you want, you block that too. It gates everything past it, no exceptions.

Installing it

Standard pack install: ComfyUI Manager → search ComfyUI-CRZnodes → install → restart. No requirements, no models.

cd ComfyUI/custom_nodes
git clone https://github.com/CoreyCorza/ComfyUI-CRZnodes.git

Gotchas

The boolean defaults to false - so a freshly placed Execute Block is blocking until you flip it. That trips people up constantly: they drop the node in, wire it, queue, and nothing comes out. If you just added one of these and your output vanished, check the toggle first. And remember, because this uses execution blocking rather than a data switch, some tooling that inspects the graph (like "execute the selection") may behave differently than you expect around a blocked node - when in doubt, flip the boolean and re-queue.

CategoryCRZ

Inputs (2)

NameTypeDefaultDescription
input*
boolBOOLEANfalse

Outputs (1)

NameTypeDescription
output*