ZeroClip Empty Conditioning
ZeroClip Empty Conditioning
- conditioning
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_outputdict 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
sdxlis 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
sdxltoggle. - 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dimension | INT | 76864–4096 | Embedding dimension: 768 (SD1.x), 1024 (SD2.x), 2048 (SDXL seq) |
| sdxl | BOOLEAN | false | Enable SDXL format (adds pooled_output to conditioning dict) |
| pooled_dimensionopt | INT | 128064–4096 | SDXL pooled embedding dimension (typically 1280) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |