QwenVL-F (Advanced)
Multi-image, video frames, beam search
- image
- image2
- image3
- video
- RESPONSE
QwenVL-F (Advanced) is the standard node with the training wheels off. Same Transformers-backed Qwen3-VL / Qwen2.5-VL engine, same local-only model discovery, but now you get sampling control, video frame picking, multi-image input, and a few performance levers the simple node hides from you. If the plain version is "describe this," this one is "describe these three, across these frames, at this temperature, and stop when you hit this word."
The pack is a fork of 1038lab's ComfyUI-QwenVL, and its defining rule applies here too: nothing is downloaded automatically. The model_name dropdown is built by scanning models/text_encoders and models/LLM (recursively, extra_model_paths.yaml roots included). You drop a checkpoint folder in, reload, and pick it. That's the whole install ritual, and it's the same across every node in the pack.
What the Advanced node adds
- Multi-image analysis - up to three
IMAGEinputs:image,image2,image3. Hand that job over to the model and it'll compare frames, spot differences, or fuse details from several references in one pass. That's the single biggest reason to pick Advanced over the simple node. frame_count- for avideoinput (a frame sequence), how many frames get sampled before prompting. Default 16; more frames = more context, more time.seedcontrols which frames get picked, so the same seed reproduces the same extraction.- Sampling knobs -
temperature(0.1–1.0, default 0.6),top_p,repetition_penalty, andnum_beamsfor beam search. Note the trap:num_beams > 1disables temperature/top_p entirely. Beam search is the "I want a stable, repeatable answer" button; sampling is the "let it be creative" button. Don't crank both. stop_words- comma-separated strings that halt generation when produced. Handy for trimming the trailing boilerplate a chat model loves to add.use_torch_compileanddevice-torch.compilegives extra throughput after the first (slow) compile;devicedefaults toautobut lets you pincpu,mps, orcuda:xon multi-GPU rigs.
Everything else is shared with the simple node: quantization (FP16 / 8-bit / 4-bit), attention_mode (auto → Sage → Flash → SDPA, with FP8 and bits-and-bytes forced to SDPA), enable_thinking for Qwen3-VL Thinking checkpoints, keep_model_loaded, and preset_prompt / custom_prompt with the same nine built-in jobs. One RESPONSE string comes out - feed it to a text encoder or a display node.
Install & gotchas
ComfyUI Manager, search "ComfyUI-QwenVL-F", or:
cd ComfyUI/custom_nodes
git clone https://github.com/id-fa/ComfyUI-QwenVL-F
pip install -r requirements.txt
Restart, then place a model folder (a directory with config.json next to its weight shards) under models/text_encoders or models/LLM. Qwen3-VL requires transformers >= 4.57.0. Seeing (no models found - see console)? The scan came up empty - the fork will not fetch a model for you, it only lists what's on disk and prints the folders it checked when nothing matches.
Real-world catches: the Instruct checkpoints are censored, so explicit captioning means seeking out an abliterated Qwen3-VL build. And don't fight the defaults - start at 8-bit quantization with attention_mode on auto, and only start flipping levers when a specific output is wrong. The biggest VRAM saver in the pack is also the most boring: turn keep_model_loaded off when the model isn't going to be reused and you need the memory back for the sampler.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | (no models found — see console) | Pick a Transformers checkpoint already present under models/text_encoders or models/LLM. Nothing is downloaded automatically — copy the model folder in yourself, then reload ComfyUI. |
| quantization | COMBO | None (FP16) | Precision vs VRAM. FP16 gives the best quality if memory allows; 8-bit suits 8–16 GB GPUs; 4-bit fits 6 GB or lower but is slower. |
| attention_mode | COMBO | auto | auto tries flash-attn v2 when installed and falls back to SDPA. Only override when debugging attention backends. |
| use_torch_compile | BOOLEAN | false | Enable torch.compile('reduce-overhead') on supported CUDA/Torch 2.1+ builds for extra throughput after the first compile. |
| device | COMBO | auto | Choose where to run the model: auto, cpu, mps, or cuda:x for multi-GPU systems. |
| preset_prompt | COMBO | 🖼️ Detailed Description | Built-in instruction describing how Qwen-VL should analyze the media input. |
| custom_prompt | STRING | Optional override—when filled it completely replaces the preset template. | |
| max_tokens | INT | 51264–32768 | Maximum number of new tokens to decode. Larger values yield longer answers but consume more time and memory. |
| temperature | FLOAT | 0.600.1–1 | Sampling randomness when num_beams == 1. 0.2–0.4 is focused, 0.7+ is creative. |
| top_p | FLOAT | 0.900–1 | Nucleus sampling cutoff when num_beams == 1. Lower values keep only top tokens; 0.9–0.95 allows more variety. |
| num_beams | INT | 11–8 | Beam-search width. Values >1 disable temperature/top_p and trade speed for more stable answers. |
| repetition_penalty | FLOAT | 1.200.5–2 | Values >1 (e.g., 1.1–1.3) penalize repeated phrases; 1.0 leaves logits untouched. |
| frame_count | INT | 161–64 | Number of frames extracted from video inputs before prompting Qwen-VL. More frames provide context but cost time. |
| enable_thinking | BOOLEAN | false | Enable thinking mode for Qwen3-VL Thinking models. When disabled, the model skips chain-of-thought reasoning and responds directly. Has no effect on non-Thinking models. |
| stop_words | STRING | Comma-separated list of stop words/sequences. Generation stops when any of these strings is produced. Leave empty for default behavior. | |
| keep_model_loaded | BOOLEAN | false | Keeps the model resident in VRAM/RAM after the run so the next prompt skips loading. |
| seed | INT | 11–4294967295 | Seed controlling sampling and frame picking; reuse it to reproduce results. |
| imageopt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| videoopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| RESPONSE | STRING | — |