ComfyUI Node Runs on cloud

Video Combine

Stitch a batch of frames into a video

By MixLabPro·Created 3 years ago·Updated 2 months ago· 1,859
Video Combine
  • image_batch
  • scenes_video
frame_rate8
loop_count0
filename_prefixComfyui
format
pingpongfalse
save_imagetrue
metadatafalse

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, or video/webm. For sharing anywhere, video/h264-mp4 is 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, metadata embeds 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_video into 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.
Category♾️Mixlab/Video

Inputs (8)

NameTypeDefaultDescription
image_batchIMAGE
frame_rateINT8
loop_countINT00–100
filename_prefixSTRINGComfyui
formatCOMBO6 options: image/gif, image/webp, video/av1-webm, video/h264-mp4, video/h265-mp4, video/webm
pingpongBOOLEANfalse
save_imageBOOLEANtrue
metadataBOOLEANfalse

Outputs (1)

NameTypeDescription
scenes_videoSCENE_VIDEO