Nodes/KIE.ai Nodes Next/KIE • Save Video
ComfyUI Node

KIE • Save Video

The node that actually writes your MP4 to disk

By felipederosilva·Created 2 months ago·Updated 3 days ago· 3
KIE • Save Video
  • video
  • video
  • saved_file
◄filename_prefixKIE-Videos/KIE►

Every video workflow ends the same way: you finally have a VIDEO on the canvas and nothing has touched your hard drive. Preview nodes show you a result and lose it when you reload the workflow. KIE • Save Video is the boring-but-essential exit door - it encodes to MP4 under ComfyUI's output folder and hands back a file reference you can reopen later.

If you came here from the KIE Next pack: this node spends zero credits, calls no API, and needs no key. It's local file I/O wearing a KIE badge.

What it does

Two things, and the second one is the reason to prefer it over ComfyUI's built-in save.

First, it writes an MP4. The prefix you set (default KIE-Videos/KIE) becomes a subfolder plus basename under ComfyUI/output/, and the actual filename gets a counter and a short random hex suffix appended - KIE_00007_a19f3c21.mp4. That suffix matters: re-running the same graph never silently overwrites your last export.

Second, it returns saved_file, a durable string like KIE-Videos/KIE_00007_a19f3c21.mp4 [output]. That's the pointer KIE • Persistent Load Video accepts, which is how you keep a rendered clip available in a later workflow instead of re-generating it. Wire saved_file into your notes, a text node, or straight into that loader.

There's a little crash-safety worth knowing about: the node writes to a hidden .partial.mp4 first, checks the file isn't empty, and only then renames it into place. If ComfyUI dies mid-save you get no file, not a truncated one you'll waste an hour diagnosing.

Inputs and outputs

Only two inputs, and you'll set one of them once:

  • video - any ComfyUI VIDEO. That includes output from KIE generation nodes, KIE • Assemble Video + Music, or anything your local Wan/LTX graph produced.
  • filename_prefix - KIE-Videos/KIE by default. Change it to organize exports (client-a/shot-04). It can't be empty, and it can't escape the output directory - the node resolves the path and refuses anything outside output/.

Outputs are video (a pure passthrough, so you can keep chaining) and saved_file (the string above). It's an output node, so it only fires when you queue the prompt.

Installing the pack

Add the pack, not the node. In ComfyUI Manager, search KIE Next and install "KIE.ai Nodes Next". The README says v0.6.1's Registry approval is still pending, so if Manager doesn't offer it, do it manually:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt

Restart ComfyUI. Requirements are light - requests, Pillow, numpy, PyYAML - so this is one of the few packs that won't drag half of PyPI in behind it. There are no model downloads for this node, and no one-click Windows installer for 0.6.1 (the old .vbs installers in the repo are for v0.3.x; don't use them).

Where people get burned

"KIE video output requires ComfyUI's folder_paths module." You're running the node outside a real ComfyUI process - usually a test script. Run it from the ComfyUI environment.

"Connect a ComfyUI VIDEO object to preview or save it." You passed an IMAGE batch, or an old-style frame list. This node predates none of that - it wants ComfyUI's native VIDEO type, which is what KIE generation nodes and Assemble Video + Music emit.

Empty output with no error. Check ComfyUI/output/KIE-Videos/. Every Node-Frontend version parks saved media in output/<your subfolder>/; if you renamed the prefix, the file moved with it.

Don't use this as a preview. It's an output node - it runs the whole graph. Save Video for final exports, KIE • Preview Video (which writes to output/KIE-Previews/) while you're iterating.

CategoryKIE Next/Utility/Media

Inputs (2)

NameTypeDefaultDescription
videoVIDEO—
filename_prefixSTRINGKIE-Videos/KIE—

Outputs (2)

NameTypeDescription
videoVIDEO—
saved_fileSTRING—