ZeroClip-A Conditioning (SDXL)
Two anchor libraries, one conditioning
- anchors_seq
- anchors_pooled
- seed
- conditioning
SDXL is a different beast from SD1.x: it conditions on two text encoders (CLIP-L and OpenCLIP-G), which means its conditioning format carries both a sequence tensor and a pooled_output. ZeroClip-A Conditioning (SDXL) is the variant of the A conditioner built for that two-part format - and it's why this pack's SDXL support isn't just a checkbox on the SD1.5 node.
If you've seen how SDXL works, you know the deal: the sequence embedding (dimension 2048 here, from concatenated encoder states) and the pooled embedding (1280, from the bigG pooler) go into the sampler together. The SDXL node needs two anchor libraries - one for the sequence path, one for the pooled path - and it produces a conditioning with both pieces present.
The inputs
- anchors_seq - anchor library for the sequence embeddings (D=2048). Fed by a ZeroClip-A Load Anchors node pointing at the SDXL sequence anchors file.
- anchors_pooled - anchor library for the pooled embeddings (D=1280), from a second Load Anchors node pointing at the SDXL pooled anchors file.
- seed - the standard
ZEROCLIP_SEEDfrom Seed Pack or Seed From Random.
Output is a CONDITIONING with pooled_output included, which is exactly what an SDXL KSampler expects. The tooltips on the inputs spell out the dimensions so you can verify you loaded the right files.
How it works
Mechanically it's the same algorithm as the base A node - coherent-noise weighted sums over anchor libraries, L2-normalized - just run twice: once over the sequence anchors to get the 2048-dim vector, once over the pooled anchors to get the 1280-dim one. The two are then packed into the SDXL conditioning format. Same seed drives both, so the sequence and pooled concepts stay consistent with each other.
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. You'll need the SDXL-flavored A artifacts from huggingface.co/mushroomfleet/zeroclip in models/zeroclip/ - the SDXL seq and pooled anchor files are distinct downloads, and building them yourself requires the SDXL build path (--variant A --sdxl --sdxl-checkpoint ...).
Where people get burned
- Only one loader connected. This node wants two
ZEROCLIP_A_ANCHORSinputs; wire onlyanchors_seqand you'll get an unconnected-input error. It's the single most common mistake with this node. - Swapping SDXL and SD1.5 files. The 2048/1280 dimensions are hard requirements. Loading an SD1.5 anchors file (768-dim) into an SDXL node fails with a shape error on the first run. Check dimensions with the Conditioning Info node if you're unsure.
- The plain A node won't work on SDXL. Don't try to hack the non-SDXL conditioner onto an SDXL checkpoint - the missing
pooled_outputbreaks the pipeline. Use this node.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| anchors_seq | ZEROCLIP_A_ANCHORS | Sequence anchor library (D=2048) | |
| anchors_pooled | ZEROCLIP_A_ANCHORS | Pooled anchor library (D=1280) | |
| seed | ZEROCLIP_SEED | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |