Mpi Blocker
A manual kill switch for a whole branch — even the expensive upstream part
- input
- output
Most of the blocker nodes in this pack stop a branch that came up empty. Mpi Blocker is different: it stops a branch because you say so. It's a manual gate - a single boolean that decides whether the rest of the graph runs or not, like a node-level version of right-clicking a group and muting it, except it's wired and data-driven.
Here's the part that makes it special, and it's the reason you'd reach for this instead of just bypassing nodes by hand: the input is lazy. That one keyword means ComfyUI doesn't compute the input until the node actually needs it. When the boolean gate is off (the widget reads "block"), the node never asks for its input - so nothing upstream of it runs either. You're not just stopping the branch after the gate; you're skipping the entire subtree behind it. If that subtree includes a LoRA load, a VAE encode, or a whole sampler, you just saved that work for real, not merely discarded its output. A normal gate would run the expensive part and throw the result away; this one doesn't pay the bill at all.
The shape of it: input (any type, *) comes in, output (any type) goes out. The boolean widget defaults to true and its labels are "continue" (pass through) and "block" (stop) - you can flip it by hand for manual control, or convert the widget to an input and drive it from another node's result. When it continues, the input value passes through untouched. When it blocks, the node emits an ExecutionBlocker and downstream just doesn't execute. The pack's own description nails the framing: "a one-output if/else." You get the pass-through-or-nothing behavior without having to wire up a true/false pair of branches.
Where this earns its keep in practice: stage gating. Say you have a workflow with a fast preview pass and a slow full-quality pass. Put an Mpi Blocker before the slow branch and you get a single button that toggles "am I iterating quickly, or committing to the final render?" - and when it's off, the slow pass genuinely doesn't run. Same idea for A/B style systems: a boolean from somewhere upstream (a checker node, a comparison, a control_after_generate seed) decides which pipeline segment is live this run, without deleting or bypassing nodes in the editor.
The sharp edge to watch: because the input is lazy, nothing that feeds the input runs while the gate is closed. If you expected a side effect from an upstream node - a logger, a save node - it won't happen when blocked. That's usually exactly what you want, but it's worth knowing. It's also why you can't use this to "peek" at a value: if the gate is off, the value is never produced. For the always-runs version, that's what Mpi Any Checker is for.
Install is the same for the whole pack: ComfyUI Manager → search ComfyUi-MpiNodes → install, or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/MadPonyInteractive/ComfyUi-MpiNodes
Restart and it shows up under MpiNodes/Logic. No requirements file, no models - pure Python on top of what ComfyUI already ships, and the same nodes that power the pack's parent project, the Cubric Vision app. If you're coming from a saved workflow that uses this pack, you already have it installed.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| input | * | — | |
| boolean | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | — |