Load Video (Davcha)
Drag a clip in, get frames and fps out
- frames
- frame_count
- fps
Every video-to-video or frame-editing workflow starts the same way: turn a video into a tensor of frames. That's what Load Video (Davcha) does, and it does it with a genuinely nice touch - you can just drag the file onto the node and it uploads to ComfyUI's input folder and fills the path for you. No hunting for paths in the file browser.
It's part of comfyui_davcha, one author's grab-bag of "personal QoL and experimental nodes," and this one is solidly in the QoL column. If you already have a video loader you like, this probably won't replace it. If you don't, it's a zero-ceremony way in.
How it works
Non-WebP files go through OpenCV's VideoCapture; animated .webp files use the webp Python bindings' animation decoder instead, which matters because WebP has its own frame/duration model. Frames come out as a float tensor in 0–1 range, [frames, height, width, 3] RGB, ready to feed an img2img sampler or a video model.
The three knobs cover the usual trimming:
- start (INT) - first frame to grab.
- count (INT, 0 = all) - how many frames from there.
- target_fps (FLOAT, 0–60, 0 = native) - resample. Set this lower than the source and it subsamples frames so you're not processing 60fps when 12 will do. For WebP it re-decodes at the target rate.
Outputs: frames (IMAGE), frame_count (INT), and fps (FLOAT, the effective rate after resampling). frame_count and fps are handy for scheduling - time-based prompts need to know how many steps you're working with.
Installing it
# ComfyUI Manager → Install Custom Nodes → search "comfyui_davcha" → Install → Restart
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/dchatel/comfyui_davcha
cd comfyui_davcha
pip install -r requirements.txt
One gotcha specific to this node: nodes.py imports cv2 at module load, and opencv-python is not in the pack's requirements.txt (which only lists webp and rapidfuzz). If OpenCV is missing, the whole pack fails to load. pip install opencv-python fixes it. The webp dependency does get installed by the pack itself.
Where people get burned
The path input is relative to ComfyUI/input, so a path you typed from elsewhere won't resolve - use the drag-and-drop, which uploads the file for you. Also remember this loads frames into RAM as a float tensor; a long, high-res clip is a lot of memory, so count and target_fps are your friends. And there's no audio handling at all - you get frames, period, which is what you want for video generation anyway.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| path | STRING | — | |
| start | INT | 0 | — |
| count | INT | 0 | — |
| target_fps | FLOAT | 0.000–60 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| frame_count | INT | — |
| fps | FLOAT | — |