Nodes/ComfyUI-DaSiWa-Nodes/DaSiWa Enhanced Video Combine
ComfyUI Node

DaSiWa Enhanced Video Combine

A combine node that picks its own codec

By darksidewalker·Created 4 months ago·Updated 23 days ago· 22
DaSiWa Enhanced Video Combine
  • images
  • audio
  • frames
  • filename
frame_rate24.00
codecAuto
containerAuto
bit_depthAuto
quality20
log_levelStandard
pingpongfalse
save_metadatatrue
filename_prefixvideo_%date:hhmmss%
save_outputtrue
pass_framesfalse
crop_to_audiofalse
audio_codecAuto
audio_bitrate192k
save_first_framefalse
save_last_framefalse

If you've used the standard VHS Video Combine node, this is that node's job with the boring parts automated. Point it at an IMAGE batch, and instead of you guessing whether your GPU actually supports the codec you picked, it tests AV1 → H.265 → VP9 → H.264 in order and uses the first one that actually works on your machine - NVENC first if you've got an NVIDIA card, then other GPU encoders (Intel QSV, AMD AMF, VAAPI), then software as the last resort. Set codec to Auto and forget about it; only override it when you specifically need a container/codec combo for something downstream.

How it works

Codec, container, and bit depth all default to Auto, and the node runs its own compatibility check at encode time rather than trusting a fixed config. It pairs the codec with a compatible container automatically (WebM/MKV/MP4), and if every preferred combination fails on your host, it falls back to plain H.264-in-MP4 - the one combination that plays everywhere. It also detects whether your source frames are 8-bit or 10-bit: H.265 output keeps the requested precision, but it additionally writes an H.264 sidecar file automatically, because a lot of browsers still can't play HEVC. You'll end up with two files in some cases; that's by design, not a bug.

Every run gets a compact log line telling you what it actually picked - codec, container, encoder, resolved audio settings (like audio=libopus/192k) - so when something looks off you don't have to reverse-engineer it from the output file.

The inputs and outputs that matter

  • images - your frame batch. frame_rate (default 24) sets playback speed, not generation speed.
  • codec / container / bit_depth - leave on Auto unless you have a reason not to.
  • quality (0–51, default 20) - this is a CRF-style scale: lower number, higher quality, bigger file. 20 is a solid middle ground; go toward 15–18 if you're archiving, 25+ if you just need a quick preview.
  • pingpong - plays the clip forward then backward, useful for seamless loops without doubling your frame count at generation time.
  • filename_prefix (default video_%date:hhmmss%) - supports the usual placeholder syntax.
  • save_first_frame / save_last_frame - writes matching PNGs alongside the video and pushes them plus the video to ComfyUI's Assets panel, handy for thumbnail-hunting without opening the video.
  • Optional audio input muxes a connected ComfyUI AUDIO track - pair with audio_codec, audio_bitrate, and crop_to_audio (trims video length to match the audio track instead of the other way around).

Outputs: frames (the IMAGE batch, so you can chain it into something else without a Reroute) and filename (STRING - the path it actually wrote, useful for downstream logging or a notification node).

How to install it

ComfyUI Manager - search DaSiWa-Nodes, install, restart.

Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/darksidewalker/ComfyUI-DaSiWa-Nodes
pip install -r ComfyUI-DaSiWa-Nodes/requirements.txt

then restart ComfyUI. This node itself doesn't need an NVIDIA GPU - the encoder auto-selection just prefers NVENC when it's available and steps down gracefully when it isn't.

Common issues & troubleshooting

It's using software x264 and it's slow. That means the auto-detect didn't find a working GPU encoder path on your host - usually missing or mismatched NVIDIA/AMD/Intel drivers, or you're on a container/VM without GPU passthrough for encoding. Check the log line the node prints; it tells you exactly what it tried and what it landed on.

Two files got written when I only asked for one. That's the 10-bit-source-with-H.265 case: the node writes the requested HEVC file plus an H.264 sidecar automatically, because HEVC playback in-browser is still inconsistent. Not a bug - use the sidecar for sharing, the primary for archiving.

Audio track is missing, or the video is longer than the audio. Confirm you actually wired an AUDIO input - it's optional and silently skipped if empty. If lengths don't match, turn on crop_to_audio.

CategoryDaSiWa/Video

Inputs (18)

NameTypeDefaultDescription
imagesIMAGE
frame_rateFLOAT24.000.1–240
codecCOMBOAuto5 options: Auto, AV1, VP9, H.265 (HEVC), H.264
containerCOMBOAuto4 options: Auto, WebM, MKV, MP4
bit_depthCOMBOAuto3 options: Auto, 8-bit, 10-bit
qualityINT200–51
log_levelCOMBOStandard2 options: Standard, Verbose
pingpongBOOLEANfalse
save_metadataBOOLEANtrue
filename_prefixSTRINGvideo_%date:hhmmss%
save_outputBOOLEANtrue
pass_framesBOOLEANfalse
crop_to_audioBOOLEANfalse
audio_codecCOMBOAuto4 options: Auto, AAC, Opus, MP3
audio_bitrateCOMBO192k7 options: 64k, 96k, 128k, 160k, 192k, 256k, +1
save_first_frameBOOLEANfalse
save_last_frameBOOLEANfalse
audiooptAUDIO

Outputs (2)

NameTypeDescription
framesIMAGE
filenameSTRING