PixaromaHelp
Help › Nodes › Image

Save Mp4 Pixaroma

Encode a frame batch or a whole video to an H.264 mp4 with optional audio, and watch it play right on the node.

In ComfyUI: double-click an empty spot on the canvas and type Save Mp4 Pixaroma.

What it does

Takes a batch of frames, or a whole video, plus an optional AUDIO track, and encodes them to a single mp4 using ffmpeg. A video preview plays on the node body so you can check the result without leaving ComfyUI. Audio is combined in the same pass.

Once it has made a video, the size and length are shown on the top right of the node, on the same line as the first input. Before the first run there is nothing to show, so it stays empty.

The ffmpeg binary is auto-located: if imageio-ffmpeg is installed its bundled exe is used; otherwise ffmpeg on your system PATH is tried.

Frames or a video: which input to use

ComfyUI has two different kinds of video on the wire, and this node accepts both, so there are two inputs. You only ever need one of them.

video_frames
A batch of frames. This is what Load Video Pixaroma's video_frames output gives you, and what a video model produces.
video
ComfyUI's own video type, such as the output of its Load Video node. The sound stored in the video comes along with it, so you do not need to wire audio as well. It also keeps its own frame rate, so it comes out the same length it went in and the fps setting is ignored for it.

What using the video input costs

A video wired into video is unpacked into frames and then encoded again, so re-saving a video loses a little quality, and a long clip is held in memory while it is read. If you already have the frames, wiring them in avoids both.

If you connect both inputs, video_frames is the one used, and the node prints a line saying so rather than quietly picking for you. A trimmed video (from ComfyUI's Video Slice) saves the trimmed part, not the whole file.

How to use

  • Wire an IMAGE batch into video_frames and the frame rate into fps (from AudioReact, connect its video_frames and fps). Or wire a video into video instead.
  • Optionally connect an audio output to add a soundtrack. It overrides the sound that came in with a video, which is how you replace a clip's audio.
  • Set save_mode to preview (temp, auto-cleared on restart) or save (kept in output).
  • The preview remembers the last clip, so it comes back when you switch workflows. If that file has since been deleted, moved, or cleared from temp by a restart, the node tells you instead of showing a black player: just run again.
  • Set filename_prefix to name the file; a 5-digit counter is added automatically. You can print another node's value into the name with a token like %Seed Pixaroma.seed%.
  • Enable trim_to_audio to end the video at the audio length.
  • Set audio_fade_ms to fade the sound in at the very start. AI video models often begin their audio at full level in a single step, which is heard as a click; about 120 removes it and is too short to notice as a fade. Leave it at 0 when you are re-saving a video whose sound you do not want changed.

Requirements

Save Mp4 needs a free tool called ffmpeg to turn the frames into a video. Most ComfyUI setups already have it, because anything else that works with video brings it along, so usually there is nothing to install. One rule: the frame width and height must both be even numbers, and the node shows a clear message instead of crashing if they are odd.

Only if you see an "ffmpeg not found" message, add it one of these ways:

  • Easiest: in ComfyUI Manager, open its pip install option and enter imageio-ffmpeg.
  • Portable ComfyUI (Windows): open a command window in your ComfyUI folder (the one that holds the python_embeded folder) and run python_embeded\python.exe -m pip install imageio-ffmpeg.
  • Installed with your own Python (venv or conda): activate that environment and run pip install imageio-ffmpeg.

Workflow inside the video

The full workflow is saved inside the mp4, the same way it is saved inside a PNG, so you can drag a saved mp4 back onto the canvas later and rebuild the whole graph. It is stored the same way ComfyUI's own video saving stores it, so ComfyUI reads it back on its own. The frame width and height must be even numbers.

Civitai generation info

Turn on Add Civitai generation info in the node's settings (right-click the node, or the gear) and Civitai shows the prompt, negative prompt, steps, CFG, seed, sampler and model name of the videos you upload. Without it Civitai often shows no prompt at all for a video, or nothing, because it cannot read most custom nodes.

Your workflow stays inside the video exactly as before, so dragging it back onto the canvas still rebuilds the whole graph. The setting applies to every Save Mp4 node. Unlike an image, a video cannot link the model or LoRAs to their Civitai pages, because Civitai does not read model fingerprints from videos.

The buttons on the node

Play and Pause
Starts or stops the preview. Clicking the picture itself does the same.
The scrub bar
Click or drag anywhere along it to jump to that point in the clip.
Download
Saves the finished mp4 to your computer.
The speaker
Sets how loud the preview plays. Point at it and a slider comes out. Click the speaker to silence it and click again to bring it back at the same level. Whatever level you leave it at is used by every Pixaroma video node from then on, in every workflow, so you only set it once. It belongs to you rather than to the workflow, so sharing a workflow does not carry your volume to anyone else, and changing it never marks a workflow as edited.
Fullscreen
Expands the video preview to fill your screen.

If you want folders and filenames

Save Mp4 is the quick one: drop it in and press Run. If you want to save into your own folder, build the filename from tokens, or see the exact file before it is written, use Save Video Pixaroma instead. It has the same encoder plus Save Image's folder and filename tools, and it can also write H.265 at 10-bit.

What you wire in

video_framesIMAGEoptional
Frame batch to encode. Wire Audio React Pixaroma's video_frames output here. Use this or video, whichever kind you have; if both are wired this one is used.
audioAUDIOoptional
Optional audio track to mux into the mp4 as AAC 192k. Connect Audio React Pixaroma's audio output here. A video wired into the video input brings its own sound, which this input overrides.
videoVIDEOoptional
A video straight from ComfyUI's own video type, such as its Load Video node, instead of a batch of frames. Its sound comes along with it. Wire this or video_frames, never both.

The settings on the node

fpsnumberdefault 24
Output frame rate for the video_frames input. Wire Audio React Pixaroma's fps output here so it always matches what produced the frames. A video wired into the video input brings its own frame rate and keeps it, so this is ignored for that input.
filename_prefixtextdefault Video
Filename stem. The node appends a 5-digit counter and .mp4 (e.g. Video_00001.mp4). Use '/' for subfolders, date tokens like %date:yyyy-MM-dd%, and node references like %Seed Pixaroma.seed% that print another node's field value into the name.
save_modechoicedefault save
save: write to ComfyUI's output/ folder, kept across restarts. preview: write to ComfyUI's temp/ folder, auto-cleared on restart, so use it while iterating and you will not clutter output/. The in-node video preview works the same in both modes.
savepreview
trim_to_audioon / offdefault off
Off (default): keep every video frame; the audio simply ends where it ends. On: end the video exactly at the audio's length (ffmpeg -shortest), for when the audio is the master (e.g. with Audio React). On can drop the last frame or two when the audio is slightly shorter than the video.
audio_fade_msnumberoptionaldefault 0
Fade the sound in over this many milliseconds at the very start. 0 is off. AI video models often start their audio at full level in a single step, which is heard as a click; about 120 helps a lot and is too short to notice as a fade. Leave it at 0 when you are just re-saving a video whose sound you do not want altered.

What comes out

Nothing. This is the end of a chain - it shows or saves what reaches it.

This is a terminal save node, it has no outputs.

This is the help that comes with Pixaroma 1.4.212. Inside ComfyUI, select the node and click the orange ? above it to read the same help there.