Nodes/ComfyUI_QwenVL_PromptCaption/Qwen3.5 VL Batch Caption
ComfyUI Node

Qwen3.5 VL Batch Caption

The Qwen3.5 batch caption node, minus the thinking

By WingeD123·Created 10 months ago·Updated 4 months ago· 46
Qwen3.5 VL Batch Caption
    • summary
    model_path
    dtype4bit
    keep_model_loadedfalse
    lang中文
    max_side512
    image_path
    save_path
    instruction

    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 - 中文 or English. 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.

    Categoryimage/caption

    Inputs (8)

    NameTypeDefaultDescription
    model_pathCOMBO0 options:
    dtypeCOMBO4bit3 options: auto, 4bit, 8bit
    keep_model_loadedBOOLEANfalse
    langCOMBO中文2 options: 中文, English
    max_sideINT512256–2240
    image_pathSTRING
    save_pathoptSTRING
    instructionoptSTRING

    Outputs (1)

    NameTypeDescription
    summarySTRING