Create and Save Video MXD
One node where you used to need two
- images
- audio
- video
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/ComfyUIby default, and the slash means subfolder. Change the folder half if you want to keep generations separated. - format -
auto,mp4,mkv,webm.autowrites an.mp4. - codec - the author only exposes
autoandh264. Pickh264and a second widget appears:encoding=auto(preserve compatible H.264) orre-encode, which opens acrffield (default 23, 0–51, lower = better and bigger). For a clip you're about to upload somewhere,h264+re-encodeat 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
yuv420p10lestream; 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to create a video from. | |
| fps | FLOAT | 301–120 | — |
| filename_prefix | STRING | video/ComfyUI | The prefix for the saved file. This may include formatting information. |
| format | COMBO | auto | The format to save the video as. |
| codec | COMBO | The codec to use for the video. | |
| audioopt | AUDIO | The audio to add to the video. | |
| bit_depthopt | INT | 88–10 | 10-bit keeps smoother gradients, but some players and nodes may not support it. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |