π¦ Null Input
The node that eats outputs you don't care about
- NULL
- NULL2
- NULL3
- NULL4
- NULL5
- NULL6
π¦ Null Input is the "don't care" bucket of your workflow. You connect things to it that you don't actually want, and it swallows them so the workflow can move on. It looks like a waste of a node until you've hit the exact problem it solves: a branch of your graph that has to run, whose output you have no use for.
ComfyUI doesn't execute work that nothing consumes - if a node's output has no destination, that branch can get pruned or, worse, execution skips past the part you actually needed to trigger. Null Input fixes that by giving you a place to park those outputs. It's an output node, which in ComfyUI terms means it always runs to completion, so whatever you wire into it is guaranteed to execute.
What it actually does
Read the code and the name gets a little funny. The node has up to six inputs - a required NULL slot plus optional NULL2 through NULL6 - and zero outputs. It just runs, does nothing, and returns. It's a terminal node whose only purpose is to sit at the end of a wire you don't care about.
The inputs are all * type, so they'll accept anything: latents, images, strings, whatever. If you're branching with an IF Selector or the pack's universal switch, the paths you don't take still need somewhere to drain. This is that somewhere.
It also forces execution order the same way every run_after trick in this pack does - anything you connect here has to finish before the node "completes", which can be a cheap way to make ComfyUI finish one branch before starting another.
The inputs
- NULL (required) - the main drain. Plug the output you don't need in here.
- NULL2βNULL6 (optional) - more drains, same idea. Six is a lot of junk you can swallow in one node.
- No outputs. If you need a node that emits
Noneinstead, that's its sibling π΅ Null Output.
When it's genuinely useful
- Conditional branches. You generate with model A or model B via a switch, and only one result is shown. The other result still got computed - plug it into Null Input so it doesn't sit there confusing you.
- Mandatory-but-useless inputs. Some nodes demand an input that does nothing for your case. Wire your placeholder through here rather than deleting the node and breaking the graph.
- Ordering. You want node X to finish before node Y, and X outputs something you don't want to display. Null Input is the least-cluttered way to force it.
Install and gotchas
Same story as the rest of the pack - no Python dependencies, just the clone:
cd ComfyUI/custom_nodes
git clone https://github.com/VykosX/ControlFlowUtils
then restart ComfyUI (or install via ComfyUI Manager by searching ControlFlowUtils).
One heads-up: the node's own help text claims it "forwards a Null Input (None type) to other nodes," which would be great if it had any outputs to forward through. It doesn't - that description predates the current code. Treat it as a sink and you'll use it right. And remember this pack is still alpha-ish (v0.0.6), so occasionally a description here and there is a little ahead of the implementation. The behavior that matters is what's in the source, and this node's behavior is: take junk, run, disappear.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| NULL | * | β | |
| NULL2opt | * | β | |
| NULL3opt | * | β | |
| NULL4opt | * | β | |
| NULL5opt | * | β | |
| NULL6opt | * | β |
Outputs (0)
No outputs