ZeroClip Conditioning Blend
ZeroClip Conditioning Blend
- conditioning_a
- conditioning_b
- conditioning
ZeroClip Conditioning Blend is the pack's mixer tap: it takes two CONDITIONING inputs and interpolates between them by a single weight. In a text-free workflow that's a surprisingly powerful thing, because it means you can morph between two seeds - or between a ZeroCLIP conditioning and a regular CLIP text conditioning - with one slider.
The most interesting use is blending two seed-derived conditionings. Since nearby ZeroCLIP coordinates already produce related outputs, a blend lets you walk between two distant concepts smoothly instead of jumping. The other common use is mixing ZeroCLIP with plain text conditioning: keep the deterministic seed concept as the backbone, then mix in a CLIP Text Encode of "portrait, studio lighting" for a bit of conventional control.
The inputs
- conditioning_a - first conditioning (the "0.0" end).
- conditioning_b - second conditioning (the "1.0" end).
- weight_b (FLOAT, default 0.5, 0–1) - how much of B to use. 0.0 is 100% A, 1.0 is 100% B, 0.5 is a 50/50 mix. A slider wired to this is a two-concept morph control.
Output is a single conditioning you can feed straight to KSampler.
How it works
Under the hood it does a weighted linear interpolation of the two tensors (A * (1-w) + B * w), then L2-renormalizes the result. That last step matters: ZeroCLIP conditioning lives on the unit sphere, so a naive average would shrink the vector and change its effective magnitude - the renormalization keeps the blend at the same scale as its parents. If both inputs carry a pooled_output (SDXL format), it blends and renormalizes that too, so the node works identically on SDXL pipelines.
Install
Ships in ComfyUI-ZeroCLIP-nodes. ComfyUI Manager (search "ZeroCLIP"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/ComfyUI-ZeroCLIP-nodes
Restart ComfyUI; it's under ZeroClip/. No pip install, no model files.
Gotchas worth knowing
- You can't blend mismatched dimensions. If A is a 768-dim SD1.x conditioning and B is an SDXL 2048-dim vector, the interpolation will fail with a shape error. Keep both sides on the same checkpoint family.
- Blending text and seed conditioning is more art than science. The text-encoded vector isn't on the same statistical manifold as the seed-derived one, so a 50/50 mix can land somewhere neither parent intended. Start at weight_b around 0.2 and nudge up.
- It's not a lerp between images. This interpolates the conditioning, which changes what the sampler steers toward - the actual image blend is emergent and often nonlinear. If you want literal image morphing, this is the wrong tool.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_a | CONDITIONING | — | |
| conditioning_b | CONDITIONING | — | |
| weight_b | FLOAT | 0.500–1 | 0.0=100% A, 1.0=100% B, 0.5=equal blend |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |