Nodes/Embeddr ComfyUI Extension/Embeddr Load Video
ComfyUI Node

Embeddr Load Video

Turn a video in your library into frames ComfyUI can work with

By embeddr-net·Created 9 months ago·Updated 5 months ago· 0
Embeddr Load Video
    • images
    • frame_count
    image_id
    frame_load_cap0
    skip_first_frames0
    select_every_nth1
    force_rate0
    custom_width0
    custom_height0

    Load Video is how a video stored in your Embeddr library becomes a batch of frames inside ComfyUI. It pulls the file down from your server, decodes it with OpenCV, and hands you an IMAGE tensor you can feed into anything frame-based - img2img on every frame, AnimateDiff-style processing, frame interpolation, you name it. Given that video models are the heaviest lift in the ecosystem, having your source clips already organized in a library and one node away from the sampler is a genuinely nice workflow.

    The input is a plain image_id string (yes, that's the actual field name - it's the video's ID, the naming is just legacy). Type the ID in and you're set.

    The frame controls - this is where the node earns its keep

    Six knobs that let you shape exactly which frames you get, straight from the source:

    • frame_load_cap - stop after N frames (0 = all). A video is often way more frames than you need; cap it and your VRAM thanks you.
    • skip_first_frames - skip the opening frames, which are usually junk.
    • select_every_nth - load every Nth frame. Default 1 (every frame); set 3 and you get a third of the frames, which is the classic cheap temporal decimation for long clips.
    • force_rate - force a playback FPS (0 = original). Mostly metadata, but handy if downstream assumes a rate.
    • custom_width / custom_height - resize, 0 = original. Set one and the other scales to match aspect ratio; set both and it uses them directly.

    The interplay matters: skip_first_frames and select_every_nth are applied in sequence during the read loop, and frame_load_cap stops the whole thing once you've collected enough. If you want the first 100 frames, every 2nd frame: skip=0, nth=2, cap=100.

    Outputs are images (the frame batch) and frame_count (an INT with how many you got - the second output is easy to ignore and genuinely useful for logging or batching logic).

    The dependency gotcha nobody warns you about

    This node imports cv2 (OpenCV). The pack's declared Python dependency is only requests - the author assumes OpenCV is already in your ComfyUI environment. Usually it is, because the frontend bundles it or you've installed another pack that needed it. But on a minimal install this node can fail at import time with a ModuleNotFoundError: No module named 'cv2'. The fix is one line:

    pip install opencv-python-headless
    

    (run it in the same Python environment as your ComfyUI - if you're in a venv, activate it first). That single missing dependency is the most likely reason this node fails while the rest of the pack works.

    Install & the rest

    Shared pack setup: embeddr serve running, pack via ComfyUI Manager or a release into custom_nodes, restart ComfyUI. The video is downloaded from your server via /api/v1/images/{id}/file, so a big clip is a big download each time - there's a cache class but it's not populated for video, so expect network cost on every run.

    Failure modes: bad ID → empty 64×64 image and frame_count 0 (not a crash, so watch for it), server down → same. And no audio: the code deliberately skips audio extraction, so if you need the soundtrack, get it elsewhere. It's a frame loader, and it's good at that.

    CategoryEmbeddr

    Inputs (7)

    NameTypeDefaultDescription
    image_idSTRING
    frame_load_capINT00–100000Stop loading after this many frames (0=all)
    skip_first_framesINT00–10000Skip this many frames at the start
    select_every_nthINT11–100Load every Nth frame
    force_rateINT00–120Force playback FPS (0=original)
    custom_widthINT00–4096Resize width (0=original)
    custom_heightINT00–4096Resize height (0=original)

    Outputs (2)

    NameTypeDescription
    imagesIMAGE
    frame_countINT