Nodes/ComfyUI-MaxedOut/Create and Save Video MXD
ComfyUI Node

Create and Save Video MXD

One node where you used to need two

By Maxed-Out-99·Created about a year ago·Updated 5 days ago· 9
Create and Save Video MXD
  • images
  • audio
  • video
fps30
filename_prefixvideo/ComfyUI
formatauto
codec
bit_depth8

You have a stack of frames sitting in an IMAGE output - from a Wan 2.2 or LTX decode, from a video loader, from an image sequence - and you want an actual .mp4 on your disk. Core ComfyUI makes you run a Create Video node and then a Save Video node to do it. This does both in one, and puts the file in ComfyUI/output with your prompt and workflow tucked inside the container.

What it actually does

It's an output node, so it's the last thing in the graph. Under the hood it builds a video object from your frames (VideoFromComponents), figures out the output folder and counter from your filename prefix, then muxes with the PyAV/FFmpeg that already ships with ComfyUI. No separate encoder install, no pip step.

The saved name follows ComfyUI's normal counter convention - with the default prefix you get output/video/ComfyUI_00001_.mp4. And like a PNG, the file carries metadata: the workflow plus the API-format prompt go into the container unless you launched ComfyUI with --disable-metadata. That's the same "the file is the project file" convention still images have used for years, and it's the reason a video you hand someone can rebuild the graph that made it.

The inputs you'll actually touch

  • images - the frame batch, in order. One frame in, one-frame video out; this isn't an image node.
  • fps - default 30, allowed 1–120. This is the setting people get wrong. It's your frame rate, not a preference. An 81-frame Wan clip is usually 16fps, so 30 here gives you a clip that plays at roughly double speed and never lines up with the audio you mux onto it.
  • filename_prefix - video/ComfyUI by default, and the slash means subfolder. Change the folder half if you want to keep generations separated.
  • format - auto, mp4, mkv, webm. auto writes an .mp4.
  • codec - the author only exposes auto and h264. Pick h264 and a second widget appears: encoding = auto (preserve compatible H.264) or re-encode, which opens a crf field (default 23, 0–51, lower = better and bigger). For a clip you're about to upload somewhere, h264 + re-encode at 20–23 is the safe pick.
  • audio (optional) - wire an AUDIO in and it gets muxed with the picture. Leave it empty and you get a silent file, which is the usual reason someone's "audio didn't save".
  • bit_depth - only 8 or 10, because the step is 2. 10-bit gets you smoother gradients and a yuv420p10le stream; it also stops some players and browsers from opening the file at all. If the tooltip's warning didn't land: leave it at 8 unless you specifically need the headroom.

The single output is video (VIDEO). The file is already written, but the passthrough is worth using - feed it into Preview Video MXD or Combine Videos MXD if you're assembling segments.

Install

ComfyUI Manager: open it, search Maxed Out, install, restart.

cd ComfyUI/custom_nodes
git clone https://github.com/Maxed-Out-99/ComfyUI-MaxedOut.git

Restart ComfyUI. The pack has no pip dependencies at all - no requirements.txt to fight with your other nodes - which is rare enough to be worth saying out loud, given how much of ComfyUI's install pain is dependency roulette.

Where people get burned

The node isn't in the list. Only half this pack registers unconditionally. CreateAndSaveVideoMXD lives inside a HAVE_COMFY_API guard: if your ComfyUI is old enough that comfy_api.latest won't import, the node simply doesn't exist. Check your startup log for [ComfyUI-MaxedOut] comfy_api not available in wan22.video_ops. The fix is updating ComfyUI, not reinstalling the pack.

Speed or pitch is off. That's fps, near enough every time. Match it to whatever generated the frames.

A 10-bit export "won't play" in a browser or on a phone. It's not corrupt, it's Hi10P. Re-run at 8.

You expected a new file every run. It is an output node; it encodes every time you queue, and the counter climbs. That's also why long clips feel slow - you're paying a full encode on each execution, not just a save.

Categoryvideo

Inputs (7)

NameTypeDefaultDescription
imagesIMAGEThe images to create a video from.
fpsFLOAT301–120
filename_prefixSTRINGvideo/ComfyUIThe prefix for the saved file. This may include formatting information.
formatCOMBOautoThe format to save the video as.
codecCOMBOThe codec to use for the video.
audiooptAUDIOThe audio to add to the video.
bit_depthoptINT88–1010-bit keeps smoother gradients, but some players and nodes may not support it.

Outputs (1)

NameTypeDescription
videoVIDEO