Nodes/ControlFlowUtils/πŸ”΅ Null Output
ComfyUI Node

πŸ”΅ Null Output

The node that hands out None when you need a wire

By VykosXΒ·Created 2 years agoΒ·Updated 2 years agoΒ· 147
πŸ”΅ Null Output
    • NULL

    πŸ”΅ Null Output is the mirror image of this pack's 🟦 Null Input: where that one swallows outputs, this one emits None. It has no inputs, and its single output is a *-typed None that can plug into basically any slot in your graph. It exists because ComfyUI's type system occasionally needs a wire where you have nothing to send.

    If you've never needed it, this node looks like a joke. If you've built a branching workflow, you know the feeling: a node with an input you must connect, or a condition you want to test "is this nothing?", and no clean way to express "nothing" as an actual value. That's the gap Null Output fills.

    How it works

    There's almost nothing to it. The node runs, and its function just returns (None,). Because the output is declared as the wildcard * type, ComfyUI will let you plug it into a string slot, a model slot, a conditioning slot - anywhere. Whatever receives it gets Python's None, and then it's the receiving node's business what that means.

    It's also marked as an output node, so it always executes and always re-validates. That detail matters if you're feeding it into a comparison: it won't be cached away mid-queue, it'll freshly emit None every run.

    The one input, the one output

    • No inputs. It's a pure source.
    • Output: NULL (* type) - a None value you can wire anywhere.

    That's the whole thing. The useful skill is knowing when to wire it.

    When None is exactly what you want

    • Feeding conditional nodes. The pack's IF selector and string operations do comparisons against None directly. If you want a branch that only fires when something is genuinely absent, wire Null Output into the comparison as the reference value instead of inventing a sentinel string like "none" - which is fragile and comes back to bite you.
    • Satisfying mandatory inputs. Some nodes declare an input as required even though your workflow doesn't need it. Dropping Null Output in there keeps the graph valid without you faking data.
    • Switch placeholder slots. If you feed a universal switch and one of its input slots is left empty, it sees None. Explicitly wiring Null Output makes that intent visible - the next person reading your workflow (probably future you) understands the slot is intentionally empty.

    Install and gotchas

    Same as every node in this pack - zero Python dependencies, so it's just the clone and a restart:

    cd ComfyUI/custom_nodes
    git clone https://github.com/VykosX/ControlFlowUtils
    

    or use ComfyUI Manager, search ControlFlowUtils, and restart.

    The thing to keep straight: Null Output and Null Input look like one should be the inverse of the other, and they are, but don't expect them to be interchangeable. Null Output creates the absence; Null Input absorbs it. Both are thin conveniences, and honestly neither is going to make your images prettier - they exist to keep flow-control workflows from falling over, which is the whole point of this pack.

    Category🐺 VykosX-ControlFlowUtils

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    NULL*β€”