Blend Video Combine
Turn BlendPack's frames into a GIF or WebP, no ffmpeg required
- images
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'sframes_out.frame_rate(FLOAT, 1–120, default 30) - how fast the animation plays, converted to per-frame duration. Wire BlendJoiner'sframe_rateoutput here and you'll never get a speed mismatch.format-webporgif. 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 tooutput/, 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'sblend_infooutput 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_ratethrough 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."
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | FLOAT | 301–120 | — |
| filename_prefix | STRING | BlendPack | — |
| format | COMBO | 2 options: webp, gif | |
| save_output | BOOLEAN | true | — |
| loop_count | INT | 00–100 | — |
| blend_infoopt | STRING | — |
Outputs (0)
No outputs