ZeroClip-A Conditioning
ZeroClip-A Conditioning
- anchors
- seed
- conditioning
This is the heart of the ZeroCLIP-A variant: ZeroClip-A Conditioning takes an anchor library plus a seed and produces a standard ComfyUI CONDITIONING that plugs straight into KSampler. In the normal text pipeline you'd have a CLIP Text Encode node here; in a ZeroCLIP workflow this node is that box, minus the text box.
Why would you want that? Because the result is a pure function of the numbers. Same anchors, same seed → same conditioning vector → same image, on any machine, forever. No tokenizer version drift, no prompt parse differences between ComfyUI releases. If you're building reproducible grids or sharing workflows where the "prompt" is a seed range instead of a paragraph, that's the whole point.
The two inputs that matter
- anchors - the
ZEROCLIP_A_ANCHORSoutput from a ZeroClip-A Load Anchors node. This is your vocabulary: the library of CLIP embeddings the conditioning gets built from. - seed - a
ZEROCLIP_SEED, from either ZeroClip Seed Pack (deliberate four-axis control) or ZeroClip Seed From Random (single randomized master seed). The four values inside - concept_id, style_id, mood_salt, world_seed - are what actually drive the output.
Output is a single conditioning (CONDITIONING) for the positive input of KSampler. Pair it with a ZeroClip Empty Conditioning node on the negative socket if you're running CFG above 1.
How it works, in plain terms
The seed gets hashed with FNV-1a, and that hash drives a weight distribution over the anchor library. The clever bit is the weighting: it's generated from coherent noise over the concept_id/style_id coordinate space, so nearby coordinates produce nearby weight distributions. That's the mechanism behind the "nearby seeds → related images" property, and it's why you can sweep concept_id and get a smooth visual walk rather than static. The weighted sum over anchors is then L2-normalized (it has to live on the unit sphere) and expanded to the standard [1, 77, D] conditioning shape the sampler expects.
Install
Part of 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/A - Basis Decomposition. No pip install, but you do need the anchor artifact in models/zeroclip/ (download from huggingface.co/mushroomfleet/zeroclip or build with --variant A).
The honest take
ZeroClip-A is the most "general-purpose" of the four variants - the README's table calls it smooth blends of known concepts, best for general-purpose text-free conditioning. It's also the most predictable: because anchors are real CLIP embeddings, the outputs tend to sit in familiar semantic territory. It's the variant I'd hand a beginner first. Where people trip up: forgetting the anchors library (the Conditioning node errors without a connected loader), and mismatching dimension - 768 for SD1.x checkpoints, 2048 for SDXL (which needs the separate SDXL Conditioning node).
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| anchors | ZEROCLIP_A_ANCHORS | — | |
| seed | ZEROCLIP_SEED | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |