Nodes/ComfyUI-Pixaroma/Load Video Frame Pixaroma
ComfyUI Node

Load Video Frame Pixaroma

Grab one exact frame out of a video, like Load Image but for clips

By pixaroma·Created 5 months ago·Updated 4 days ago· 357
Load Video Frame Pixaroma
    • image
    • mask
    • frame_count
    • fps
    • width
    • height
    video
    frame0

    Load Video Frame Pixaroma is the node for "I need that frame." You've got a video, you want a single still from it - the frame where the pose is right, the eyes are open, the motion blur is gone - and you want it inside ComfyUI as an image without exporting it in another program first. Load the clip, scrub a slider on the node, and the picked frame flows into your workflow like a Load Image output.

    This is the quiet workhorse of the Pixaroma video trio. The full Load Video node hands you every frame as a batch; this one hands you exactly one, chosen by eye. If you've ever guessed a frame number and been wrong by two or three, the visual scrubbing is the entire point.

    How it works

    The node reads your video's frame count up front, so the slider knows the length, and shows a preview on the node body. Drag to any spot, use the arrow buttons to step one frame at a time for a pinpoint pick, or type an exact frame number. The counter tells you where you are - "frame 76 · 117 frames."

    Under the hood, the decode logic lives in the pack's shared video helpers, and this is the detail that makes deep-scrubbing pleasant: it seeks straight to the target frame instead of decoding the whole clip, so picking frame 900 of a 1,200-frame video stays fast. It prefers PyAV when it's installed and falls back to imageio (which uses imageio-ffmpeg's bundled ffmpeg) when it isn't. Either way, the pack works out of the box - the PyAV preference just buys more accurate metadata and faster seeking.

    The inputs and outputs

    Two inputs, both obvious:

    • video - pick from the dropdown or hit "choose video to upload" to put a clip into ComfyUI's input folder.
    • frame - 0-based, so 0 is the very first frame. If you type a number past the end of the video, it quietly uses the last frame instead of erroring.

    The outputs are designed to drop into the same slots as Load Image:

    • image - the picked frame.
    • mask - a blank, fully opaque mask matching the frame, so anything expecting a Load Image's mask input is satisfied.
    • frame_count, fps, width, height - the video's details as numbers, so you don't need a separate info node.

    Install and gotchas

    Install via ComfyUI Manager (search "Pixaroma") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/pixaroma/ComfyUI-Pixaroma
    

    Restart. Nothing to download for this node - no models, and the imageio fallback means no ffmpeg install is strictly required (though pip install av is the recommended upgrade for snappier seeking, and the node's error message tells you exactly how if it ever needs it).

    The recurring pack gotcha applies: after updating, hard-refresh with Ctrl+Shift+R (Cmd+Shift+R on Mac) if nodes look blank - it's the browser cache. And remember the frame counter is 0-based; a "first frame" that doesn't look like your first frame is usually an off-by-one on your end, not the video's.

    Category👑 Pixaroma/🖼️ Image

    Inputs (2)

    NameTypeDefaultDescription
    videoCOMBOThe video to load from ComfyUI's input folder. Use the 'choose video to upload' button, or pick one from the dropdown.
    frameINT00–999999Which frame to grab. 0 is the first frame. Drag the slider or use the arrow buttons on the node, or type the number here. If you enter a number past the end of the video, the last frame is used.

    Outputs (6)

    NameTypeDescription
    imageIMAGEThe picked frame as an image.
    maskMASKA blank (fully opaque) mask that matches the frame, so it drops into the same slots as Load Image.
    frame_countINTHow many frames the whole video has.
    fpsFLOATFrames per second of the video.
    widthINTFrame width in pixels.
    heightINTFrame height in pixels.