Load Iris Text Encoder (Qwen3-VL-4B)
Why a single-file Qwen3-VL won't do
- IRIS_TEXT_ENCODER
Here's the node that catches almost everyone. Iris-3B doesn't use CLIP, and it doesn't use T5, and it doesn't use the sort of Qwen text encoder you've got 30 of in models/text_encoders already. It uses the language stack of Qwen3-VL-4B-Instruct, and it needs the whole original Hugging Face folder, not a repackaged single-file or fp8 build.
The reason is in the pack's own code: Iris doesn't take one final hidden state from the encoder. It stacks 12 hidden layers and conditions on all of them. Single-file text encoder repos bake in a fixed projection for one layer; an fp8 build quantizes the intermediates it expects you to read. Neither carries what Iris needs, so "I already have Qwen3-VL in my text_encoders folder" is not the same as having this.
What the node does
It's a directory picker. encoder_folder lists the folders inside models/text_encoders, and it wants one with a config.json in it - i.e. a real HF model folder, not a .safetensors. The output IRIS_TEXT_ENCODER goes into Iris Text Encode, and nowhere else.
There's exactly one field, and it isn't really a choice: Qwen3-VL-4B-Instruct. If you picked something else out of that folder you'd be feeding the wrong tower to a model that expects 12 specific layer outputs.
The download is 8.3 GB and the loader fetches it for you if it's missing. Doing it by hand:
cd ComfyUI/models/text_encoders
hf download Qwen/Qwen3-VL-4B-Instruct --local-dir Qwen3-VL-4B-Instruct
The --local-dir shape matters. You want models/text_encoders/Qwen3-VL-4B-Instruct/config.json, model-*.safetensors, tokenizer.json and the rest sitting together in one folder.
Install
Same as the rest of the pack - search Iris-3B in ComfyUI-Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/bani4kaskashka/Iris-3B-Comfy-Nodes
pip install -r requirements.txt
Then restart. transformers 4.57+ is a real requirement here - the Qwen3-VL loading path in newer transformers versions is what the pack's vendored encoder code relies on, and old versions are the most likely thing to blow up on load.
Where it goes wrong
"Encoder folder not found" or an empty dropdown. Your folder is one level too deep or too shallow. It has to be models/text_encoders/Qwen3-VL-4B-Instruct/, not models/text_encoders/Qwen3-VL-4B-Instruct/Qwen3-VL-4B-Instruct/ and not the files dumped loose in text_encoders/.
It loaded but the image ignores your prompt. Suspect a repackaged encoder - a single-file or fp8 Qwen3-VL you'd normally grab for other workflows. Swap in the original HF folder and it'll behave.
Slow first run. Nothing's wrong. An 8.3 GB encoder has to come off disk and the encoder only sits on the GPU while it's actually encoding; then it goes back to RAM, same as the DiT does. You'll see it again next time you change a prompt.
One thing worth knowing before you go shopping for VRAM: this is the piece that pushes system RAM, not VRAM. Between the text encoder, the DiT and the upscaler, the pack wants roughly 22 GB of free system RAM - the models park there when they're not on the card.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| encoder_folder | COMBO | Hugging Face folder of Qwen/Qwen3-VL-4B-Instruct in models/text_encoders. Downloaded on first use if missing (8.3 GB) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IRIS_TEXT_ENCODER | IRIS_TEXT_ENCODER | — |