GGUF CLIP Loader π
Open quantized text encoders without another extension install
- clip
- summary
On Flux- and SD3-class models, the text encoder quietly eats a shocking share of your memory. T5-XXL alone is in the neighborhood of 8B parameters - around 17GB in fp16 - which is a big reason "quantize the text encoder too" became standard advice once GGUF hit diffusion. This node loads one or two quantized text-encoder .gguf files (CLIP-L, CLIP-G, T5-XXL, and friends) and hands you a normal ComfyUI CLIP object you can wire straight into CLIPTextEncode.
One catch up front, and it's the same one that runs through the whole GGUF half of OmniNodes: the tensors are fully dequantized to fp16 at load time and passed to ComfyUI's own text-encoder loading code. So you get a perfectly working CLIP that behaves identically to one from a safetensors DualCLIPLoader - but you do not get the reduced-memory load that a quantized-inference-native extension (again, city96's ComfyUI-GGUF) provides by keeping weights quantized on the GPU. If your actual goal is freeing VRAM by running a quantized T5, that extension is the tool. If your goal is "open this GGUF text encoder I already downloaded without installing anything else," this is your node. Those are different jobs, and knowing which one you're doing saves you a confusing afternoon.
How it works
It mirrors core ComfyUI's own CLIPLoader/DualCLIPLoader shape on purpose. Each file is read and dequantized with the gguf package, and the resulting state dicts go through comfy.sd.load_text_encoder_state_dicts along with a clip_type - the same selector core ComfyUI uses to decide which tokenizer and encoder wiring a model family needs. So if you already understand how core's DualCLIPLoader works for Flux (T5-XXL + CLIP-L) or SDXL (CLIP-L + CLIP-G), this is that, just fed by GGUF files.
Inputs and outputs that matter
clip_name1(required) - first encoder file. The dropdown sweepsclip,clip_gguf,text_encoders, andcheckpointsfolders;path_override1covers anything elsewhere.clip_type- defaultstable_diffusion, with the full set:flux,sd3,stable_cascade,ltxv,hunyuan_video,mochi,stable_audio. This must match the model family you're prompting, not just whatever the file is named.clip_name2(optional) - second encoder for the dual setups (SDXL, Flux). Leave it on the placeholder"none"entry to load a single encoder, like just a quantized T5-XXL.
Outputs are clip (a real CLIP β CLIPTextEncode) and summary, which lists the files loaded, the clip_type used, and any tensors that had to be skipped.
Installing
This is one node of OmniNodes, TensorVizion's big all-in-one pack whose GGUF category is its newest corner. Install the pack once:
cd ComfyUI/custom_nodes/
git clone https://github.com/TensorVizion/OmniNodes
cd OmniNodes && pip install -r requirements.txt
Restart ComfyUI afterwards. ComfyUI Manager users can search "OmniNodes" instead of cloning - but the pip install gguf step applies either way, since that package isn't bundled with ComfyUI. The node shows up under TensorVizion/GGUF.
Troubleshooting
If nothing appears in the file dropdowns, your .gguf isn't in a folder ComfyUI scans - move it to ComfyUI/models/text_encoders (or clip) or type an absolute path into path_override1. The most common self-inflicted wound is a mismatched clip_type: loading a Flux T5 with clip_type: stable_diffusion gives you a CLIP that won't encode sensibly for your model. Match the family. And if ComfyUI's core loader rejects the dequantized state dict, you've probably got a file that isn't a text encoder at all - run GGUFFile Info (also in this pack, also free) to see what the architecture metadata actually says before you fight the loader.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name1 | COMBO | 1 options: <none found in model folders β use path_override> | |
| clip_type | COMBO | stable_diffusion | 8 options: stable_diffusion, stable_cascade, sd3, stable_audio, flux, hunyuan_video, +2 |
| clip_name2opt | COMBO | none | 2 options: none, <none found in model folders β use path_override> |
| path_override1opt | STRING | β | |
| path_override2opt | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | β |
| summary | STRING | β |