ComfyUI Node

QwenVL (Basic)

QwenVL (Basic) hides every knob and still reads your images

By AkihaTatsu·Created 7 months ago·Updated 6 months ago· 0
QwenVL (Basic)
  • image
  • video
  • source_path
  • RESPONSE
model_nameQwen3.5-0.8B
enable_thinkingfalse
quantizationNone (FP16)
attention_modeauto
preset_prompt🖼️ Detailed Description
custom_prompt
max_tokens512
keep_model_loadedfalse
seed1

The sibling to QwenVL (Advanced) in this pack, and honestly the one you should probably start with. QwenVL (Basic) is the same vision-language engine with every sampling knob welded shut, so your first run is "pick a model, pick a prompt, read the answer" instead of a wall of floats. The defaults are good enough that the only reason to reach for Advanced is when you know exactly which default you want to break.

What you get to touch

The Basic node strips the list down to what actually matters:

  • model_name - the same 83-model menu, HuggingFace and [GGUF] entries, first run downloads weights automatically.
  • enable_thinking - the Qwen3.5 toggle. ON reasons step-by-step in <think>…</think> blocks, OFF answers directly. Only affects Qwen3.5 models; ignored for the rest.
  • preset_prompt / custom_prompt - the template that decides whether you get "Tags" or "Ultra Detailed Description" or your own instruction.
  • quantization and attention_mode - HF models only. 4-bit / 8-bit / FP16, and the attention backend.
  • max_tokens - output length, default 512.
  • keep_model_loaded and seed - caching in VRAM and reproducibility.

That's the entire surface. Everything else - temperature, top_p, repetition_penalty, frame_count, num_beams, device, torch compile - is fixed at the values the author tuned: temperature 0.6, top_p 0.9, repetition penalty 1.2, 16 sampled video frames, greedy-friendly defaults. Those sit right in the middle of the README's own sampling recommendations for both thinking and instruct modes, so you're not losing much.

Why you'd reach for it

Two reasons. First, testing: you want to know whether QwenVL can do the job before you spend an afternoon on parameters, and this node answers that in one run. Second, consistency: no temperature or frame_count knob means every run of the same seed is the same run. If you're auto-captioning a folder and want stable output, that's a feature, not a limitation.

The trade-off is real, though. Want fewer than 16 video frames for a short clip, or a hot temperature for creative descriptions? The knob isn't here - that's Advanced territory. And if you later need GGUF-specific control like gpu_layers or ctx, Basic doesn't expose those either. It's a great door, but it's not the whole house.

How it works

Mechanically it's a thin wrapper over the same backend as Advanced - the process() method literally calls the shared backend with constants: frame_count 16, temperature 0.6, top_p 0.9, repetition_penalty 1.2, num_beams 1, device auto. Feed it an image tensor or a video frame batch, pick a preset, and out pops RESPONSE, a single STRING you can pipe into Save Text or any text consumer. The source_path input is accepted but not consumed by the backends in the current release, so wire up the tensors.

Install

Same pack, same steps. ComfyUI Manager → search "QwenVL Utils" → install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/AkihaTatsu/ComfyUI-QwenVL-Utils.git
cd ComfyUI-QwenVL-Utils
pip install -r requirements.txt

If you want 4/8-bit quantization add bitsandbytes; GGUF models need llama-cpp-python (Qwen3.5 GGUF specifically needs JamePeng's fork at >= 0.3.30).

Troubleshooting

The usual suspects from the README: OOM means step down the quantization or switch to a [GGUF] Q4_K_M model; ImportError: transformers means upgrade to transformers>=4.45.0; flash-attn errors mean you don't have an Ampere+ GPU - auto mode will fall back to SDPA, so just leave attention_mode alone. The pack is new (no community footprint yet), so when something odd happens, the parent implementation's threads on r/comfyui are the best place to find people who've already hit it - the two packs share most of their failure modes.

CategoryQwenVL-Utils

Inputs (12)

NameTypeDefaultDescription
model_nameCOMBOQwen3.5-0.8BSelect the vision-language model. HuggingFace models offer full-precision inference; [GGUF] models use quantized llama.cpp backend for lower VRAM. First run downloads weights automatically.
enable_thinkingBOOLEANfalse[Qwen3.5+ models only] Enable Thinking mode for Qwen3.5 unified models. When ON (Thinking mode), the model reasons step-by-step inside <think>…</think> blocks before producing the final answer — best for complex reasoning, math, and coding tasks. When OFF (Instruct mode), the model responds directly without internal reasoning — faster and more concise for straightforward queries. Only affects Qwen3.5 models; ignored for other model families.
quantizationCOMBONone (FP16)[HF models only] Precision vs VRAM trade-off. FP16 gives the best quality; 8-bit suits 8-16 GB GPUs; 4-bit fits 6 GB or lower but is slower.
attention_modeCOMBOauto[HF models only] Attention backend selection. • auto: Auto-select best available (recommended) • flash_attention_2: External flash-attn package (best performance, needs separate installation) • sdpa_flash: PyTorch SDPA Flash backend (excellent performance, best compatibility) • sage_attention: SageAttention wrapper (experimental, memory efficient) • sdpa_math: PyTorch SDPA math backend (stable fallback) • eager: Standard PyTorch attention (slowest, always works) • sdpa: Legacy option, auto-selects Flash or math
preset_promptCOMBO🖼️ Detailed DescriptionBuilt-in instruction template describing how the model should analyze the media. Selecting '❌ None' sends no system instruction (use custom_prompt instead).
custom_promptSTRINGWhen filled, completely replaces the preset prompt template. Leave empty to use the selected preset_prompt.
max_tokensINT51264–256000Maximum number of new tokens the model may generate. Larger values produce longer answers but take more time and memory. Both HF and GGUF backends respect this limit.
keep_model_loadedBOOLEANfalseKeep the model loaded in VRAM/RAM after inference so subsequent runs skip the loading step. Disable to free memory after each run.
seedINT11–4294967295Random seed for sampling reproducibility and video frame selection. Reuse the same seed to reproduce identical results.
imageoptIMAGE
videooptIMAGE
source_pathoptPATH

Outputs (1)

NameTypeDescription
RESPONSESTRING