My Load Video
The no-drama video loader for people who don't want the whole VideoHelperSuite
- IMAGES
- frame_count
Every video workflow in ComfyUI starts the same way: you've got a clip, and you need it to become a stack of frames the graph can chew on. The heavyweight everyone reaches for is VideoHelperSuite (VHS). My Load Video is the opposite answer - one node in a tiny pack that turns an MP4 into an IMAGE batch and does nothing else. It's a stripped-down reimplementation of VHS's Load Video, and the pack even ships its own Chinese code-analysis report comparing itself line-by-line against VHS v1.5.12. If you'd rather install one small file than a big suite, this is the honest, boring, works-fine option.
Reach for it when you need video frames as input to a vid2vid pass, an AnimateDiff pipeline, or any img2vid setup where the video is the condition, not the output. It doesn't call any API and needs no key - it's pure local frame extraction. But set your expectations: VHS does more (audio handling, a progress bar, width/height/fps metadata, force-rate resampling). This node does one thing. For basic "video in, frames out," that one thing is usually enough.
How it works
The mechanism is refreshingly direct. The node lists every video file sitting in ComfyUI's input directory, then hands the path to OpenCV:
cap = cv2.VideoCapture(video_path)
It seeks past the frames you want skipped, reads frames one at a time up to frame_load_cap, converts each from OpenCV's BGR to RGB, and normalizes to float32 in the 0–1 range that ComfyUI expects. All the frames get stacked into a single batch tensor, so the whole clip ends up in RAM at once. That's the one design choice you'll feel: a 2-minute 1080p clip as float32 is well over a gigabyte of host memory, and it only goes up from there.
One genuinely nice touch: the node keys its cache off the video file's modification time. Drop in a new version of the clip and it reloads automatically - no stale-frame gremlins, which is more than some video nodes manage.
The inputs and outputs that matter
Only three inputs, and only one of them is interesting:
- video - a dropdown of every
.mp4,.avi,.mov,.mkv, and.gifin yourinputdirectory. There's also an upload button that drops a file straight intoinputfor you. - skip_first_frames (default 0) - how many frames to cut from the head. Handy for skipping logos or dead air.
- frame_load_cap (default 171) - the maximum number of frames to read. This is your memory safety valve; drop it when a long clip OOMs you.
Both outputs matter. IMAGES is the batch that wires into a VAEEncode (for img2vid or AnimateDiff conditioning) or straight into a sampler. frame_count is an INT you can route anywhere - a counter node, a RepeatLatentBatch, anything that wants to know how many frames it's working with.
Installing it
Two ways, both painless, no model files to download, no heavy extras - the only real dependencies are opencv-python, numpy, and Pillow, which ship with ComfyUI already. The README insists on it: this is a clone-and-go pack.
cd ComfyUI/custom_nodes
git clone https://github.com/1123156819/comfyui-myloadvideo.git
Then restart ComfyUI. Or, if you have ComfyUI Manager installed, search for comfyui-myloadvideo and click Install. One thing the README calls out: the main file is already named __init__.py, so there's no renaming step - that was the author's final commit, fixing a classic "node never appears" gotcha.
Common issues
"The video isn't in the dropdown." The code only scans the top level of input/ - files in subfolders won't show up. Unlike VHS, there's no directory tree here. Move the file to the root of input, or upload it through the node.
Out of memory. All frames live in RAM simultaneously. Lower frame_load_cap, or process the clip in chunks by loading once and slicing later with the pack's own splitter node.
"Could not open video file." Codec support is whatever your OpenCV build bundled, and that's usually less than a full ffmpeg install. HEVC/AV1 clips are the usual casualties. If it won't open, re-encode to H.264 - it's the path of least resistance.
No audio. This is frames-only. If your workflow needs the audio track, VHS is the pack you actually want.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video | COMBO | 0 options: | |
| skip_first_frames | INT | 00–999999 | — |
| frame_load_cap | INT | 1711–999999 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGES | IMAGE | — |
| frame_count | INT | — |