Nodes/braintacles-nodes/CLIPTextEncodeSDXL-Pipe
ComfyUI Node

CLIPTextEncodeSDXL-Pipe

Keep your SDXL prompt bundle on one wire

By braintacles·Created 3 years ago·Updated 2 years ago· 2
CLIPTextEncodeSDXL-Pipe
  • clip
  • refiner_clip
  • latent
  • conditioning
  • refiner conditioning
  • CLIP
  • refiner CLIP
  • latent
text_gCLIP_G
text_lCLIP_L

The SDXL refiner era created a wiring problem: base CLIP conditioning, refiner conditioning, and both CLIPs all need to reach the sampler, and dragging each wire across a big canvas is how graphs turn into spaghetti. CLIPTextEncodeSDXL-Pipe bundles the whole thing - the encode plus the CLIPs plus your latent - so the encode half of the graph stays one node wide. It's the "pipe" pattern rgthree's pack made famous: carry a bundle of connections down one wire instead of rerouting them individually.

How it works

Same encode as the core node: text_g goes to the "g" token stream, text_l to the "l" stream, padded to equal length, encoded with pooled output and size info. If you feed refiner_clip, it encodes the same text with the refiner's CLIP too - there's no separate refiner prompt field. If you feed a latent, the conditioning is sized from it (latent ×8); otherwise it assumes 1024×1024.

Inputs: clip, text_g, text_l (multiline, defaults "CLIP_G"/"CLIP_L"), optional refiner_clip and latent.

Outputs, all from one side of the node:

  • conditioning and refiner conditioning - the two CONDITIONING streams
  • CLIP and refiner CLIP - the encoders, passed through
  • latent - passed through

The honest take

The refiner is where the community checked out. Base-plus-refiner two-stage SDXL was the design, and most people ignored the refiner entirely - SDXL finetunes made it redundant. So if you're not actually running a refiner pass, the refiner conditioning and refiner CLIP outputs just duplicate the main ones, and this node is more plumbing than you need. The plain core encoder is simpler.

Where the Pipe earns its keep is tidiness at scale. After a few ConditioningCombine, Concat and Average nodes, having conditioning, CLIP and latent arrive on one node and leave on one node keeps the graph readable. If that's your problem, this is your node.

Gotchas

  • The refiner shares the same prompt text. Want different wording for the refiner stage? Not possible here.
  • SDXL-family only. The CLIP-G/CLIP-L pair doesn't exist on Flux-class models.
  • refiner CLIP and latent outputs can be left dangling - they're pass-throughs, not something the sampler needs wired twice.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/braintacles/braintacles-comfyui-nodes

or search braintacles-nodes in ComfyUI Manager and restart. No Python dependencies, no model downloads - it wraps ComfyUI's own CLIP encode APIs, so it keeps working across ComfyUI updates. The pack itself is dormant since mid-2024, but this node doesn't touch anything that's changed.

Categorybraintacles/conditioning

Inputs (5)

NameTypeDefaultDescription
clipCLIP
text_gSTRINGCLIP_G
text_lSTRINGCLIP_L
refiner_clipoptCLIP
latentoptLATENT

Outputs (5)

NameTypeDescription
conditioningCONDITIONING
refiner conditioningCONDITIONING
CLIPCLIP
refiner CLIPCLIP
latentLATENT