Nodes/ComfyUI-fal-API/Load Video from URL
ComfyUI Node

Load Video from URL

Pull a remote video into ComfyUI as frames (no API key needed)

By gokayfem·Created 2 years ago·Updated a day ago· 203
Load Video from URL
    • frames
    • frame_count
    • video_info
    urlhttps://example.com/video.mp4
    force_rate0
    force_size
    custom_width512
    custom_height512
    frame_load_cap0
    skip_first_frames0
    select_every_nth1

    Almost every other node in this pack calls fal and needs an API key. This one doesn't. It's a plain utility: give it a URL that points at a video file, and it downloads and decodes that video into a batch of frames you can actually work with inside ComfyUI. No FAL_KEY, no per-call billing - it just fetches and unpacks.

    Why it's in a fal pack, and why it's genuinely useful: the fal video nodes (Kling, Sora, Veo, Wan, and the rest) hand you back a URL string, not playable frames. This node is the other half of that loop. Wire a video node's STRING output into this node's url, and you get the generated clip back as IMAGE frames - ready to upscale, interpolate, restyle, or recombine locally.

    What it actually does

    It pulls the video from the URL and turns it into three outputs: frames (an IMAGE batch - every frame as an image, the way ComfyUI wants video), frame_count (an INT), and video_info (a VHS_VIDEOINFO bundle with fps, dimensions, and duration, matching what VideoHelperSuite nodes expect). From there it's a normal ComfyUI image batch: run it through any per-frame process and recombine it with a video-combine node.

    The inputs that matter

    • url (required): the direct link to the video file. This is the whole point - paste it, or wire in the URL output of another node.
    • frame_load_cap: max frames to load, 0 for all. The single most important knob for keeping memory and time under control - a long clip decoded in full can be thousands of frames and eat your VRAM.
    • select_every_nth: take every Nth frame. Set it to 2–4 to thin out a high-fps clip you don't need every frame of.
    • skip_first_frames: trim from the front.

    There's also force_rate (resample to a target fps, 0 = leave it), and force_size with custom_width/custom_height for on-load resizing (Disabled keeps native resolution). For most uses you leave the sizing alone and only touch the frame-count controls.

    Installing it

    It ships with the pack, so: ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/gokayfem/ComfyUI-fal-API.git
    cd ComfyUI-fal-API
    pip install -r requirements.txt
    

    Restart ComfyUI. Since this node doesn't call fal, you don't need an API key for it specifically - but you do still need the pack's dependencies from requirements.txt, and the VHS_VIDEOINFO output plays nicest with VideoHelperSuite installed alongside.

    Where people get burned

    The classic mistake is loading a huge clip with frame_load_cap at 0 and watching ComfyUI grind or OOM - a few seconds of 60fps 1080p is a lot of image tensors. Cap the frames and use select_every_nth if you don't need full temporal resolution.

    The other one is the URL itself: it has to point at an actual downloadable video file, and fal result URLs expire after a while, so if you're feeding it a generated video link, load it promptly (or save the file first with the pack's Fal Save Media from URL node). A dead or expired link is the usual cause of a load failure here, not the node.

    Categoryvideo

    Inputs (8)

    NameTypeDefaultDescription
    urlSTRINGhttps://example.com/video.mp4
    force_rateINT00–60
    force_sizeCOMBO10 options: Disabled, Custom Height, Custom Width, Custom, 256x?, ?x256, +4
    custom_widthINT5120–8192
    custom_heightINT5120–8192
    frame_load_capINT00–1000000
    skip_first_framesINT00–1000000
    select_every_nthINT11–1000000

    Outputs (3)

    NameTypeDescription
    framesIMAGE
    frame_countINT
    video_infoVHS_VIDEOINFO