🐺 Lyonir Save Video
Video Combine Without Installing VideoHelperSuite
- images
- audio
- meta_batch
- vae
- Filenames
If you've made video in ComfyUI, you know VideoHelperSuite's Video Combine: feed it an IMAGE batch, get an MP4, plus a whole zoo of format widgets you mostly ignore. 🐺 Lyonir Save Video is that node, rebuilt inside a different pack, with the format presets copied over and one genuinely new idea - a persistent strip of your previous renders right inside the node.
Why it exists
Video Combine is one of those nodes that's effectively load-bearing infrastructure in the video workflow stack, which is exactly why people get annoyed when a pack needs it and doesn't have it. The README's pitch since v3.5.15 is blunt: the video encoding engine is included here, so you do not need VideoHelperSuite installed for this node. Other VHS nodes in your workflow still need their own package - the pack says so explicitly, and that's fair.
Under the hood it's a vendored, adapted copy of VHS's VideoCombine class, living in the pack's video_engine/ folder alongside a video_formats/ directory of the same JSON format presets (h264-mp4, h265, FFV1, ProRes, NVENC variants, AV1, WebM, the 8-bit and 16-bit PNG sequences, gifski...). That's what makes the compatibility claim real rather than marketing: the node returns the same VHS_FILENAMES type and exposes the same per-format widgets, so downstream "last saved video" style nodes and existing graph wiring keep working.
The license consequence is worth knowing: the pack ships as GPL-3.0 as a whole, precisely because it includes adapted VideoHelperSuite code. The original Lyonir files keep Apache-2.0. If you're shipping a product, that's a real distinction; if you're rendering clips in your bedroom, it's trivia.
Inputs that matter
Required: images (your frames), frame_rate (default 8), loop_count (0 = play once, no repeat), filename_prefix (yes, it defaults to AnimateDiff - rename it), format (14 presets, image/gif first), bit_depth, pingpong, and save_output.
Of those, bit_depth is the Lyonir addition. It's a real COMBO socket, not a plain dropdown, which means you can also feed it from a Get Video Components node. Auto (format) keeps the exact Video Combine preset; picking a fixed depth makes the node choose a compatible pixel format from that same preset. Default is fine unless you have a reason.
Optional: audio (an AUDIO input - this is how joint-audio models like MiniMax H3 and LTX 2.5 get their sound attached), meta_batch (VHS_BatchManager, for the Meta Batch workflow), and vae (needed only if you're feeding latents rather than images in VHS-compatible workflows).
Output: Filenames, typed VHS_FILENAMES. Wire it into anything expecting VHS's output, or ignore it.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Lyonir/ComfyUI-Lyonir-Studio.git
python -m pip install -r ComfyUI-Lyonir-Studio/requirements.txt
Manager's search term is ComfyUI-Lyonir-Studio. On Windows x64 the pack bundles FFmpeg: on first use it extracts a SHA-256-verified binary into vendor/runtime/ inside the pack folder. No PATH edits, no global install, no automatic pip. On Linux and macOS it uses imageio-ffmpeg from the requirements file instead.
Updating is worth reading the README about: on Windows, close ComfyUI, back up the old Lyonir folder outside custom_nodes, then replace it with the complete new folder. Keep only one copy of the pack in custom_nodes. Partial replacement is asking for a stale engine against a new gallery.
Where people trip
You deleted the vendor folder to save space. Then Windows encoding breaks. Keep it whole, and make sure the pack can write to its own vendor/runtime directory.
NVENC presets on AMD. Those presets require NVIDIA hardware and current drivers. Pick a software preset instead.
gifski presets. They need the gifski executable. If it isn't there, use the ffmpeg GIF preset.
Expecting 16-bit ProRes. You won't get it. ProRes presets manage their own pixel format and cap at 12-bit; the node reports the bit depth actually written rather than pretending. If you need a 16-bit output, use the 16-bit PNG sequence format.
History looks inherited. It isn't - the gallery is keyed per node identity, and a newly added node starts empty by design. Same mechanism as Lyonir Save Image.
Linux: silence about why it failed. With no bundled binary there, a broken imageio-ffmpeg install is the usual culprit. Check the ComfyUI terminal for the encoder's error before assuming the node is at fault.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | FLOAT | 8 | — |
| loop_count | INT | 00–100 | — |
| filename_prefix | STRING | AnimateDiff | — |
| format | COMBO | 14 options: image/gif, image/webp, video/h264-mp4, video/ffv1-mkv, video/ProRes, video/nvenc_h264-mp4, +8 | |
| bit_depth | COMBO | Auto (format) | Output bit depth. Auto keeps the exact Video Combine preset. When a fixed depth is selected, Lyonir selects a compatible pix_fmt from that same preset. This input is a real COMBO socket, so it can also accept bit_depth directly from Get Video Components. |
| pingpong | BOOLEAN | false | — |
| save_output | BOOLEAN | true | — |
| audioopt | AUDIO | — | |
| meta_batchopt | VHS_BatchManager | — | |
| vaeopt | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Filenames | VHS_FILENAMES | — |