SD3 Text Conditioning With Options. One Prompt (Mikey)
SD3 Text Conditioning With Options. One Prompt (Mikey) — ComfyUI Node
- clip
- positive_conditioning
- negative_conditioning
SD3 is the model with three separate text encoders bolted onto one diffusion backbone - CLIP-L, OpenCLIP-G, and T5-XXL - and every one of them gets a say in what your image looks like. Stock ComfyUI's triple-clip encoder treats them as a package deal: you type a prompt, all three encoders chew on it, done. This node is what happens when someone decides that's not enough control and lets you tell each of the three encoders something different - for one positive/negative prompt pair, in a single node.
Why you'd want that
The encoders aren't equal. T5-XXL is the expensive one - Stability's own SD3 paper found that dropping it entirely at inference costs almost nothing in aesthetics, a little in prompt adherence, and mostly hits typography. So a very reasonable move is: give CLIP-L and CLIP-G your real prompt, and just don't bother feeding T5 anything - save the compute, keep the look. This node is what gives you that lever per-encoder instead of all-or-nothing. It's also handy if you've noticed CLIP-L/CLIP-G's hard 77-token cap turning long prompts to mush (SD3 truncates ugly past that point, unlike the graceful degrade you get on newer LLM-encoded models) - you can blank or pad the CLIP inputs while keeping T5, which has a much longer effective window, doing the heavy lifting.
The controls that matter
You feed it positive_prompt and negative_prompt as plain text, plus the clip object from SD3's triple CLIP loader. Then, for each of the six slots (positive/negative × clip_l/clip_g/t5xxl), you pick one of three modes:
- Unmodified - the encoder gets your actual prompt text, normal behavior.
- Padded - the encoder gets filler instead, built from
padding_character(a comma by default) repeated out. - Empty - the encoder gets nothing at all.
Out come positive_conditioning and negative_conditioning - plug those straight into your KSampler like any other CONDITIONING pair.
The pack's README doesn't spell out the exact mechanics beyond "text conditioning with additional configurable options," so treat the above as the honest read of what the schema exposes, not a quote from bash-j. What's certain is the shape: six independent switches, one padding character, two conditioning outputs.
Installing it
Same as everything else in this pack - through ComfyUI Manager (search "Mikey Nodes"), or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/bash-j/mikey_nodes
Restart ComfyUI after either method. No extra models to download for this node - it just needs an SD3 checkpoint and its matching triple CLIP loader already in your graph.
Where people get tripped up
The clip input has to come from an actual SD3 triple-encoder loader, not a regular SDXL or Flux CLIP loader - SD3's CLIP object is structured differently (it's carrying three sub-encoders, not one or two), and feeding it the wrong type will error rather than silently degrade.
Worth knowing before you sink time into tuning this node: SD3 itself is a fairly quiet corner of the ecosystem these days. CivitAI pulled the whole family from its generator and eventually from hosting after Stability's 2025 acceptable-use policy revision banned sexual content outright, and the finetune ecosystem never really formed - almost nobody trains on it, almost nobody's shipping new SD3 LoRAs. The people still running SD 3.5 Large mostly use it for a first pass on composition and color, then refine through something newer like Z-Image or Wan. If that's your workflow, this node is genuinely useful for squeezing more control out of a model that doesn't get much tooling attention anymore. If you're just starting a new project, it's worth knowing you're picking a niche architecture before you build a whole pipeline around it.
If your output looks identical regardless of which mode you pick on a given encoder, double-check you're not accidentally leaving every slot on Unmodified - the enum defaults there, so a misclick or a copy-pasted node can silently undo the whole point of using this over the stock triple encoder.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | positive prompt | — |
| negative_prompt | STRING | negative prompt | — |
| clip | CLIP | — | |
| option_positive_clip_l | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| option_positive_clip_g | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| option_positive_t5xxl | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| option_negative_clip_l | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| option_negative_clip_g | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| option_negative_t5xxl | COMBO | Unmodified | 3 options: Unmodified, Padded, Empty |
| padding_character | STRING | , | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_conditioning | CONDITIONING | — |
| negative_conditioning | CONDITIONING | — |