Nodes/AusBoss/Load Video πŸ†Ž
ComfyUI Node

Load Video πŸ†Ž

A video loader that trims, thins, and doesn't eat your RAM

By ausbossΒ·Created 2 months agoΒ·Updated 3 days agoΒ· 2
Load Video πŸ†Ž
    • frames
    • audio
    • frame_count
    • fps
    • width
    • height
    • duration
    • video
    β—„videoβ–Ύβ–Ί
    β—„start_seconds0.00β–Ί
    β—„end_seconds0.00β–Ί
    β—„custom_width0β–Ί
    β—„custom_height0β–Ί
    β—„every_nth1β–Ί
    β—„max_frames0β–Ί
    β—„single_framefalseβ–Ί

    Every video workflow starts the same way: get the frames out of a file, get the metadata out too, and don't blow up your machine doing it. Load Video πŸ†Ž is the AusBoss pack's take on that chore - a full loader with a trim timeline built in, plus the lazy VIDEO output that lets clips chain straight into ComfyUI's own video nodes.

    What you get

    The outputs read like a spec sheet: frames (BHWC batch), audio (the same trim window's audio, silent if there's no track), frame_count, fps, width, height, duration - everything downstream needs to size latents and encode correctly. Then the interesting one: video, a lazy core VIDEO handle. Frames decode only when a consumer asks for them, so you can pass a whole clip to a core video node without paying the decode cost up front.

    The player built into the node is the interface. It has a two-handle trim timeline - drag IN and OUT, type exact h:mm:ss.s timecodes below it, preview just that window, loop it optionally. Only the selected window gets decoded, which is where the memory safety comes from.

    The controls that keep it honest

    • start_seconds / end_seconds - the trim window. 0 end means "to the end."
    • custom_width / custom_height - optional resizing; set one side only and the other follows to preserve aspect.
    • every_nth - keep one frame in N. 2 halves the frame count, and the fps output divides to match, so the clip still plays at real speed downstream. This is how you thin a long clip for a quick pass.
    • max_frames - hard cap on kept frames. The decode ends early rather than loading and discarding, which is the difference between "slow but fine" and "16GB of RAM gone."

    There's a memory guard on oversized trims too: it reports instead of exhausting RAM. The audio is extracted lazily, only when consumed.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/ausboss/ComfyUI-AusBoss.git
    

    Restart ComfyUI and search for AusBoss (Manager: ComfyUI-AusBoss). No extra Python dependencies - decoding uses PyAV, which ships with ComfyUI. Minimum ComfyUI 0.27.1.

    Troubleshooting

    If the video output shows None, your ComfyUI core predates the VIDEO type - every version this pack supports has it, but a very old core won't. If a huge trim is refused, that's the memory guard doing its job; slice it with max_frames or a tighter window instead of fighting it. And the classic: every_nth thins the batch but the visual preview still shows the source - check fps if downstream timing looks fast or slow. Wire fps from this node into Save Video and the timing problem mostly stops existing.

    CategoryπŸ†Ž AusBoss/Video

    Inputs (8)

    NameTypeDefaultDescription
    videoCOMBOVideo in ComfyUI's input folder; use the upload button to add one.
    start_secondsFLOAT0.000–86400Skip everything before this time. Drag the preview's IN handle or type an exact value below the player.
    end_secondsFLOAT0.000–86400Stop at this time; 0 plays to the end. Drag the preview's OUT handle or type an exact value below the player.
    custom_widthINT00–163840 keeps the source width; set one side only to preserve aspect.
    custom_heightINT00–163840 keeps the source height; set one side only to preserve aspect.
    every_nthoptINT11–512Keep one frame in this many β€” 2 halves the frame count. The fps output divides to match, so the clip still plays at real speed downstream.
    max_framesoptINT00–100000Stop after this many kept frames; 0 loads the whole trim window. Caps memory on long clips β€” the decode ends early instead of loading and discarding.
    single_frameoptBOOLEANfalseLoad only the frame at the IN time as a one-image batch. The preview's trim strip becomes a frame picker (the FRAME button toggles this), and end_seconds, every_nth, and max_frames are ignored.

    Outputs (8)

    NameTypeDescription
    framesIMAGETrimmed BHWC frame batch.
    audioAUDIOAudio for the same trim window; silent when the video has no audio track.
    frame_countINTNumber of frames returned.
    fpsFLOATFrames per second of the returned batch: the source rate divided by every_nth.
    widthINTFrame width after any custom sizing.
    heightINTFrame height after any custom sizing.
    durationFLOATDuration in seconds of the returned frames.
    videoVIDEOCore VIDEO for the same trim window at the source size; frames decode only when a consumer asks for them. None on ComfyUI cores without the comfy_api VIDEO type (present on every version this pack supports).