Save Video
The plain name now points to ComfyUI's own node, not N-Nodes'
- video
- video
Quick disambiguation before anything else, because it'll save you a debugging session: the node currently registered under the plain class name SaveVideo is ComfyUI's own built-in video writer, living in comfy_extras/nodes_video.py. It's not the one from Nuked88's ComfyUI-N-Nodes pack. You can tell from the schema alone - four fields (video, filename_prefix, format, codec) is core's minimal native-video output, built around the newer VIDEO object type that ships with modern ComfyUI.
Here's why this page still lives under an N-Nodes pack, though: N-Nodes had a node called SaveVideo first, back before ComfyUI had any native video support of its own. It did a related but bigger job - take a batch of frame images plus the METADATA object produced by the pack's own LoadVideo/LoadFramesFromFolder, and write them back out as a video file, with a separate toggle for dumping the individual PNG frames to disk and its own PNG compression-level control. If you're chasing that node specifically - the one that preserves a clip's original audio track when you haven't trimmed the frame range - it's still there, it's just not what's registered under this exact class name on a current install. Same pack, same job description, a different era of ComfyUI won the name.
What the core version does
Taking the schema at face value: you feed it a video object (the kind a native LoadVideo or any other video-producing node hands you), give it a filename_prefix (defaults to video/ComfyUI), and leave format and codec on "auto" unless you have a specific reason not to - a target player that only likes a particular container, say. It's flagged as an output node, meaning it writes the file as a side effect of running, and it passes the video object back out the other side so you can chain something after it if you need to.
Installing ComfyUI-N-Nodes
If it's actually the pack's tools you're after - this node's N-Nodes cousin, LoadVideo [n-suite], FrameInterpolator, the GPT nodes - the install is the same regardless of which specific page sent you here:
- ComfyUI Manager - search "ComfyUI-N-Nodes" (you'll also see it listed as "ComfyUI-N-Suite" in older references) and install.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/Nuked88/ComfyUI-N-Nodes.git, then restart ComfyUI.
Nothing GPU-specific needs compiling for the video side of the pack - that requirement only ever applied to the GPT/LLM nodes, and even there it's mostly automatic now (see the GPT-Loader-Simple write-up).
Common issues & troubleshooting
Video export throws a moviepy.editor import error. This one caught a whole thread of people on r/comfyui: N-Nodes' video pipeline imports from moviepy.editor, and moviepy 2.0 deleted that submodule outright. If your Python environment picked up a moviepy upgrade recently and saving or encoding starts throwing ModuleNotFoundError, the fix that worked for people was hand-editing ComfyUI-N-Nodes/py/video_node_advanced.py, changing from moviepy.editor import VideoFileClip, AudioFileClip to from moviepy import VideoFileClip, AudioFileClip. Pinning moviepy<2 in the pack's environment is the other way around it if you'd rather not touch vendored code.
A workflow saved before February 2024 loads with broken or red nodes. The pack went through a full internal rename of its node classes around that date specifically to stop colliding with other packs - and, as this page demonstrates, it later collided with ComfyUI's own native additions anyway. Old workflow JSON references the old class names and won't resolve. The maintainer's fix is a migration tool: drag the .json onto migrate.bat on Windows, or run python libs/migrate.py path/to/workflow.json on Linux, and it writes a _migrated copy without touching your original file.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | The video to save. | |
| filename_prefix | STRING | video/ComfyUI | The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes. |
| format | COMBO | auto | The format to save the video as. |
| codec | COMBO | auto | The codec to use for the video. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |