Mpi Any Blocker
Mpi Block If Empty is just Mpi Any Blocker's old name
- any
- any
Here's the first thing to know, because it will save you ten minutes of confusion: Mpi Block If Empty doesn't exist as its own node anymore. Open the MpiNodes menu and you'll find it under the name Mpi Any Blocker - the pack renamed it and kept "MpiBlockIfEmpty" registered as an alias so every saved workflow that references the old class still loads and runs unchanged. You're on the page for the same node, under its older label.
So everything that's true of Mpi Any Blocker is true here. It's a pass-through with a tripwire: the any input accepts anything (wildcard * type), the any output echoes the value back, and in between it checks whether the value is "empty" under the pack's rules - None, empty string, empty list or dict, a zero-element tensor, an empty audio waveform. If it is, the node returns an ExecutionBlocker and ComfyUI skips everything downstream for that run. If it isn't, the value sails through. The subtle bit: 0, 0.0, and False are not considered empty, so they pass. An explicit zero is a value; absence is what blocks.
Why does this distinction matter enough to have a whole alias? Because the pack's changelog shows MpiBlockIfEmpty was added early (V1.1.6), before the naming settled on the more general "Any Blocker" - the node blocks on any empty value, not just empty lists, and the rename reflects that. Renames are a quiet epidemic in the custom-node world: a pack renames a node, old workflows that call the class by its old name break with a "node not found" error on load, and everyone blames the workflow instead of the pack. Keeping the alias in NODE_CLASS_MAPPINGS is the polite fix, and it's why your two-year-old workflow still just works.
The one caveat that comes with old names: if you search the node list for "Block If Empty" specifically, you may draw a blank, because the display name in the UI is "Mpi Any Blocker". Search for the pack's prefix - "Mpi" or "Any Blocker" - and you'll land on it. ComfyUI Manager is unaffected either way, since Manager installs the whole pack, not individual nodes.
Where you'd use it, if you're new to the idea: it's the cheap insurance for any branch whose upstream can legally produce nothing. An image search returns zero frames, a text generator returns an empty string, a list node comes up empty - the blocker stops the rest of the branch from running on garbage. It pairs naturally with Mpi Any Checker, which tells you whether a value is empty instead of blocking on it, and with MpiBlockIfEmptyList, the variant that specifically guards list-fed nodes (it receives the whole list, so a truly empty list still reaches it - a plain Any Blocker would be skipped per-item before it ever saw the emptiness).
Installing is pack-standard: ComfyUI Manager → search ComfyUi-MpiNodes → install, or clone it yourself:
cd ComfyUI/custom_nodes
git clone https://github.com/MadPonyInteractive/ComfyUi-MpiNodes
Restart ComfyUI and you're set. No requirements file, no models to download - the logic nodes are pure Python on top of torch, and they're the same nodes that power the pack's parent project, the Cubric Vision desktop app.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| any | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | — |