Load Video Frame Pixaroma
Grab one exact frame out of a video, like Load Image but for clips
- image
- mask
- frame_count
- fps
- width
- height
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
0is 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| video | COMBO | The video to load from ComfyUI's input folder. Use the 'choose video to upload' button, or pick one from the dropdown. | |
| frame | INT | 00–999999 | Which 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)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | The picked frame as an image. |
| mask | MASK | A blank (fully opaque) mask that matches the frame, so it drops into the same slots as Load Image. |
| frame_count | INT | How many frames the whole video has. |
| fps | FLOAT | Frames per second of the video. |
| width | INT | Frame width in pixels. |
| height | INT | Frame height in pixels. |