CLIP Text Encode (SD3)
Prompting SD3 and SD3.5
- clip
- CONDITIONING
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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| clip_l | STRING | — | |
| clip_g | STRING | — | |
| t5xxl | STRING | — | |
| empty_padding | COMBO | 2 options: none, empty_prompt |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |