Nodes/ComfyUI-ZeroCLIP-nodes/ZeroClip-A Conditioning (SDXL)
ComfyUI Node

ZeroClip-A Conditioning (SDXL)

Two anchor libraries, one conditioning

By MushroomFleet·Created 5 months ago·Updated 5 months ago· 0
ZeroClip-A Conditioning (SDXL)
  • 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_SEED from 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_ANCHORS inputs; wire only anchors_seq and 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_output breaks the pipeline. Use this node.
CategoryZeroClip/A - Basis Decomposition

Inputs (3)

NameTypeDefaultDescription
anchors_seqZEROCLIP_A_ANCHORSSequence anchor library (D=2048)
anchors_pooledZEROCLIP_A_ANCHORSPooled anchor library (D=1280)
seedZEROCLIP_SEED

Outputs (1)

NameTypeDescription
conditioningCONDITIONING