Nodes/ComfyUI-ZeroCLIP-nodes/ZeroClip Empty Conditioning
ComfyUI Node

ZeroClip Empty Conditioning

ZeroClip Empty Conditioning

By MushroomFleet·Created 5 months ago·Updated 5 months ago· 0
ZeroClip Empty Conditioning
    • conditioning
    dimension768
    sdxlfalse
    pooled_dimension1280

    If you're running a ZeroCLIP workflow at CFG above 1, your KSampler needs two conditioning inputs: the positive (your seed-derived concept) and a negative. ZeroClip Empty Conditioning is the honest answer to "what goes in the negative socket" - a zero vector, the conditioning equivalent of a blank prompt.

    It exists because a normal CLIP text encode won't do here. If you're conditioning with seed-derived vectors instead of text, slapping a regular text prompt into the negative input is conceptually mixing two different systems, and it doesn't give you the clean "nothing to steer away from" reference a ZeroCLIP negative should be. A zeros vector is exactly that: no concept, no direction, and on the unit-sphere math these nodes use it acts as the neutral origin.

    The inputs that matter

    • dimension (default 768) - the embedding width. This is the one you must get right: 768 for SD1.x, 1024 for SD2.x, 2048 for the SDXL sequence path.
    • sdxl (BOOLEAN, default off) - tick it for SDXL. It switches the output to SDXL's conditioning format, which carries a pooled_output dict in addition to the sequence tensor. Unticked SDXL output will mismatch what an SDXL checkpoint expects.
    • pooled_dimension (optional, default 1280) - the SDXL pooled embedding width, typically 1280. Only read when sdxl is on.

    Output is a standard CONDITIONING that plugs straight into the negative socket of KSampler (or KSampler Advanced).

    How it works

    Mechanically it's trivial: torch.zeros(1, 77, dimension) - a batch of 1, the standard 77-token CLIP sequence length, all zeros. With sdxl enabled it adds a zeros pooled_output of shape [1, pooled_dimension]. There's no model involved, nothing downloaded, it just emits the tensor. That's also why it's a nice sanity-check node: the shape it produces tells you what dimension your positive conditioning should be, and the ZeroClip Conditioning Info node can verify they match.

    Install

    Part of the ComfyUI-ZeroCLIP-nodes pack - ComfyUI Manager (search "ZeroCLIP") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MushroomFleet/ComfyUI-ZeroCLIP-nodes
    

    Restart ComfyUI; it lives under ZeroClip/. No pip install, no model files. This is one of the genuinely zero-setup nodes in the pack.

    Where people get burned

    • Dimension mismatch. Set 768 on an SDXL workflow and the KSampler will throw shape errors. Match the dimension to your checkpoint, and for SDXL don't forget the sdxl toggle.
    • Treating "empty" as "no conditioning." With the zeros negative, CFG pushes the output toward your positive concept harder than a text negative would, because there's nothing competing. If generations look oversaturated in concept, consider the Conditioning Blend node to mix in a softer negative instead.
    CategoryZeroClip

    Inputs (3)

    NameTypeDefaultDescription
    dimensionINT76864–4096Embedding dimension: 768 (SD1.x), 1024 (SD2.x), 2048 (SDXL seq)
    sdxlBOOLEANfalseEnable SDXL format (adds pooled_output to conditioning dict)
    pooled_dimensionoptINT128064–4096SDXL pooled embedding dimension (typically 1280)

    Outputs (1)

    NameTypeDescription
    conditioningCONDITIONING