Presave Video
Preview video without burying your output folder in mp4s
- video
MKRPresaveVideo is the video sibling of MKRPreSave, and it earns its keep the same way: preview_only defaults to true, so it acts like a fast preview instead of a commit. Iterate on the preview, then flip the toggle and let it write the real file. If your video-generation workflow currently ends in a stack of unnamed mp4s cluttering your output folder while you're still tuning the prompt, this is the node that fixes the habit.
What it's for
The input socket is the * wildcard type, which means it accepts just about anything video-ish: a file path, a decoded frame tensor from a video loader, or an MKR_VIDEO payload from another MKRShift media node. It figures out what it's looking at, previews it if you only want to look, and - when you uncheck preview_only - writes it to output/<subfolder> in your chosen format.
It's an output node that always reruns (the float("nan") IS_CHANGED trick), and like MKRPreSave it ships a custom frontend, so the UI you get is the pack's own.
Inputs that matter
video- any file, tensor, orMKR_VIDEOpayload.preview_only- True = temp preview, False = commit to disk.output_format-auto,mp4,mov,webm,gif,webp.autokeeps the source container when it can, which is usually what you want.animation_fps(default 24),animation_loop(default 0 = loop forever),webp_quality(90) - output parameters for animated/compressed formats.filename_prefix,subfolder,overwrite, and optionalfilename_label- standard output plumbing.
Installing it
The pack install is the same everywhere:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
restart ComfyUI, or use Manager → MKRShift_Nodes. One extra step that actually matters here: the README is explicit that you need ffmpeg on your PATH for the video export and muxing nodes. mp4/mov/webm go through ffmpeg; gif and webp can be written with PIL alone. Install ffmpeg (a package manager install is fine) or you'll find mp4 requests silently downgrading to gif with a warning in the summary.
Common issues
Missing ffmpeg is the big one - the node falls back gracefully (it warns and uses gif), but "why is my output a gif" is almost always "ffmpeg isn't installed." The other thing to watch: auto picks the format by what's already there, so if your source is a low-quality gif, your "saved" output inherits that container. And if the input is a bare frame tensor with no fps info, the animation_fps value is what the output gets - set it before you commit, or your looped preview will play at the wrong speed.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video | * | — | |
| preview_only | BOOLEAN | true | — |
| output_format | COMBO | auto | 6 options: auto, mp4, mov, webm, gif, webp |
| filename_prefix | STRING | MKR_video | — |
| subfolder | STRING | — | |
| overwrite | BOOLEAN | false | — |
| animation_fps | INT | 241–120 | — |
| webp_quality | INT | 901–100 | — |
| animation_loop | INT | 00–1000 | — |
| filename_labelopt | STRING | — |
Outputs (0)
No outputs