EGTextEncoderLoader
Pick the file, then pick the one dropdown that actually matters
- CLIP
EGTextEncoderLoader is the pack's Load CLIP - one text-encoder file in, one CLIP out, for models whose encoder ships separately from the weights.
The filename widget is obvious. The type widget is the one that decides whether your workflow runs at all.
Why it exists
Split-file models need three loaders, and the gallery wires all three for its Anima, Flux, Qwen Image and Z-Image profiles. This is the single-encoder one: Z-Image uses it with a Qwen3 4B encoder, Qwen Image with Qwen2.5-VL 7B, Anima with a Qwen3 0.6B.
It's a subclass of ComfyUI's CLIPLoader with the loading path untouched. The only override is IS_CHANGED, which returns the encoder file's identity - path, size, nanosecond mtime and ctime - so replacing an encoder in place re-executes instead of serving a cached graph built on the old weights. For the gallery that matters doubly: replacing a text encoder invalidates the cache recipe, because the encoder is part of the set identity.
The type dropdown, and why it's the whole node
type tells ComfyUI which tokenizer and encoder class to build, and how to wire its output into conditioning. Get it right and everything downstream just works. Get it wrong and you get either a hard error or - worse - conditioning that encodes nonsense and produces images that ignore your prompt in a plausible-looking way.
This used to be a two-value dropdown (sd and sdxl). It isn't anymore, because the encoder itself got swapped out: SD 1.5 used CLIP ViT-L/14, SDXL added OpenCLIP-G, Flux and SD3 bolted on T5-XXL, and the current generation encodes with general-purpose LLMs - Qwen3 for Z-Image and Anima, Qwen2.5-VL for Qwen Image. Every one of those needs its own loader type.
The author's own recipe list is the best cheat sheet, and it's long enough that it's worth knowing the shape of it rather than memorising it: stable_diffusion for CLIP-L, stable_cascade for CLIP-G, sd3 for T5-XXL/CLIP-G/CLIP-L, stable_audio for T5-base, mochi and wan for T5-XXL and UMT5-XXL, lumina2 for Gemma 2 2B, hidream for Llama-3.1 or T5, and a set of newer entries for models that pair an LLM with an image tower.
Two of those recipes look wrong until you've read the pack's model profiles. Z-Image Base and Turbo both use type lumina2 with a Qwen3 4B encoder - because Lumina 2 established the Gemma-family wiring that Z-Image's conditioning reuses. And Anima uses plain stable_diffusion. That's not a bug; it's how the pack's profiles are defined, and it's why hand-building a Z-Image graph without the pack often fails at the encode step.
Inputs and outputs
- clip_name - a file from
ComfyUI/models/text_encoders. - type - as above. The important one.
- device (optional) -
defaultorcpu. Choosingcpukeeps a multi-gigabyte encoder out of VRAM; the encode gets slower but a 7B-Qwen-sized encoder stops competing with your diffusion model for memory. Useful on 12GB cards running Qwen Image. - CLIP - out to your
CLIPTextEncode, and to any LoRA loader that patches the text side.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/nikminer/ComfyUI-Emotional-Gallery.git comfyui_emotional_gallery
Restart and Ctrl+F5. No pip dependencies, no bundled models - put your encoders in models/text_encoders. On ComfyUI Manager it's "ComfyUI Emotional Gallery".
Filed under Emotional Gallery/internal, so it's hidden from the Add Node menu along with the other eight pack nodes. It stays registered, so workflows that use it still open and run.
Common issues
Empty dropdown. models/text_encoders is empty, or the file is in models/clip under an older layout. ComfyUI reads the folder at startup, so restart after adding files.
"clip input is invalid" or TypeErrors at the encode step. Type mismatch. Recheck which recipe your model actually wants - a T5 file loaded as stable_diffusion fails loudly, a Gemma file loaded as sd3 fails confusingly.
Prompt has almost no effect on the image. A wrong type can build a conditioning that technically works and carries no useful signal. On models with an LLM encoder, also remember that CLIP skip, prompt weighting syntax and the 77-token limit no longer apply - those were CLIP habits, and this is not CLIP.
Out of memory before sampling starts. A 7B-plus encoder is heavy. Set device to cpu, or check whether you actually needed this loader rather than a checkpoint that bundles its own encoder.
A Missing 1 required positional argument style crash when ComfyUI boots. Not this node specifically - see the triple-encoder article; an old ComfyUI can fail the whole pack at import.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name | COMBO | 0 options: | |
| type | COMBO | 28 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +22 | |
| deviceopt | COMBO | 2 options: default, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |