Nodes/ComfyUI/CLIP Text Encode (SD3)
ComfyUI Node Runs on cloud

CLIP Text Encode (SD3)

Prompting SD3 and SD3.5

By Comfy-Org·Created 4 years ago·Updated about 19 hours ago· 129,495
CLIP Text Encode (SD3)
  • clip
  • CONDITIONING
clip_l
clip_g
t5xxl
empty_padding

Stable Diffusion 3 doesn't use one text encoder - it uses three, and this is the node that runs them all and merges the result into a single CONDITIONING for the sampler. It's the SD3-family sibling of the old one-box CLIPTextEncode, and it's been in core since SD3 support landed back in June 2024.

The three boxes

  • clip_l - the small CLIP-L encoder. SD-era vocabulary, tags-ish, short and punchy.
  • clip_g - the bigger CLIP-G (the OpenAI giant encoder). Same idea, more capacity.
  • t5xxl - a T5-XXL text encoder. This is the one that reads natural language and carries most of the prompt weight.

You feed all three from the SD3/SD3.5 checkpoint loader's CLIP output, then the node tokenizes each text into its own encoder slot. Same sentence in all three boxes is normal; different emphasis per box is a real technique, because each encoder sees the same words through a different lens.

The knob that matters

empty_padding is the parameter everyone skips and then wonders about. It has two options:

  • none - a box you leave blank is dropped entirely; that encoder contributes nothing.
  • empty_prompt - blank boxes get padded with empty-token embeddings instead.

The source is explicit: with none, an empty clip_l or clip_g is removed from the token dict rather than fed as padding. That matters more than it sounds - if you're prompting an SD3.5 model and deliberately want to lean entirely on the T5, setting none and blanking the CLIP boxes changes the conditioning meaningfully. It's advanced for a reason; leave it on the default unless you're debugging why a half-filled prompt behaves oddly.

What comes out

One output: CONDITIONING, ready for the KSampler's positive input (and a second copy for negative, with the negative prompt filled in the same three boxes). That's it - the node is a pure encoder, no hidden state toggles, no timestep math.

The gotchas

SD3 and SD3.5 are finicky about prompt style in ways older models weren't. The T5 reads plain language well, so "a red ceramic mug on a wooden table, soft window light" beats a tag soup. Fill all three boxes with the same prompt for the least surprising result; the moment you leave one empty, you're changing the effective conditioning even if the image looks similar. And if you're coming from SDXL, the clip_l/clip_g boxes will look familiar but the T5 box is where the real quality lives - give it a full sentence. It ships with core, so there's nothing to install; the hard part is just remembering that the one node is doing the work of three encoders at once.

Categorymodel/conditioning/stable diffusion

Inputs (5)

NameTypeDefaultDescription
clipCLIP
clip_lSTRING
clip_gSTRING
t5xxlSTRING
empty_paddingCOMBO2 options: none, empty_prompt

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING