Video Uploader🐼
The boring little node that feeds Qwen Omni its videos
- video_path
This is the pack's utility player, and it does one job: turn a video file into a VIDEO_PATH that the pack's main node - Qwen Omni Combined - can read. If you've opened "Qwen Omni Combined" and wondered why its video_path input wants a path string instead of a drag-and-drop file, this is the missing half. It's the same pattern ComfyUI uses everywhere for loading images and models, just applied to video: pick a file, get a path, wire it downstream.
How it works
It's barely 30 lines of code. The node scans ComfyUI's input directory for video files and lists them in a dropdown; you pick one (or hit its upload button), and it resolves the full file path and hands it back. Two details go beyond the trivial. Its IS_CHANGED method hashes the video file with SHA-256, so ComfyUI re-runs the node - and anything downstream - when the file actually changes, not just when you reselect it. And it validates the file still exists before executing, so you get a clean "invalid video file" error instead of a silent path crash mid-workflow.
Input: video - a dropdown of videos sitting in your input folder. That's the whole list; it's built dynamically at load time.
Output: video_path - a VIDEO_PATH string. Wire it straight into Qwen Omni Combined's video_path input, or into any other node that accepts VIDEO_PATH.
Installing it (with a catch)
cd ComfyUI/custom_nodes/
git clone https://github.com/SXQBW/ComfyUI-Qwen-Omni.git
or install "ComfyUI-Qwen-Omni" from ComfyUI Manager, then restart. Here's the catch worth knowing before you do: the node itself has zero heavy dependencies - just os, hashlib, and ComfyUI's folder_paths. But the pack's __init__.py imports the whole module, and QwenOmni.py pulls in torch, transformers, and qwen_omni_utils at the top of the file. So installing this "simple" node still drags in the pack's pinned preview transformers build and friends, whether you use the big node or not. Don't expect a lightweight loader - you're getting the whole multimodal stack on your Python environment.
One real gotcha
The dropdown only lists videos in ComfyUI/input/ - not models/videos, not your desktop. Drop your MP4/WEBM into the input folder (or use the node's upload button), and it'll actually show up in the list. Videos loaded through other custom video loaders live in different folders and won't appear here. If your video isn't in the dropdown, that's why.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| video | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_path | VIDEO_PATH | — |