Nodes/Nifty Nodes for ComfyUI/Load & Resize Video
ComfyUI Node

Load & Resize Video

Load a video and make it the right size in one node

By Stibo·Created 5 months ago·Updated 2 months ago· 9
Load & Resize Video
    • IMAGE
    • frames
    • width
    • height
    • frame_rate
    • audio
    • meta_bundle
    filenone
    force_frame_rate0
    resize

    Every video workflow starts with the same annoying dance: load the clip, then feed it through a resize node or two, and if you're using WAN or LTX, check the dimensions actually land on the right multiples before the sampler barfs. Load & Resize Video collapses that into a single node. It's the video-specific member of the Nifty Nodes media loader family (the "Load & Resize Media" node does images and video; this one is restricted to video and animation files).

    What it does

    Pick a file from the dropdown and it reads it, resizes it to whatever your pipeline needs, and hands you a ready-to-use image batch plus all the metadata a downstream workflow could want. It handles the usual video containers - mp4, mkv, webm, m4v - plus animated formats like gif, apng, webp and avif, so an animated sticker counts as "video" here.

    Under the hood it uses imageio-ffmpeg to pull frames and then runs the frames through the same Nifty resize pipeline the image loaders use. That's the key detail: the resize is built in, not bolted on, so you get one set of resize modes shared across the whole pack instead of memorizing three different scalers.

    The inputs that matter

    • file - the dropdown of files in your input folder. Set it to none and the node returns empty outputs instead of crashing, which is handy for optional video branches.
    • force_frame_rate - 0 keeps the source frame rate; set 24, 30, or 60 and the video is resampled during load. Useful when you're stitching together clips that were recorded at different rates.
    • resize - the full resize menu. Leave it on off to load at original dimensions.

    Worth knowing for the resize menu specifically: "make divisible by" snaps dimensions to a multiple you choose (set it to 16 and WAN video stops complaining), and "scale longer dimension" is the one you want when you only care about one side. For the scale method, lanczos is your friend for upscaling and area for downscaling - the same advice that holds across ComfyUI generally.

    Outputs

    The output list is what makes this loader genuinely nice to wire up:

    • IMAGE - the frames as a batch tensor, ready for a VAE encode or img2vid sampler.
    • frames - total frame count (great for driving a length input downstream).
    • width / height - dimensions after resize.
    • frame_rate - the source (or forced) rate.
    • audio - the extracted audio track. Silent/empty if the file has none.
    • meta_bundle - any metadata bundle embedded in the file (from this pack's PNG metadata feature); an empty dict otherwise.

    One honest caveat: this variant has no is_video output - if you need to route based on whether a file is a video or a still, reach for Load & Resize Media instead.

    Installing it

    It ships with the Nifty Nodes pack, so install once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Stibo/comfyui-nifty-nodes
    

    or search "Nifty Nodes" in ComfyUI Manager, then restart. No model downloads. The pack pulls imageio-ffmpeg, color-matcher, and dynamicprompts as dependencies - Manager handles that automatically.

    Gotchas

    • It needs a recent ComfyUI. The whole pack is built on the new comfy_api.latest (V3) API, so if the node doesn't show up in your search, update ComfyUI first. This is a newer pack - there's barely any community chatter about it yet, so the README and source are your documentation.
    • The none file option passes through empty outputs, not an error - good, but it means a disconnected-looking IMAGE wire is normal in that state.
    • Resampling frame rate is real work; forcing 60fps on a long clip takes a moment.
    Categorynifty/media

    Inputs (3)

    NameTypeDefaultDescription
    fileCOMBOnoneVideo or animation file to load. Select 'none' to pass through an empty output.
    force_frame_rateINT00–240Force a specific frame rate for playback and resampling. 0 = keep the original frame rate of the file.
    resizeCOMBOResize mode to apply after loading. 'off' loads the video at its original size.

    Outputs (7)

    NameTypeDescription
    IMAGEIMAGE
    framesINT
    widthINT
    heightINT
    frame_rateINT
    audioAUDIO
    meta_bundleBUNDLE