Nodes/ComfyUI-Pixaroma/Save Video Pixaroma
ComfyUI Node

Save Video Pixaroma

An MP4 that lands anywhere, with audio, and a player on the node

By pixaroma·Created 5 months ago·Updated a day ago· 369
Save Video Pixaroma
  • video_frames
  • audio
    fps24
    name

    Save Video Pixaroma is the video sibling of Save Image Pixaroma, and it fixes the two things that make stock video saving annoying: you're stuck with ComfyUI's output folder, and audio is a separate headache. This node encodes frames plus optional audio straight to MP4, saves to any folder on your computer, and has a built-in <video> preview so you can watch the result without leaving ComfyUI (click the picture to play/pause).

    The filename builder is the same one as Save Image Pixaroma, with clickable chips for everything you might want in a name: the wired filename, the date or time, an auto-increasing counter, the width and height, the batch number, the fps, the duration - plus %input%, which uses the name input to keep the original filename. Files never overwrite (the counter continues from the highest one already there), and typing / in the name makes subfolders.

    Inputs

    • video_frames (required) - the frames to encode, as an image batch. Wire a video source, an AudioReact Pixaroma video_frames output, or any node that produces a batch of images. They must be RGB with even width and height - the node says so clearly rather than letting ffmpeg fail cryptically.
    • fps (FLOAT, default 24, 1–240) - frames per second. Wire the fps output of whatever produced the frames so the two always agree, or type a number.
    • audio (optional) - a sound track, mixed into the MP4 as AAC 192k. If the audio can't be read, the video still saves - just without it. A "Trim to audio" setting ends the video where the audio ends.
    • name (optional) - used by the %input% token; wire a loader's filename output here to keep the original name. Put a slash after the token (%input%/clip_%counter%) to save into a folder named after it.

    How it encodes

    The node needs ffmpeg, and it finds it automatically: it prefers the executable bundled with imageio-ffmpeg (a pip install away, no system setup), and falls back to ffmpeg on your PATH. If you hit a "can't find ffmpeg" error, that's the fix.

    pip install imageio-ffmpeg
    

    Install

    Part of the Pixaroma pack: ComfyUI Manager → search Pixaroma → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://gitlab.com/pixaroma/comfyui-pixaroma.git
    

    It pairs naturally with Load Audio Pixaroma (trim the track) and Load Video Pixaroma (re-encode loaded frames), but works with any source that produces frames + AUDIO. The pack-wide gotcha applies: hard-refresh the browser tab (Ctrl+Shift+R / Cmd+Shift+R) after an update. And the usual video trap - odd-width frames, or an fps that disagrees with the source - is exactly what the fps wiring and the even-dimension check are there to prevent.

    Category👑 Pixaroma/🖼️ Image

    Inputs (4)

    NameTypeDefaultDescription
    video_framesIMAGEThe frames to encode, as an image batch. Wire a video source, an AudioReact Pixaroma video_frames output, or any node that produces a batch of images. They must be RGB and have even width and height.
    fpsFLOAT241–240Frames per second for the saved video. Wire the fps output of whatever produced the frames so the two always agree, or type a number. Also available in the filename as the %fps% token.
    audiooptAUDIOOptional sound track, mixed into the mp4 as AAC 192k. If the audio cannot be read the video is still saved, just without it. Turn on 'Trim to audio' in the settings to end the video where the audio ends.
    nameoptSTRINGOptional text used by the %input% token in the filename, for example wire the filename output of a loader here to keep the original name. To save into a folder named after this text, put a slash after the token: %input%/clip_%counter%.

    Outputs (0)

    No outputs