KREA2 CLIP GGUF LOADER (TJ)
The Krea 2 Text Encoder Is a 4B Vision LLM, and GGUF Loaders Didn't Want to Know
- clip
When people say "Krea 2 in GGUF" they usually mean the 12B diffusion model. That's the easy half. The annoying half is that Krea 2's text encoder is not a CLIP model at all - it's a full Qwen3-VL-4B, a vision-language model, encoding your prompt through multilayer feature aggregation rather than a last-layer slice. Krea picked a VLM as its encoder on purpose, because they wanted an edit model later and got zero-shot bounding-box prompting for free.
ComfyUI core already knows how to do this. CLIPType.KREA2 plus TEModel.QWEN3VL_4B routes into comfy.text_encoders.krea2. So there is nothing exotic to implement. The only thing standing between you and a quantized Krea 2 encoder is a gate in city96's ComfyUI-GGUF pack that refuses files whose general.architecture tag it doesn't recognise.
What the node does about it
Most "fix the allowlist" nodes hardcode the string they need. This one doesn't - the author couldn't confirm what a Krea 2 Qwen3-VL-4B export actually declares in its GGUF metadata, and TXT_ARCH_LIST already contains qwen3vl, so guessing was a coin flip. Instead the node opens your selected file, reads the general.architecture value it declares, and adds that to the allowlist.
It's safe because the tag is only a gate. Downstream, ComfyUI detects the text model from tensor keys, not from GGUF metadata, so whatever the exporter spelled it as, the right class gets picked.
The patch is also non-destructive: it adds to a set at load time rather than editing anything in the ComfyUI-GGUF folder, so a Manager update to that pack won't silently undo it. Load the node again and the entry goes back in.
Inputs and output
Three things, and only the first one is mandatory:
clip_name- a dropdown of.gguffiles, gathered frommodels/clip_gguf,models/clipandmodels/text_encoders. If you see(no .gguf files found)in that list, the file is in the wrong folder (or you haven't refreshed the node's list).auto_set- off by default. Turn it on and the output is published as a wireless provider under the name insetnode_name, which is part of this pack's Set/Get routing layer.setnode_name- defaults toKrea2_CLIP. This is the name other nodes'get_nameslots will show when they're picking up a CLIP wirelessly.
One output: clip, a normal CLIP object with type=krea2. Wire it into your usual CLIP Text Encode pair, exactly as you would a checkpoint's CLIP.
Install
Grab the pack the normal way - ComfyUI Manager → Install Custom Nodes → search TJ_NODE - or:
cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE.git
# restart ComfyUI
You also need city96/ComfyUI-GGUF, which supplies the CLIPLoaderGGUF class this node borrows. Without it you get a RuntimeError telling you so, which is at least a clear failure.
The pack's requirements.txt pulls in llama-cpp-python, openpyxl, imageio and imageio-ffmpeg for its LLM nodes and video preview. None of that is needed for this loader - but if you installed via Manager, Manager will have run it anyway. (llama-cpp-python from plain pip is CPU-only, so don't judge the pack's LLM nodes by that build.)
When it goes wrong
The dropdown is full of the wrong files. It lists every .gguf in those three folders, diffusion models included. Pick the Qwen3-VL one; if in doubt, the encoder is a few GB, not tens.
Unexpected architecture type in GGUF file: '...' - that's the exact error family this node exists to dodge, and it's a real, commonly reported one (Qwen-Image users hit it for months before the tag landed in the allowlist). If you still see it here, the arch string wasn't readable from the file - check the file isn't truncated.
It loads and then generation dies elsewhere. Remember the encoder is a second VRAM budget. On LLM-encoded models the encoder file often decides whether a model fits at all, and a 4B VLM at Q8 isn't free. Quantize the encoder harder than the diffusion model if you're tight; that's the standard trade and it's a cheap one.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name | COMBO | 1 options: (no .gguf files found) | |
| auto_setopt | BOOLEAN | false | — |
| setnode_nameopt | STRING | Krea2_CLIP | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | — |