Nodes/ComfyUI_BlendPack/Blend Video Combine
ComfyUI Node

Blend Video Combine

Turn BlendPack's frames into a GIF or WebP, no ffmpeg required

By SKBv0·Created 8 months ago·Updated 2 months ago· 36
Blend Video Combine
  • images
    frame_rate30
    filename_prefixBlendPack
    format
    save_outputtrue
    loop_count0
    blend_info

    BlendJoiner makes the transition; Blend Video Combine is what turns it into a file you can actually post. It's the export half of the ComfyUI_BlendPack pair: feed it the frame sequence, it encodes an animated GIF or WebP, drops it in ComfyUI's output folder, and shows the result right in the UI so you can watch it without leaving the graph.

    The code is explicitly modeled on VideoHelperSuite's VideoCombine node, which is a good sign - that's the pattern half the video community already encodes through. But mind the scope: GIF and WebP only, no MP4. If you need a proper video file, this isn't the node - route frames_out to VHS VideoCombine or an ffmpeg-based saver instead.

    What you set

    • images (IMAGE) - the frames to encode. In the intended workflow, that's BlendJoiner's frames_out.
    • frame_rate (FLOAT, 1–120, default 30) - how fast the animation plays, converted to per-frame duration. Wire BlendJoiner's frame_rate output here and you'll never get a speed mismatch.
    • format - webp or gif. That's the whole list, and it's the one real decision you make.
    • filename_prefix (default "BlendPack") - base name; ComfyUI appends a counter.
    • save_output (BOOLEAN, default on) - true writes to output/, false writes to the temp folder for a preview-only pass.
    • loop_count (INT, 0–100, default 0) - 0 means loop forever, which is what you want for a transition.
    • blend_info (STRING, optional) - wire BlendJoiner's blend_info output here and the transition's debug JSON rides along as metadata on the file.

    WebP vs GIF: WebP is the better default. It saves at quality 90, lossy, with no 256-color palette, so it's smaller and cleaner. GIF is the format everyone can open, but its palette bands on gradients - and a lot of transitions are gradients. For a quick preview, GIF is fine; for anything you'll actually keep, WebP.

    Install

    Part of the same pack, so one install covers both nodes. Via ComfyUI Manager, search "ComfyUI BlendPack"; or:

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

    Then restart ComfyUI. Dependencies are moderngl, opencv-python, numpy, torch, and Pillow - nothing heavy, no model downloads.

    Gotchas

    • The classic beginner move is mismatched frame rates: set the blend to 24 fps, leave this at 30, and the transition plays too fast. Wire frame_rate through and the problem disappears.
    • GIF files balloon on longer clips. A full-video export at 30 fps in GIF is enormous and slow to load anywhere. WebP for stills, MP4 elsewhere.
    • It's an output node with no output sockets, so "where did my video go?" has a two-part answer: the file in ComfyUI/output/ and the preview in the UI.

    For the five-second clip you just generated, this is the fastest path from "transition made" to "thumbnail in the chat."

    CategoryBlendPack

    Inputs (7)

    NameTypeDefaultDescription
    imagesIMAGE
    frame_rateFLOAT301–120
    filename_prefixSTRINGBlendPack
    formatCOMBO2 options: webp, gif
    save_outputBOOLEANtrue
    loop_countINT00–100
    blend_infooptSTRING

    Outputs (0)

    No outputs