Nodes/CMK Flow/CMK Save Project Video
ComfyUI Node

CMK Save Project Video

Saving video without another ffmpeg command you'll have to remember

By CMKFlow·Created 3 months ago·Updated a day ago· 6
CMK Save Project Video
  • video
  • video
  • filename
  • foldername
  • full_path
◄save_enabledtrue►
◄filename_prefixvideo►
◄output_folder►
◄use_date_foldertrue►
◄caption►
◄formatauto►
◄codecauto►

CMK Save Project Video takes a modern ComfyUI VIDEO object, drops it in a dated folder under output/, and gives you back the filename, the folder and the full path as strings. It also lets you attach a caption, which sounds trivial until you've tried to remember what prompt produced a 40-second clip three weeks ago.

What it is, and the thing to know first

This is a V3-schema node - written against ComfyUI's newer backend authoring API (io.ComfyNode, io.Schema, io.Video.Input) rather than the classic NODE_CLASS_MAPPINGS style. That's not a red flag; it's what "new" looks like now, and ComfyUI's own core primitives are written the same way. But it does mean two practical requirements. It needs a ComfyUI build recent enough to ship comfy_api.latest and the video types - CMK 2.5.5 was verified against ComfyUI 0.38.2, and on an older install this node may simply fail to register while the rest of the pack loads fine. And it consumes a VIDEO object, not an IMAGE batch, so it belongs downstream of ComfyUI's video nodes rather than after your frame loader.

Inputs and outputs

  • video - the VIDEO to save.
  • save_enabled (default true), filename_prefix (video), output_folder (blank), use_date_folder (true). The path is output / output_folder / YYYY-MM-DD / video_00001_.mp4.
  • caption (multiline) - if non-empty, it's written as a .txt next to the video. Same idea as the image save node's sidecar, but here it's your text rather than the log pipe.
  • format and codec, both combos defaulting to auto, populated from ComfyUI's own container and codec type lists. Leave them alone unless you have a reason: auto follows whatever the incoming video already is.

Outputs: video, filename, foldername, full_path. The three strings are the point - they're what you feed into another save node, a manifest, or this pack's own text saver. It's also an output node with a built-in player preview, so you see the result on the node instead of hunting through the folder.

Notice what's missing compared to CMK Save Project Image: no PROCESS input, no automatic Text2Image/Inpaint/Detailer folder stacking, no log sidecar. Video in this pack lives in its own world - segments in output/video/segments/<video_name>/, merges in output/video/merged/<video_name>/ - and this node is the plain, general-purpose saver for whatever video object you hand it.

Installing

Manager: search CMK Flow, install the CMKFlow entry, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/CMKFlow/cmk_nodes.git cmk_nodes
python3 cmk_nodes/scripts/install_cmk_requirements.py

Video work pulls in imageio-ffmpeg, which is in the pack's requirements - a bundled FFmpeg binary, so you don't need a system ffmpeg for the pack's own segmenting and merging nodes. Restart ComfyUI after the dependency step; a manual git clone never runs pip by itself, and a half-installed CMK can look like a broken node rather than a missing package. Enable Vue Nodes / Nodes 2.0 while you're in settings, which CMK requires.

Gotchas

save_enabled = false returns empty strings for filename, foldername and full_path and writes nothing - so if a downstream node is parsing full_path, it gets an empty string, not an error. That's the honest bypass, but check for it rather than assuming a path exists.

The generated filename has a slightly odd shape: {prefix}_{counter:05d}_.{ext} - note the trailing underscore before the extension. Harmless, and it's stable, but if you're globbing for files with your own script it will look like a typo rather than the format.

And the boring one that catches everybody: output_folder is joined straight onto ComfyUI's output directory with no cleaning step, so keep it a simple relative folder name. Nested paths and filesystem-unsafe characters are your problem here, unlike the image saver which sanitises its parts.

CategoryCMK/Toolbox/I-O

Inputs (8)

NameTypeDefaultDescription
videoVIDEO—
save_enabledBOOLEANtrue—
filename_prefixSTRINGvideo—
output_folderSTRING—
use_date_folderBOOLEANtrue—
captionSTRING—
formatCOMBOauto2 options: auto, mp4
codecCOMBOauto2 options: auto, h264

Outputs (4)

NameTypeDescription
videoVIDEO—
filenameSTRING—
foldernameSTRING—
full_pathSTRING—