QwenVL-F (GGUF)
Quantization in the file, not a widget
- image
- video
- RESPONSE
QwenVL-F (GGUF) is the llama.cpp route to the same Qwen-VL brain, and it changes your mental model of the node in one important way: there's no quantization dropdown. The quantization is baked into the .gguf file you pick - a Q4_K_M file is a different model than a Q8_0 file, and the node just runs whatever you hand it. That's the whole appeal: GGUF is llama.cpp's single-file quantized format, so you can run Qwen3-VL on a card that would choke on the FP16 Transformers version.
The catch is that GGUF has a different installed world than the Transformers nodes. The simple GGUF node needs a vision-capable build of llama-cpp-python - the stock PyPI wheel often ships without the multimodal chat handlers (Qwen3VLChatHandler / Qwen25VLChatHandler) that let llama.cpp actually see an image. That's the number one reason this node errors out on a fresh install, and it's not you doing something wrong.
The inputs
This is the thin one - a utility variant, genuinely. You get model_name (every .gguf on disk, listed by path), preset_prompt / custom_prompt, max_tokens, enable_thinking, keep_model_loaded, and seed. Optional image and video inputs, one RESPONSE string out. That's it. No temperature, no beams, no context size - the basic GGUF node keeps the defaults and doesn't let you touch them. If you need dials, the Advanced GGUF node in the same pack is the one with them.
A vision model in GGUF form is really two files: the model .gguf plus an mmproj projector (the mmproj-Qwen3VL-4B-Instruct-F16.gguf sitting next to the model). The simple node auto-picks the projector that sits next to your chosen model, which is the right behavior - you mostly never think about it until the files get separated.
Install - the part that bites
Clone the pack and then install a vision-capable llama-cpp-python from the JamePeng fork's release wheels (the pack's docs/LLAMA_CPP_PYTHON_VISION_INSTALL.md walks through it). The pack ships a helper that figures out the exact pip command for your Python and CUDA:
cd ComfyUI/custom_nodes
git clone https://github.com/id-fa/ComfyUI-QwenVL-F
pip install -r requirements.txt
python tools/install_helper.py --python "C:\AI\ComfyUI\python_embeded\python.exe" # Windows portable
It prints commands and installs nothing unless you pass --run. Then drop a .gguf and its mmproj anywhere under models/text_encoders or models/LLM - the dropdown scans those folders recursively.
Troubleshooting
llama_cpp is not available or a missing chat-handler ImportError means your llama-cpp-python build doesn't have vision support - reinstall from the fork's wheels. Gemma 4 .gguf files need the JamePeng fork at v0.3.35+ with Gemma4ChatHandler; older builds raise ImportError on load. And (no models found - see console) still means what it means everywhere in this pack: you downloaded the node but forgot to place a model. This fork never fetches anything for you.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | (no models found — see console) | Pick a .gguf already present under models/text_encoders or models/LLM. Nothing is downloaded automatically — copy the file in yourself, then reload ComfyUI. |
| preset_prompt | COMBO | 🖼️ Detailed Description | 9 options: 🖼️ Tags, 🖼️ Simple Description, 🖼️ Detailed Description, 🖼️ Ultra Detailed Description, 🎬 Cinematic Description, 🖼️ Detailed Analysis, +3 |
| custom_prompt | STRING | — | |
| max_tokens | INT | 51264–32768 | — |
| enable_thinking | BOOLEAN | false | — |
| keep_model_loaded | BOOLEAN | false | — |
| seed | INT | 11–4294967295 | — |
| mmproj_name | COMBO | auto | Vision projector to pair with the model. auto picks the first *mmproj*.gguf sitting next to it. |
| imageopt | IMAGE | — | |
| videoopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| RESPONSE | STRING | — |