Boyo Video Paired Saver
Save your video and the prompt that made it, as one unit
- images
- audio
If you're building a video-text training set - or you're just sick of digging through workflow JSONs months later to figure out which prompt made which clip - this is the output node for you. Boyo Video Paired Saver renders your frame batch to an MP4 with ffmpeg and drops a .txt containing the prompt right beside it, with matching filenames. One render, one text file, zero archaeology.
Here's the thing about ComfyUI video: the samplers hand you an image batch, not a movie. Core ComfyUI has no built-in MP4 writer, so the community relies on nodes like this that shell out to ffmpeg. Boyonodes is a grab-bag pack by DragonDiffusionbyBoyo, and this is the "paired" half of its video saver pair - the sibling, Boyo Video Saver, is the same thing without the prompt file.
How it works
Under the hood it's straightforward: it writes every frame of your images batch to a temp folder as PNGs, then calls ffmpeg with your fps and codec. The quality dropdown maps to real encode settings - high is CRF 18 with the slow preset, medium is CRF 23 medium, low is CRF 28 fast - and it pads to even dimensions and forces yuv420p so the result plays everywhere. If you wire in an audio input, it muxes it as AAC at 192k and uses -shortest so the clip ends when the shorter of audio or video runs out.
It also keeps a per-folder counter: files come out as video_gen001.mp4 / video_gen001.txt, video_gen002.*, and so on, picking up where the folder left off between runs. Output lands in ComfyUI/output/<folder_name>/, not the root output directory.
The inputs that matter
You don't set most of these every run, honestly. The ones you touch:
- images - your decoded frame batch. Wire this from whatever's at the end of your video pipeline.
- enhanced_prompt - this one's force-input, so it can't be typed in; run a wire from a text node. It's written verbatim to the
.txt. - folder_name and filename_prefix - decide where and what it's called. Change either to start a fresh sequence.
- fps, codec, quality - self-explanatory. libx264 for max compatibility, libx265/av1 for smaller files that some players choke on.
- audio (optional) - an AUDIO tensor from an audio pipeline (TTS, or VHS Load Audio). If it turns out to have no audio stream, it quietly saves video-only and warns in the console.
There are no outputs - it's an output node; its job is the files on disk.
Install
The pack is on ComfyUI Manager (search "Boyonodes"), or clone it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/DragonDiffusionbyBoyo/Boyonodes
Restart ComfyUI. This node needs no extra Python dependencies beyond what ships - the pack's heavy requirements.txt is for the audio/TTS side. What it does need is ffmpeg on your PATH (ffmpeg -version in a terminal to check; choco install ffmpeg on Windows, brew install ffmpeg on macOS, sudo apt-get install ffmpeg on Linux).
Where people get burned
Missing ffmpeg is the classic one - the node throws a Failed to create video error with ffmpeg's stderr and no output file. Also remember the counter: if you've run a folder before, numbering continues from the highest existing file, so deleting a few clips won't reset it. And if your frame dimensions are odd, don't panic - the even-padding is automatic. If you only need the video and not the prompt pair, grab Boyo Video Saver instead and save yourself a forced input.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| enhanced_prompt | STRING | — | |
| folder_name | STRING | video_batch_output | — |
| filename_prefix | STRING | video_gen | — |
| fps | FLOAT | 24.01–60 | — |
| codec | COMBO | libx264 | 3 options: libx264, libx265, av1 |
| quality | COMBO | high | 3 options: high, medium, low |
| audioopt | AUDIO | — |
Outputs (0)
No outputs