Load CLIP (Any)
One text-encoder loader, ten architectures worth of recipes
- any
- CLIP
This is the loader for split-workflow setups - the ones where you're not using an all-in-one checkpoint, but loading a diffusion model and its text encoder as separate files so you can mix, match, or stage them independently. CLIPLoader_Any loads exactly one text encoder and hands it back as a CLIP output, ready to plug into a CLIPTextEncode node.
The type dropdown is the whole trick
The node needs to know which tokenizer and config to apply to a raw safetensors file, and that's what type is for. The pack's own node description ships a cheat sheet, and it's worth just quoting it, because it's the fastest reference you'll find:
stable_diffusion→ clip-lstable_cascade→ clip-gsd3→ t5xxl / clip-g / clip-lstable_audio→ t5 basemochi→ t5xxlcosmos→ old t5xxllumina2→ gemma 2 2Bwan→ umt5xxlhidream→ llama-3.1 (recommended) or t5omnigen2→ qwen vl 2.5 3B
Match type to the model you're loading. Pick the wrong one and ComfyUI will either error outright or build the wrong tokenizer for your prompt, and you won't get a useful clue as to why.
The other input worth knowing about is device, with two options: default or cpu. Forcing cpu keeps the encoder off your GPU entirely - genuinely useful when the text encoder is huge (Wan's umt5xxl, HiDream's llama-3.1) and you'd rather spend that VRAM on the diffusion model instead, accepting a slower encode pass in exchange.
The any staging trick
Like every node in this pack, there's a bonus optional input, any, that accepts anything and does nothing with it except delay execution until its source finishes. ComfyUI would otherwise load a text encoder the instant nothing blocks it - which, for a leaf node like a loader, is usually right at the start, alongside every other model in the graph. Wire something into any and you control when it actually loads instead.
This is one of the two headline examples in the pack's own documentation: connect UNETLoader_Any after your CLIPTextEncode nodes so the (usually much heavier) diffusion model doesn't occupy VRAM while you're still encoding text. CLIPLoader_Any is the other half of that same trick - you can defer loading the text encoder itself if something else needs to run first.
Installing it
ComfyUI Manager: search ComfyUI-LoaderUtils, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/lrzjason/ComfyUI-LoaderUtils
No extra pip packages - it wraps ComfyUI's own CLIPLoader class. Put your text encoder file in models/clip like you normally would; nothing about the file format changes.
Where people get burned
Wrong type for the file is the most common failure - SD3's recipe alone lists three different combinations depending on which encoders you actually have, so double-check against the model card for whatever you're loading, not just the architecture family name.
One real limitation: this pack has no GGUF-format loader. If your text encoder is a GGUF quant, this node won't load it - you need ComfyUI-GGUF's own CLIP loader for that, which doesn't carry the any staging input this pack adds. For everything else, weight_dtype-style precision control isn't exposed here either; if you need fp8 casting on a text encoder specifically, that typically comes from choosing an already-fp8 file rather than this node casting it for you.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name | COMBO | 0 options: | |
| type | COMBO | 10 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, cosmos, +4 | |
| deviceopt | COMBO | 2 options: default, cpu | |
| anyopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |