Video Combine
Stitch a batch of frames into a video
- image_batch
- scenes_video
Every video workflow in ComfyUI produces a stack of image frames, and something has to glue those frames into an actual playable file. That's this node. It takes a batch of images and encodes them into a GIF, WebP, or MP4 - Mixlab's take on the classic "Video Combine" that AnimateDiff and LTX users know from VideoHelperSuite.
Why the _Adv version exists
The twist here is the output type. Instead of just writing a file and calling it a day, VideoCombine_Adv emits a scenes_video of type SCENE_VIDEO - a Mixlab-specific handle to the encoded clip. That handle is the reason to use this node over a plain combiner: it wires directly into CombineAudioVideo, so you can mux in a soundtrack without leaving the graph. If you're doing silent output, a standard Video Combine is fine; if audio is coming next, this is the one that plugs in.
The inputs you'll actually touch
- image_batch - your frames, straight from the sampler or an upscaler. Required.
- frame_rate - playback FPS. Default is 8, which suits AnimateDiff-era clips; bump it up for smoother modern video. This just sets timing, it doesn't add or drop frames.
- format - pick your container:
image/gif,image/webp,video/av1-webm,video/h264-mp4,video/h265-mp4, orvideo/webm. For sharing anywhere,video/h264-mp4is the safe default - it plays on everything. GIF and WebP are for looping stickers and previews. - loop_count - how many times a GIF/WebP loops (0 = forever). Ignored by the MP4 formats.
- pingpong - plays the clip forward, then reverse, for a seamless boomerang loop. Great for short cycles, a quick way to hide a hard cut.
- save_image - writes the file to your output folder (on by default).
- filename_prefix and metadata round it out - the prefix names the file,
metadataembeds workflow info.
The node is an output node, so it's usually the last stop in the chain (or the second-to-last, before audio).
Installing it
Get the pack through ComfyUI Manager - search mixlab, install comfyui-mixlab-nodes, restart - or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/shadowcz007/comfyui-mixlab-nodes
then install requirements and restart.
The dependency that matters for any video node is ffmpeg. The MP4 and WebM formats are just frames handed to ffmpeg for encoding. If ffmpeg isn't on your system PATH, GIF and WebP will still work (they're written in Python) but the video formats will fail. h265-mp4 and av1-webm additionally need your ffmpeg build to actually include those encoders - plenty of stock builds don't ship AV1, so if that format errors, fall back to h264-mp4.
Common snags
- Output plays too fast or too slow - that's
frame_rate, not a bug. It's decoupled from how many frames you generated. - AV1 or H.265 fails but H.264 works - your ffmpeg build is missing that encoder. Use
video/h264-mp4. - The MP4 has no sound - this node never adds audio. That's what CombineAudioVideo is for; feed this node's
scenes_videointo it. - ComfyUI freezes right after you drop this node on the canvas - you're not imagining it. Some users hit a known UI-lock bug (can't pan or zoom) with Mixlab's video nodes specifically. It's a JS conflict in the pack, not a problem with your frames; the blunt workaround is disabling the pack, or trying VideoHelperSuite's combiner if you don't need the audio chain.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image_batch | IMAGE | — | |
| frame_rate | INT | 8 | — |
| loop_count | INT | 00–100 | — |
| filename_prefix | STRING | Comfyui | — |
| format | COMBO | 6 options: image/gif, image/webp, video/av1-webm, video/h264-mp4, video/h265-mp4, video/webm | |
| pingpong | BOOLEAN | false | — |
| save_image | BOOLEAN | true | — |
| metadata | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| scenes_video | SCENE_VIDEO | — |