None
The node that outputs nothing, on purpose
- none
Some ComfyUI nodes are built to do a lot; this one is built to do exactly nothing. None is a tiny logic node with zero inputs and one output - it emits a single None value, and nothing else. That sounds like a joke, but "a node that outputs None on purpose" turns out to be genuinely useful once you understand how ComfyUI treats disconnected inputs.
What it is
- Inputs: none.
- Output: none - a
Nonevalue.
Under the hood that's it: the node returns Python's None. The entire value of the node is that it gives you an explicit None to wire around, rather than relying on the implicit None of an unconnected socket.
Why you'd actually use it
The context is the pack's switch and logic family. Take None Input Switch: it routes to on_none when its value is None. If you want to force a switch to take the None branch - even when some other path might provide a real value - you wire a None node into the check input and the routing is guaranteed. It's a way of saying "no, really, treat this as empty."
It also works as a deliberate placeholder for optional slots on other nodes. Some nodes behave differently based on whether an input is "unconnected" versus "connected but None" - e.g. loaders in this pack output None when set to none, and downstream logic can branch on that. Feeding an explicit None into a branch makes the intent visible in the graph, instead of leaving future-you to guess whether an empty socket was deliberate.
Think of it like the null-coalescing story in code: you can rely on the implicit empty, but there are moments where the explicit value documents the design. It's a one-node footnote for those moments.
Installing it
It's part of the Nifty Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes
or search "Nifty Nodes" in ComfyUI Manager, then restart. No models, no dependencies beyond the pack itself.
Gotchas
The honest take: you can ignore this node entirely and be fine. Most of the time an unconnected input already reads as None, so the explicit node is redundant. Where it earns its keep is inside switch setups where a check value might get wired from elsewhere - the None node makes the "force the None branch" intent explicit and unbreakable. One more note that applies to the whole pack: it's built on ComfyUI's newer V3 API, so keep ComfyUI updated if the node doesn't show up in search after install. And since this is a young pack, the README is your friend - there isn't much community lore to lean on yet.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| none | * | — |