Adds a Koolook subclass of VHS VideoCombine that bypasses ComfyUI's
output-directory sandbox when filename_prefix is an absolute path —
the VFX-pipeline missing piece for writing renders into a project
tree (e.g. E:/projects/shot01/v003) instead of ComfyUI/output/.
Implementation:
- k_video_combine.py: ~60 LoC subclass + a pure _resolve_abs_target
helper. Scoped-patches folder_paths.get_save_image_path for the
duration of one combine_video() call so upstream's encoder, audio
mux, batch manager, and progress bar run unchanged. No VHS code
copied. Self-skips registration when VHS isn't importable (clean
one-line stderr notice).
- Discriminator: os.path.isabs(filename_prefix). No new input pin;
pattern borrowed from spacepxl/ComfyUI-HQ-Image-Save's SaveEXR.
- Optional create_path_if_missing BOOLEAN (default False) so typos
surface as FileNotFoundError instead of spawning stray dirs.
License audit (2026-05-16):
- VHS upstream: GPL-3.0 (verified via raw LICENSE fetch).
- HQ-Image-Save pattern source: MIT, copyright 2023 spacepxl.
- Koolook: already GPL-3.0; both upstreams are compatible.
- No source code from either upstream is incorporated.
Verification: 18 pytest cases green (12 existing + 6 new covering
relative passthrough, absolute resolution, create-on/off branches,
trailing-separator normalization, and empty-basename rejection).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>