PVL NoneOutputNode
A pass-through you can switch off mid-workflow
- input
- *
Sometimes you want a branch of your workflow to just... not run, without deleting it. PVL NoneOutputNode is the blunt instrument for that. It's a pass-through with a bypass toggle: on, it hands its input straight through; off, it outputs None, and everything downstream of it gets skipped because there's nothing to compute on.
That's the entire feature, and it's genuinely useful in the fiddly way ComfyUI always is. It lives in pvlprk/comfyui-pvl-api-nodes ("ComfyUI Assistant Node").
How it works
The node is three lines of real logic:
bypass(BOOLEAN, default false) - the switch.true= pass-through,false= emitNone.input- a wildcard input. Optional, so the node works even when nothing is wired in.- Output - wildcard
*, mirroring whatever the input was.
When bypass is false, ComfyUI treats the None output as "nothing to do" and short-circuits every node downstream. That's the same mechanism that makes unconnected inputs skip work - the pack leans on it in a few places - so you can toggle an entire processing chain dead with one boolean.
Why you'd reach for it
The realistic pattern is dynamic disable. Say you have a "face detailer" or an "upscale" branch that costs real time, and you want to turn it on and off without rebuilding the graph. Route its input through this node, wire a boolean in (from a condition node, an API response, a UI toggle), and you get: flag on = branch runs, flag off = branch silently skipped. Same idea as bypassing a node in the UI, but automatic - driven by whatever upstream logic you've built, not by your hand.
It also handles the "is anything even connected?" question: the input is optional, so you can drop it in as a clean placeholder that a missing connection can't break.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/pvlprk/comfyui-pvl-api-nodes
restart, or install via ComfyUI Manager (search "ComfyUI Assistant Node"). No models, no extra dependencies - this is pure pass-through logic.
The honest caveats
This is a wire-killer, not a smart gate. It doesn't choose between two branches; it just empties one. If your goal is "run branch A or branch B", that's a switch node's job (PVL Switch in this same pack does it properly and lazily - only the chosen branch even evaluates). And because the output is None when off, anything that genuinely needs a value (like a sampler's model) will error rather than gracefully degrade - so gate optional processing branches, not mandatory inputs.
Also note the semantics are slightly backwards from what you might guess: bypass = true is pass-through. Read the label before you wire a toggle into it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| bypass | BOOLEAN | false | — |
| inputopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |