Qwen3.5 VL Batch Caption
The Qwen3.5 batch caption node, minus the thinking
- summary
The batch version of the pack's newest caption node - and a study in what gets stripped out for the sake of throughput. Qwen3.5 VL Batch Caption does the same folder-scanning, .txt-writing job as Qwen3CaptionBatch, except on the Qwen3.5 generation. The thing to know before you reach for it: unlike the single-image Qwen35Caption, there's no thinking toggle here, and the batch code hard-disables reasoning (enable_thinking=False) no matter what. That's deliberate - a reasoning pass over a 500-image folder would take forever - but it means this node gives you fast captions, not deep ones. If you need Qwen3.5's reasoning on individual images, that's what the single node is for.
It's part of WingeD123/ComfyUI_QwenVL_PromptCaption, the local Qwen VL pack. Same rules as everything in it: models go in ComfyUI/models/text_encoders, nothing auto-downloads, and you need a current-enough transformers to see Qwen3.5 at all.
How it works
Same batch pipeline as the other batch nodes in the pack: image_path is scanned for common image formats, each image is downscaled to max_side, run through the model with a captioning instruction, and the result is written as a same-basename .txt beside the source. A content-hash result cache means re-runs skip images it already handled, and it unloads other ComfyUI models before starting so your checkpoint doesn't squat on VRAM mid-run. Where the single Qwen35Caption generates with a reasoning pass and two outputs, this one runs plain generation (temperature 0.7, top-p 0.8, 1024 max tokens - the code is honest about being tuned for consistency across a batch) and returns just a summary count.
The inputs that matter
- image_path - the folder to caption. Required; a bad path returns
0 image captioned. - save_path - optional; empty writes captions next to the images.
- instruction - the input that actually shapes your dataset. The default prompts are prompt-inversion flavored, so for LoRA labeling you'll want your own phrasing (trigger word, comma-separated tags, desired detail level).
- lang -
中文orEnglish. No bbox mode here. - dtype -
auto/4bit/8bit, default 4bit. Right call on most cards. - max_side - long-edge pre-scale, default 512, steps of 32 (the Qwen3 tile convention).
- keep_model_loaded - False is fine; the model stays resident for the whole folder regardless.
Output: a single summary STRING, a stats line like 23 images captioned. The real output is the .txt files on disk.
Install and model setup
ComfyUI Manager (search "ComfyUI_QwenVL_PromptCaption") or:
cd ComfyUI/custom_nodes
git clone https://github.com/WingeD123/ComfyUI_QwenVL_PromptCaption
then restart. Dependency-wise this is the demanding one: transformers>=5.2.0 is required for Qwen3.5, plus accelerate, peft, bitsandbytes. Place a Qwen3.5-VL model folder in text_encoders manually - there's no download step, and you can't yet reuse an existing ComfyUI model file the way the 2.5-generation nodes can.
Troubleshooting
The failures are the pack's usual trio: empty model_path dropdown (no model in text_encoders), 0 image captioned (wrong folder path or no supported files), and "Failed to load model" (almost always an old transformers on a Qwen3.5 install). One thing to keep in mind if the captions feel shallower than the single node's: that's the disabled reasoning, and it's a feature for batch speed. If a few hard images in the folder come out weak, caption those individually with Qwen35Caption and let the batch handle the rest.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 0 options: | |
| dtype | COMBO | 4bit | 3 options: auto, 4bit, 8bit |
| keep_model_loaded | BOOLEAN | false | — |
| lang | COMBO | 中文 | 2 options: 中文, English |
| max_side | INT | 512256–2240 | — |
| image_path | STRING | — | |
| save_pathopt | STRING | — | |
| instructionopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| summary | STRING | — |