Nodes/Nynxz/Qwen3-VL Describe
ComfyUI Node

Qwen3-VL Describe

Turn your Qwen3-VL text encoder into a captioner — no extra runtime

By Nynxz·Created about a month ago·Updated 29 days ago· 5
Qwen3-VL Describe
  • clip
  • image
  • text
promptDescribe this image in detail.
systemYou are a helpful assistant.
max_tokens256
do_sampletrue
temperature0.70
top_k50
top_p0.90
min_p0.00
repetition_penalty1.05
seed0

The pack's Fusion pipeline already makes you load a Qwen3-VL text encoder as a CLIP. Qwen3-VL Describe points out that this model is also a vision-language model - and gives you a way to run it generatively as one, straight through ComfyUI's native inference, with no llama.cpp, no transformers install, no second runtime. Image plus prompt in, generated text out. If you already have the encoder loaded for fusion, this is a captioner and prompt expander for free.

That's the key fact that makes this node worth knowing: the CLIP you're already carrying can do LLM things, and this is the node that unlocks them. Feed it an image and "Describe this image in detail" (the default prompt) and you get a caption; feed it just a prompt with no image and it's a plain text generator - the image input is optional.

The inputs that matter

  • clip - the Qwen3-VL 4B/8B text encoder, the same one the Fusion encode uses. Wire it in and you're done with setup.
  • prompt - your instruction. Default "Describe this image in detail."
  • image - optional. Without it, this is a pure text prompt.
  • system - the system prompt, default "You are a helpful assistant."
  • max_tokens - generation cap (default 256); it also stops at the model's end-of-turn token.
  • do_sample - sampling on, or greedy/deterministic when off (off ignores temperature/top-k/top-p). For captions you may want greedy; for variety, sample.
  • temperature / top_k / top_p / min_p / repetition_penalty / seed - the usual sampling knobs, with sensible defaults (0.7 / 50 / 0.9 / 0 / 1.05).

Output is a single text string, which you can wire into whatever needs text - a prompt assembler, a filename, another LLM. The docstring's honest framing: it's useful on its own for captioning and prompt expansion, and it's the foundation the visual-grounding node builds on.

Two practical notes

First, the clip is a Qwen3-VL encoder loaded for Qwen-Image - the 8B end of that family is around 8GB of VRAM, so this is a "you already had it loaded" feature, not a reason to load it. Second, the model's weaknesses are the usual VLM ones: multi-subject attribution drifts (who's wearing what), and a caption won't reproduce an image one-to-one. Fine for bulk captioning and prompt seeding; audit anything critical by hand.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzExperimental

or search "Nynxz" in ComfyUI Manager, then restart. The pack itself has no dependencies and downloads no models - the model is the Qwen3-VL CLIP you wire in. It's experimental, so generation defaults can shift between commits; pin the pack once you've got a captioning setup you like.

CategoryNynxz/Qwen3-VL

Inputs (12)

NameTypeDefaultDescription
clipCLIPA Qwen3-VL 4B/8B text encoder (as loaded for Qwen-Image).
promptSTRINGDescribe this image in detail.The instruction / question for the model.
systemSTRINGYou are a helpful assistant.System prompt.
max_tokensINT2561–4096Maximum new tokens to generate. Generation also stops at the model's end-of-turn token.
do_sampleBOOLEANtrueSample (on) vs greedy/deterministic (off). Off ignores temperature/top-k/top-p.
temperatureFLOAT0.700–2
top_kINT500–200
top_pFLOAT0.900–1
min_pFLOAT0.000–1
repetition_penaltyFLOAT1.051–2
seedINT00–18446744073709550000Sampling seed (used when do_sample is on).
imageoptIMAGEOptional image to look at. Without it this is a plain text prompt.

Outputs (1)

NameTypeDescription
textSTRING