Video Load πΉ
Getting a video file into your graph as frames
- images
- source_fps
- frame_count
- summary
Every video toolchain in ComfyUI works on frames - an IMAGE batch where each image is one frame. So before you can do anything with footage, you need it out of its container and into that batch. The Video Load node from TensorVizion/OmniNodes is the front door: it reads a video file from disk, extracts its frames, and hands you the batch plus the source FPS and frame count as metadata.
It's the load-side companion to the pack's Video Save, completing the round trip - and it's built around the same dependency (imageio + imageio-ffmpeg) for the actual decoding.
Inputs and outputs
Four inputs:
video_path- a filesystem path to the video. It's a plain string, not a dropdown, so you'll be typing or wiring it. Give it an absolute path; ComfyUI's UI doesn't file-pick for you.target_fps(default 0) - 0 keeps the source's native frame rate. A positive value resamples by dropping or duplicating frames to approximate that rate - a cheap way to match clips of different FPS before splicing them, though it's drop/duplicate, not true optical-flow retiming. The README's guidance is to use Video Frame Interpolate afterward if you want smooth retiming instead.max_frames(default 0) - caps how many frames you get back (0 = no cap). Invaluable for previewing or keeping VRAM sane on a long source.skip_first(default 0) - skips N frames from the start, for trimming the head without a separate node.
Outputs: images (the frame batch), source_fps (the native rate, so you can restore it on the way out), frame_count, and summary.
How failures behave
The failure mode is deliberately graceful. If the file doesn't exist, you get an empty 64Γ64 black batch, source_fps of 0, frame_count of 0, and a summary that says "File not found: <path>". If imageio isn't installed, the same shape with a clear message telling you exactly what to pip install. The queue doesn't crash - but the output is a sentinel, so wire a Try/Catch (Value Guard) or check frame_count if you're automating, rather than trusting the batch.
Install
Ships with OmniNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/OmniNodes
Then install the one real dependency this node needs:
pip install imageio imageio-ffmpeg
Into the same Python environment ComfyUI runs in, then restart. It's under TensorVizion/Video.
Troubleshooting
- Empty black output - check
frame_count; if it's 0, the summary has the reason (file not found or missing imageio). Fix the path or the install. - "ModuleNotFoundError: imageio" - run the pip install above into ComfyUI's environment (the one that runs
python main.py), not a random shell Python. - Timing feels off after resampling -
target_fpsdrops or duplicates frames, so motion can stutter. For smooth results, load at native FPS and use the Frame Interpolate node instead.
Reach for it when footage has to enter your graph - the first node of any I2V or video-processing workflow.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | β | |
| target_fps | FLOAT | 0.00β120 | β |
| max_frames | INT | 00β100000 | β |
| skip_first | INT | 00β100000 | β |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | β |
| source_fps | FLOAT | β |
| frame_count | INT | β |
| summary | STRING | β |