Nodes/QwenVL-F/QwenVL-F (GGUF)
ComfyUI Node

QwenVL-F (GGUF)

Quantization in the file, not a widget

By id-fa·Created 6 months ago·Updated 6 days ago· 2
QwenVL-F (GGUF)
  • image
  • video
  • RESPONSE
model_name(no models found — see console)
preset_prompt🖼️ Detailed Description
custom_prompt
max_tokens512
enable_thinkingfalse
keep_model_loadedfalse
seed1
mmproj_nameauto

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.

CategoryQwenVL-F

Inputs (10)

NameTypeDefaultDescription
model_nameCOMBO(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_promptCOMBO🖼️ Detailed Description9 options: 🖼️ Tags, 🖼️ Simple Description, 🖼️ Detailed Description, 🖼️ Ultra Detailed Description, 🎬 Cinematic Description, 🖼️ Detailed Analysis, +3
custom_promptSTRING
max_tokensINT51264–32768
enable_thinkingBOOLEANfalse
keep_model_loadedBOOLEANfalse
seedINT11–4294967295
mmproj_nameCOMBOautoVision projector to pair with the model. auto picks the first *mmproj*.gguf sitting next to it.
imageoptIMAGE
videooptIMAGE

Outputs (1)

NameTypeDescription
RESPONSESTRING