- frames
- video_file
audio2video stitches a batch of image frames together with an audio track and writes out a finished video. It's the older name for what Mana Nodes now calls Combine Video, and like its sibling video2audio, the name is a bit of a tease - it's really "frames + audio → video," not "audio → video." It's the last stop in the pipeline, the node that turns a pile of rendered frames into something you can actually play.
Why you'd reach for it
The rest of the pack produces frames. Frames need encoding to become a video, and if you've been captioning a clip, you also need to re-attach the original sound. audio2video does both: it muxes your frame batch and an audio file into one output. That's the closing move in the "split a video, caption it, put it back together" workflow this pack is built around.
The inputs that matter
Note that here the audio is required, unlike in the newer Combine Video where it's optional:
frames- theIMAGEbatch to encode, typically from a font2img / Text to Image Generator node.audio_file- required. Path or URL to the audio track to mux in. In a caption graph this is the audio avideo2audio/ Split Video node extracted from the source, so the finished clip keeps its sound.fps- default 30. Output frame rate; set it to the fps you split the source at so timing holds.filename_prefix- output path relative toComfyUI/output(defaultvideo_files\video).
The output is video_file, a string path to the encoded file, and it's an output node so the result shows up in the UI on run.
Installing it
Comes with 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 uses FFmpeg under the hood, so it has to be installed and on the path - most "no file was produced" failures come down to FFmpeg not being available.
Common issues
Naming first: a current install likely shows Combine Video instead of audio2video. Same job, newer label; rewire old workflows accordingly. Also remember the contract difference - this legacy node requires an audio_file, so if you want a silent output you'll want the newer Combine Video (where audio is optional) rather than fighting this one.
Beyond that, the timing gotchas are the same as any combiner. Keep fps equal to the rate you split the source at, or the video plays too fast or slow and your captions drift. And make sure the frame count covers the same duration as the audio at that fps, or the picture and sound won't end together. The clean approach is to carry the split node's fps output straight through to this node so the numbers can't disagree.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_file | STRING | — | |
| frames | IMAGE | — | |
| filename_prefix | STRING | video_files\video | — |
| fps | INT | 301–60 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_file | STRING | — |