Nodes/RunningHub/RH Download Video
ComfyUI Node

RH Download Video

RH Download Video pulls a cloud-rendered clip down and can even give you the frames

By liangzheng1128·Created 3 months ago·Updated 3 months ago· 0
RH Download Video
    • frames
    • video_path
    url
    extract_framesfalse
    max_frames100

    The video Model nodes in this pack are URL machines: RH Text to Video and RH Image to Video hand you a video_url and call it a day. RH Download Video is the node that actually does something with that URL - it downloads the clip to disk, gives you the local path, and optionally rips it into an IMAGE tensor frame by frame so you can process the video locally like any other image sequence.

    It's the video counterpart to RH Download Image, and like that node it needs no API key and no RunningHub account - pure local utility. If your cloud workflow produced a video, this is how you get it off the cloud and into your graph.

    Inputs and outputs

    Required:

    • url (STRING) - the video URL.
    • extract_frames (false default) - the big switch. Off, and you just get the file path. On, the node decodes the video with OpenCV and hands you the frames as an IMAGE tensor.
    • max_frames (100 default, up to 10000) - the cap on extracted frames, so a long clip doesn't blow up your memory.

    Outputs:

    • frames (IMAGE) - the frame sequence. When extract_frames is off this is a black 64×64 placeholder, so don't wire it expecting actual frames unless the switch is on.
    • video_path (STRING) - the absolute path to the downloaded file on your disk, which you can feed to a video-save node, ffmpeg, or just open.

    The traps, in order of how often they bite

    Frames cost memory. The tooltip says it: "may use a lot of memory." A 5-second 30fps clip is 150 frames of full-resolution tensors; a minute of 4K is a genuine VRAM/RAM event. If you only need a few frames for thumbnails or conditioning, keep max_frames small rather than leaving it at 100.

    The placeholder frame. With extract_frames off, the frames output is that black 64×64 placeholder. It's not a bug - it's "you asked for no frames." Wire video_path and ignore frames in that mode.

    Frame extraction needs OpenCV. The node catches a missing cv2 import and returns the placeholder with a log warning. ComfyUI ships OpenCV, so this usually works out of the box, but on a minimal install you'll get black frames and no crash - check that opencv-python-headless is present before chasing ghosts.

    One URL at a time. Like its image sibling, no batch input. Multiple videos means multiple nodes.

    Where it fits

    The pattern is simple and common: RH Text to Video → video_url → RH Download Video → video_path (save it) and/or frames (run them through a local upscaler, a frame-smoother, or a VAE for further generation). It turns the pack's URL-only video outputs into something your local pipeline can actually consume.

    Install

    cd ComfyUI/custom_nodes/
    git clone https://github.com/liangzheng1128/ComfyUI-RunningHub
    cd ComfyUI-RunningHub
    pip install -r requirements.txt
    

    or ComfyUI Manager → search "RunningHub", restart. Pack deps are light - requests, websocket-client, Pillow, numpy - with OpenCV coming from ComfyUI itself.

    CategoryRunningHub

    Inputs (3)

    NameTypeDefaultDescription
    urlSTRINGVideo URL to download
    extract_framesBOOLEANfalseExtract frames as IMAGE tensor (may use a lot of memory)
    max_framesINT1001–10000Maximum number of frames to extract

    Outputs (2)

    NameTypeDescription
    framesIMAGE
    video_pathSTRING