π₯ Combine Video
Combine Video
- images
- video_file
Combine Video is the last node in the Mana Nodes pipeline: it takes your batch of rendered frames, muxes in an audio track if you have one, and writes out a finished video file. Where Split Video explodes a clip into parts, this reassembles parts into a clip. It's how the animated captions you drew actually become a playable .mp4.
Why you'd reach for it
Everything upstream in this pack produces frames - an IMAGE batch. Frames aren't a video until something encodes them. Combine Video is that something, and the reason to use this one specifically (over a generic video combiner) is the audio slot: in a captioning workflow you split the original clip, transcribe its audio, draw captions over the frames, and then need to stitch frames back together with the original audio re-attached. This node closes that loop.
The inputs that matter
images- required. The frame batch to encode, straight from a Text to Image Generator (or any node producing anIMAGEsequence).fps- optional, default 30. The output frame rate. For lip-sync and caption timing to hold, set this to the fps you split the source at - pass thefpsoutput from Split Video straight in.audio_file- optional. A path (or URL) to an audio track to mux in. In the caption workflow this is theaudio_filethat Split Video extracted, so the finished video keeps its original sound.filename_prefix- where the video is written, relative toComfyUI/output(defaultvideo\video).
The output is video_file - a string path to the rendered file. It's also an output node, so it'll surface the result in the UI when the graph runs.
Installing it
Part of Mana Nodes. ComfyUI Manager β search Mana Nodes β install β restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ForeignGods/ComfyUI-Mana-Nodes.git
Install requirements and restart. Encoding goes through FFmpeg, so it needs to be installed and reachable - a run that produces no file, or a file with no sound, is very often an FFmpeg problem rather than a node problem.
Common issues
The most common desync issue is an fps mismatch. If you split the source at 24fps but combine at 30, the video plays at the wrong speed and any captions you timed to the original drift out. Keep the combine fps equal to the split fps - the cleanest way is to wire the split node's fps output directly into this node.
Audio-length mismatch is the other one: if your frame count doesn't cover the same duration as the audio, you'll get a video that ends before or after the sound. Make sure your rendered frame count matches the clip length at your chosen fps. And if audio_file is left empty, that's fine - you just get a silent video, which is what you want for pure text animations with no soundtrack.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| filename_prefix | STRING | video\video | β |
| audio_fileopt | STRING | β | |
| fpsopt | INT | 301β60 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_file | STRING | β |