Conditioning Zero Out
The explicit empty prompt
- conditioning
- CONDITIONING
Conditioning Zero Out turns any conditioning into "no signal at all." It takes a CONDITIONING, zeroes every embedding in it, and hands you back a conditioning that says nothing. It's the explicit version of what most models mean by an empty prompt - but with one useful difference: you can build it out of any conditioning, not just an empty text encode.
Where does that matter? Classifier-free guidance normally needs an unconditional pass - the model runs once with your prompt and once with nothing, and CFG steers away from the "nothing" result. ComfyUI handles the empty prompt for you in most cases, so on SD 1.5 and SDXL you rarely need this node at all. You reach for it when a workflow wants an unconditional branch spelled out, or when you're building conditioning by hand and want a guaranteed-zero baseline instead of trusting a text encode of "" to actually produce zeros.
How it works
Under the hood it's ruthless: every embedding tensor becomes torch.zeros_like(...), and the pooled output (the part used for class-conditioned models) gets zeroed too. It even zeroes the conditioning_lyrics field for audio models. Metadata is preserved - masks, areas, strengths stay attached - but the actual signal is gone.
That last bit is the subtle thing people miss. Because Zero Out keeps the metadata, a zeroed conditioning that carries a mask still has spatial structure. It's not "delete this prompt," it's "keep this prompt's geometry but contribute nothing semantically."
The inputs and outputs are as simple as it gets: one conditioning in, one conditioning out. The only knob is which conditioning you put in - positive or negative, and what metadata it carries.
When it's the right tool
- Building the unconditional half of a custom guidance setup where you need a real zero vector rather than an approximate one.
- Audio conditioning - the node explicitly zeroes lyrics conditioning, which is handy when a music model's lyrics channel would otherwise bleed in.
- Diagnosing workflows - drop it in place of a suspect prompt encode to prove whether a branch is contributing. If the image doesn't change with it in the loop, that branch was dead weight.
The trap
On guidance-distilled, flow-matching models running at CFG 1 there is no unconditional pass at all - the negative prompt field is inert, and so is a zeroed conditioning on the negative side. Zeroing won't resurrect negative prompting there; the architecture just doesn't use it. And if you zero the positive side of a model that expects real conditioning, you'll get mush, not "neutral" output - an empty embedding is not a free creative mode.
It ships in ComfyUI core (nodes.py, search alias "null conditioning" and "clear conditioning"). Not a node you'll use every day, but a genuinely sharp tool when a workflow needs a deliberately mute branch.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |