RM Video Combine
Turn your frames into H.264, WebP, or GIF without a second node pack
- images
- audio
- vae
- Filenames
If you've built a video workflow in ComfyUI, you've met VideoHelperSuite's VideoCombine - the node that turns a batch of frames into an actual file. This is that node, ported into the RMAutomation pack (the README credits VHS directly), with the same formats, the same VHS_FILENAMES output, and the same ffmpeg requirement. The selling point isn't novelty; it's that you get video output without installing a second pack, and it slots into the RMAutomation style workflow with its own metadata and progress plumbing.
How it works
You feed it an image batch (or a latent plus a VAE, which it decodes frame by frame in batches to keep VRAM sane). It picks a format, and then:
image/gifandimage/webpare written straight through PIL - no ffmpeg needed, and WebP saves lossless by default.video/webm-vp9,video/h264-mp4, andvideo/h265-mp4go through ffmpeg, driven by JSON format files in the pack'svideo_formats/folder that define the codec pass, pixel format, and dimension alignment. You can drop your own JSON in there to add formats.
Metadata is the differentiator: the full prompt and extra PNG info are written into the file's metadata via ffmpeg, and a first-frame PNG with the same metadata is saved alongside so a drag-into-ComfyUI workflow round-trip still works. An optional audio input gets muxed in with an audio pass, and pingpong doubles the frames back on themselves for a loop. It also pings a local "Playground" viewer app at 127.0.0.1:3001 for progress - harmless if nothing's listening; it fails silently.
Inputs and outputs that matter
- images (IMAGE, required) - also accepts LATENT when vae is connected.
- frame_rate (default 8), loop_count (0 = no loop), format, pingpong, save_output.
- format is the one you'll touch most: H.264 MP4 for anything you'll upload, GIF/WebP for quick previews.
- filename_prefix (default "video") - files land in your ComfyUI output folder as
prefix_timestamp.mp4, or in output_dir if you set one. - Output: Filenames (
VHS_FILENAMES) - compatible with VHS's preview/info nodes if you have them.
How to install it
cd ComfyUI/custom_nodes
git clone https://github.com/Moser9815/ComfyUI-RMAutomation
Restart ComfyUI. The video formats need an ffmpeg binary - the pack has no requirements.txt, so install one manually:
pip install imageio-ffmpeg
or put a system ffmpeg on your PATH (the node prefers the imageio one if imageio-ffmpeg is importable).
Common issues
The classic: "ffmpeg is required for video outputs and could not be found." That's the node telling you the binary is missing - install imageio-ffmpeg and restart; GIF and WebP keep working without it. Second: dimension errors. The format files enforce dimension alignment, and the node pads odd-sized frames automatically, but a frame count that doesn't match expectations can produce a black or clipped tail - keep every batch the same size. And if you only get the first-frame PNG and no video, check the ffmpeg stderr - the node prints the subprocess error, and it's almost always a codec your build doesn't include (H.265 especially).
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | video | — |
| frame_rate | FLOAT | 8 | — |
| loop_count | INT | 00–100 | — |
| format | COMBO | 5 options: image/gif, image/webp, video/h264-mp4, video/webm-vp9, video/h265-mp4 | |
| pingpong | BOOLEAN | false | — |
| save_output | BOOLEAN | true | — |
| output_diropt | STRING | — | |
| audioopt | AUDIO | — | |
| vaeopt | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Filenames | VHS_FILENAMES | — |