Video Describe
Video Describe runs Qwen3-VL right in ComfyUI
- description
- info
This is the node the whole pack is named after, and it's the reason to care about a repo you've otherwise never heard of. Drop a video file in, get a natural-language description out - full scene-by-scene prose, a short summary, or structured keywords - generated locally by Qwen3-VL-8B-Instruct. No API key, no cloud round-trip, nothing leaves your machine. If you've ever hand-typed descriptions for reference videos so your img2vid or storyboard pipeline could use them, this replaces that chore.
How it works
Under the hood it's a three-step pipeline. The node resolves your video path against ComfyUI's input/ folder, extracts frames with OpenCV at the fps you set, then feeds them to the Qwen3-VL vision-language model. The model itself is a singleton - it loads once and stays in memory, so the first run after a restart is slow and the second one is dramatically faster.
The three preset analysis_type modes each carry their own prompt, token budget, and temperature: detailed (full prose, ~384 tokens), summary (2-3 sentences), and keywords (a structured subject/action/setting breakdown). Give it a custom_prompt and it overrides the preset entirely.
The inputs that matter
- video_path - filename, relative path, or absolute path. Relative paths resolve against
ComfyUI/input/, which is where you should drop your footage. - analysis_type -
detailed/summary/keywords. Start withsummaryto sanity-check before committing to a long run. - fps - frames per second to sample. 1.0 means one frame per second of video. Lower it for long videos; every extra frame is more tokens the model has to chew.
- use_4bit - the one that decides whether this runs on your GPU at all. Off is ~16GB VRAM, on is ~8GB.
- custom_prompt, temperature - for when you want it to look for specific things ("only describe the character's outfit changes").
Outputs are description (the text you'll wire into a prompt builder or text encoder) and info, a diagnostic string with duration, resolution, source FPS, and what sampling/config was used. Feed info to a text preview node and you'll see exactly what it did.
Install
ComfyUI Manager → search ComfyUI-VideoDescription → Install, then restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/IXIWORKS-KIMJUNGHO/ComfyUI-VideoDescription
The requirements file only actually needs qwen-vl-utils and opencv-python-headless beyond what ComfyUI already ships (torch, transformers, pillow, numpy are all present). If you want 4-bit mode, you also need pip install bitsandbytes.
Model download and the gotchas
The ~16GB Qwen3-VL-8B-Instruct checkpoint downloads automatically on first use into ComfyUI/models/video_description/. You can pre-download it so the first run isn't a surprise:
cd ComfyUI/custom_nodes/ComfyUI-VideoDescription
python download_models.py
Where people get burned: the first run downloads 16GB and then loads the model - that's 10-30 minutes of "why is nothing happening" if you weren't expecting it. If you get a CUDA OOM, turn on use_4bit and drop fps to 0.5. Also note the README's hardware guidance: 12GB cards should run 4-bit, 24GB cards can run full FP16, and MPS is supported on Apple Silicon. Error handling is graceful - a bad path returns an error string in description rather than crashing your graph - but that's exactly what it looks like when something's wrong, so check the output before blaming the sampler downstream.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | — | |
| analysis_type | COMBO | detailed | 3 options: detailed, summary, keywords |
| fps | FLOAT | 1.00.1–30 | — |
| custom_promptopt | STRING | — | |
| use_4bitopt | BOOLEAN | false | — |
| temperatureopt | FLOAT | 0.70–1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| description | STRING | — |
| info | STRING | — |