Smart Triple CLIP Loader MXD
SD3's Three-Text-Encoder Setup Without the GGUF Node Juggling
- CLIP
Some models want three text encoders, and this is the loader for exactly that. The Smart Triple CLIP Loader MXD replaces ComfyUI's TripleCLIPLoader - three clip_name slots plus a type dropdown - and like its siblings in this pack, each slot happily takes a .gguf or safetensors file, per slot, no consistency required.
The one place you'll actually hit this is SD3 and SD3.5. That family runs a T5-XXL alongside the CLIP-G/CLIP-L pair, and the whole stack is why SD3 was never a low-VRAM-friendly model - the encoders alone are several GB at full precision. The classic budget setup is a GGUF T5 next to two safetensors CLIPs, or all three quantized on very tight cards. The core TripleCLIPLoader can't do that mix in one node; this one can, which is the entire pitch.
How it works
Same machinery as the rest of the pack, which is itself a fork of city96/ComfyUI-GGUF's loader. Each clip_name slot pulls from a merged dropdown of models/text_encoders plus .gguf files in that folder. If everything you pick is non-GGUF, it calls the same comfy.sd.load_clip path as the built-in node - a pure drop-in for existing SD3 workflows. Introduce any GGUF and it switches to per-file loading: GGUFs through gguf_clip_loader, safetensors through the standard torch loader, then all three joined with GGML ops. GGUF tokenizers get reconstructed from file metadata, which is why the pack depends on sentencepiece and protobuf.
The type dropdown is copied directly from the core CLIPLoader, so you get the full 25-entry list: sd3, stable_cascade, ltxv, pixart, cosmos, wan, hidream, and more. For SD3 you set sd3; that tells ComfyUI how to assemble the three encoders. The mapping is literal - the string gets uppercased and looked up against ComfyUI's CLIPType enum, defaulting to stable_diffusion if it doesn't match, so a typo silently falls back instead of erroring. That's worth remembering when output looks wrong for no obvious reason.
Inputs and outputs
clip_name1,clip_name2,clip_name3- one file each; mixing formats is fine.type- the architecture selector. Same list as core, same rules.
Output is a single CLIP, straight into a CLIP Text Encode. It's a one-for-one swap with the core TripleCLIPLoader - delete one, add the other, no rewiring.
Install
ComfyUI Manager, search "Smart Model Loaders". Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD
cd ComfyUI-SmartModelLoaders-MXD
pip install -r requirements.txt
Restart and it's under advanced/loaders. No model downloads - it reads encoders you already have. Dependency-wise it's the same light set as the pack's other nodes.
Common issues
- "Incompatible with llama.cpp" error on a GGUF - the T5 conversion lacks usable tokenizer metadata. Grab a well-maintained conversion (city96 and bullerwins' are the usual suspects) or fall back to safetensors for that slot.
- Wrong-looking prompts with no error - check
type. Because an unrecognized type silently falls back to stable_diffusion, a mistypedsd3can produce a working-but-wrong graph. It's the kind of failure that sends you down a rabbit hole; check the dropdown first. - SD3 still OOMs with quantized encoders - the 8B transformer is the other big chunk; if you're already on GGUF there, drop a quant tier rather than chasing the encoders further.
For most people, SD3's three-encoder stack is niche. If you run it, this is a genuine quality-of-life upgrade; if you don't, the dual loader in this pack is the one that earns its keep.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name1 | COMBO | 0 options: | |
| clip_name2 | COMBO | 0 options: | |
| clip_name3 | COMBO | 0 options: | |
| type | COMBO | 25 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +19 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |