BerniniR · Save Video (mp4/webm/gif/webp)
Write your result as mp4, webm, gif, or webp — one node, four formats
- images
BerniniR · Save Video is the output node for this pack: feed it the frames from BerniniR · VAE Decode (or any image batch) and it writes a file to ComfyUI/output in the format you pick - mp4 or webm via PyAV, gif or webp via Pillow. It's the counterpart to the pack's own Load Video node, and it saves you from hunting down a format-specific saver after every render.
The reason it's worth having as part of the pack rather than a stock saver: it does the decode-to-file correctly for the frames this pipeline produces, handles the even-dimension requirement automatically, and its mp4 default matches what you actually want to post or drop into an editor.
Inputs
images(IMAGE) - the frame batch, typically from BerniniR · VAE Decode.format-mp4(default),webm,gif, orwebp. mp4/webm need PyAV; gif/webp need only Pillow, which ComfyUI ships.fps- default 16, which matches the pack's sampler default and the 81-frames ≈ 5 seconds cadence. Set to your source clip's fps when you're editing to keep motion timing honest.filename_prefix- defaultBerniniR; files come out likeBerniniR_00001_.mp4inComfyUI/output.
How it works
mp4/webm are encoded with PyAV - it tries libx264 first and falls back to mpeg4 for mp4, libvpx-vp9 then libvpx for webm. Two details handled for you: video codecs require even dimensions (yuv420p), so odd sizes get rounded down, and the output registers with ComfyUI's UI preview (berninir_video) so mp4/webm show up in the browser instead of being a mystery file. gif/webp are written with Pillow's save_all, looping forever - fine for clips, and what you expect from those formats.
Install & troubleshooting
Shared pack install: ComfyUI Manager, or clone into custom_nodes + pip install -r requirements.txt.
- "revisa
pip install av" - the node literally tells you: mp4/webm need PyAV.pip install av - gif/webp work, mp4 fails? Same answer - that's the missing PyAV.
- Video looks wrong in an editor? Check
fps. An 81-frame render at 16 fps is ~5 seconds; saving it at 24 makes it run ~3.4 seconds and can feel wrong for an edit. Match the source. - Output files landing where?
ComfyUI/output, named with the prefix. If the browser preview isn't showing mp4, that's the front-end needing the pack'sweb/berninir.js- make sure the whole pack folder is present, not just the Python nodes.
If all you want is a quick look, a preview node is cheaper than writing a file - but when you're done iterating and want the actual clip, this is the one to reach for.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| format | COMBO | mp4 | 4 options: mp4, webm, gif, webp |
| fps | FLOAT | 161–120 | — |
| filename_prefix | STRING | BerniniR | — |
Outputs (0)
No outputs