ComfyUI Node

None

The node that outputs nothing — and why that's genuinely useful

By r-vage·Created 10 months ago·Updated a day ago· 31
None
    • value

    Outputting nothing sounds like the world's least useful node, but in ComfyUI's logic, nothing is a value. This is the None [Eclipse] primitive, and it exists because optional inputs read "not connected" as None, and there are times you want to say "None" explicitly - from inside the graph, on a wire, instead of by leaving a socket empty.

    The mechanic is worth getting precise, because it's the foundation of half the fallback logic in ComfyUI (the KB's node-plumbing doc calls it "null-output placeholders"): an optional input you leave unwired simply isn't passed, and nodes read that as None. A fallback switch walks its inputs and hands you the first non-empty one. So if you want a branch to actively contribute nothing - to be present in the graph but skip itself at runtime - you wire this node into it. The branch is connected, the data is None, and the fallback logic downstream skips it. You've muted a branch from inside the data rather than by bypassing a node.

    How it works

    That's the whole mechanism. The node takes no inputs, has a single value output typed as * (Any), and returns Python's None every execution. Because the output type is the wildcard, it can connect to any socket that accepts an optional value - a switch's input, a passer's optional input, a node whose optional input defaults to "not set."

    The natural companions are this pack's own Any Multi-Switch (which returns the first non-None input) and the fallback switches from other packs. A classic pattern: a workflow with an optional LoRA branch - when the branch is active it feeds a stack; when you want it off, feed the None node and the fallback picks your plain model instead. No muting, no re-wiring.

    When it's actually the right tool

    Two situations, honestly. First, when you're building a fallback chain and you want to see that a branch is deliberately disabled - the node documents intent. Second, when a node's optional input is finicky about being left empty (some packs' validation treats unconnected as an error) and you need to pass an explicit empty that the node understands. If you just want a placeholder to keep a layout tidy, that's what this is for. If you need to hold a specific empty string or a zero, that's a different node - this one is specifically None.

    Install

    Part of ComfyUI_Eclipse (r-vage). ComfyUI Manager, search ComfyUI_Eclipse, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/r-vage/ComfyUI_Eclipse
    

    Restart ComfyUI. It's a primitive with no dependencies and no models; the pack's requirements are already satisfied in almost every install. Shared-workflow heads-up: the pack renamed from RvTools_v2 and v4.0 dropped legacy node IDs, so a pre-v4 workflow that won't load wants the Workflow Migration Tool.

    Common issues

    The one real trap: None is not an empty string, not False, not zero. If a downstream node does math or string ops, feeding it None is a type error, not a helpful empty. Use it where the downstream logic is built for "optional/absent" semantics (fallbacks, switches, optional inputs) - not where a real value is expected. If the node "doesn't seem to do anything," that's correct behavior; you've verified that you wired a deliberate empty, and that's the whole job.

    Category🌒 Eclipse/ Primitives

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    value*