🍭大炮-Qwen3VL智能对话@炮老师的小课堂
An image-aware chatbot that lives inside your ComfyUI workflow
- 🖼️ 图像1
- 🖼️ 图像2
- 🖼️ 图像3
- 🖼️ 图像4
- 🎯 Qwen3VL额外选项
- AI回复
Most VLM nodes in ComfyUI are one-way doors: image in, caption out. Qwen3VL_Chat is the version that talks back. You type a question, optionally attach up to four images, and it answers as a local Qwen3-VL with a system role you define - no API, no key, no separate chat server eating your VRAM on the side.
Where's that actually useful? Think of it as an assistant you can interrogate mid-workflow. "What's wrong with this render?" attached to your last output. "Describe this character's outfit and hair in detail" so you can feed the answer to an encoder. Or a mini-QA pass over a batch of references before you caption them. The community's honest framing applies here: a local 4B–8B model is not writing better prose than a frontier API, but it's uncensored, offline, and free per call - and for reading an image and answering a question, it's plenty.
How it works
Same engine as the rest of the pack: transformers with Qwen3-VL, models auto-downloading to ComfyUI/models/prompt_generator/ on first use, bitsandbytes 4-bit/8-bit quantization available. It's a single-turn conversation, not a multi-turn chat - you provide the user message and system role, it generates one reply. There's no memory of previous runs, so if you want a back-and-forth, you wire the AI回复 output back around into the next run's 💬 用户输入 yourself. It also honors the pack's seed controls (random / fixed / increment) and reruns each time in random mode rather than sitting in ComfyUI's cache.
The inputs that matter
- 💬 用户输入 - your question or instruction. Multiline, and this is the whole point of the node: ask it about what you fed it.
- 🎭 系统角色定义 - the system prompt that sets its persona. Default is a generic helpful assistant; the useful move is to make it a specialist ("you are a meticulous art director who describes lighting and composition precisely"). This is where you compensate for it being small - a focused role gets better output than a blank "answer this".
- 🖼️ 图像1–图像4 (optional) - the images it can see. Wire a preview, a render, a reference sheet.
- 🤖 模型选择 / ⚙️ 量化级别 - the usual 20-model stack. For conversation you mostly want the Instruct variants; the Thinking ones add reasoning-token overhead for marginal benefit.
- 🌡️ 温度 (default 0.7) and 🎯 Top-P - a bit hotter than the captioning nodes, since you want variety in answers. Crank down for factual/consistent replies.
- 📏 最大长度 - the tooltip says it plainly: max new tokens, bigger is slower. 1024 covers almost any answer.
- 🚀 开启TF32加速, 🔄 保持模型加载, 🧪 性能诊断, 🎲 随机种子 / 🎯 种子控制 - shared with the pack's main node. 保持模型加载 defaults off so the model doesn't squat on VRAM after each run.
The optional 🎯 Qwen3VL额外选项 socket plugs the pack's option node in here too, which appends things like "include lighting info" to the system-level instruction - handy if you want consistent, photography-nerd answers without typing the same rubric every time.
The single output, AI回复, is a STRING. Wire it into a text display node to read it, into a save-text node, or - the fun version - into a prompt encoder so the chatbot literally writes the next image.
Installing and troubleshooting
Same pack, same steps - ComfyUI Manager (search ComfyUI-Qwen3VL-DP) or:
cd ComfyUI/custom_nodes
git clone https://github.com/paolaoshi/ComfyUI-Qwen3VL-DP
cd ComfyUI-Qwen3VL-DP
pip install -r requirements.txt
then restart. The standing requirements: transformers >= 4.57.0 (older versions throw the "Transformers does not recognize qwen3_vl architecture" error), and the FP8 model variants need an 8.9-compute-capability GPU. First run pulls several GB of weights. If answers feel slow, check the console for the timing line - model load time dominates, so keep 保持模型加载 on if you're iterating on several questions in a row, then turn it off when you're done. And if you feed it a huge image, keep it modest; the vision encoder spikes VRAM on large inputs.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| 🤖 模型选择 | COMBO | Qwen3-VL-4B-Instruct | 20 options: Qwen3-VL-2B-Instruct, Qwen3-VL-2B-Thinking, Qwen3-VL-2B-Instruct-FP8, Qwen3-VL-2B-Thinking-FP8, Qwen3-VL-4B-Instruct, Qwen3-VL-4B-Thinking, +14 |
| ⚙️ 量化级别 | COMBO | None (FP16) | 3 options: 4-bit (节省显存), 8-bit (平衡), None (FP16) |
| 🧠 注意力模式 | COMBO | SDPA | 2 options: SDPA, Flash Attention 2 |
| 🖼️ 最大长边 | INT | 768256–2048 | — |
| 💬 用户输入 | STRING | 你好,请介绍一下你自己。 | — |
| 🎭 系统角色定义 | STRING | 你是一个专业、友好且乐于助人的AI助手。 | — |
| 🌡️ 温度 | FLOAT | 0.70.1–1 | — |
| 🎯 Top-P | FLOAT | 0.900–1 | — |
| 📏 最大长度 | INT | 102464–4096 | 生成的最大新token数;数值越大越慢 |
| 🎲 随机种子 | INT | -1-1–18446744073709550000 | 随机种子,-1为随机 |
| 🎯 种子控制 | COMBO | 随机 | 3 options: 随机, 固定, 递增 |
| 🚀 开启TF32加速 | BOOLEAN | false | 启用TF32加速(仅支持Ampere及以上架构显卡,如30/40/50系,能显著提升速度) |
| 🔄 保持模型加载 | BOOLEAN | false | — |
| 🧪 性能诊断 | BOOLEAN | false | 打印一次关键环境与推理信息(用于排查慢速问题) |
| 🖼️ 图像1opt | IMAGE | — | |
| 🖼️ 图像2opt | IMAGE | — | |
| 🖼️ 图像3opt | IMAGE | — | |
| 🖼️ 图像4opt | IMAGE | — | |
| 🎯 Qwen3VL额外选项opt | QWEN3VL_EXTRA_OPTIONS | 可选的Qwen3VL额外选项,连接Qwen3VL额外选项节点 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AI回复 | STRING | — |