Nodes/OmniNodes/Video Load πŸ“Ή
ComfyUI Node

Video Load πŸ“Ή

Getting a video file into your graph as frames

By TensorVizionΒ·Created 3 months agoΒ·Updated about 8 hours agoΒ· 0
Video Load πŸ“Ή
    • images
    • source_fps
    • frame_count
    • summary
    β—„video_pathβ–Ί
    β—„target_fps0.0β–Ί
    β—„max_frames0β–Ί
    β—„skip_first0β–Ί

    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_fps drops 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.

    CategoryTensorVizion/Video

    Inputs (4)

    NameTypeDefaultDescription
    video_pathSTRINGβ€”
    target_fpsFLOAT0.00–120β€”
    max_framesINT00–100000β€”
    skip_firstINT00–100000β€”

    Outputs (4)

    NameTypeDescription
    imagesIMAGEβ€”
    source_fpsFLOATβ€”
    frame_countINTβ€”
    summarySTRINGβ€”