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>
User Guide
End-user documentation for nodes shipped by ComfyUI-Koolook. Pages
mirror the ComfyUI category each node lives under, so the structure here
matches what you see when you type "koolook" in the node-add menu.
Each per-node page includes a Source block at the top that records whether the node is Koolook-native or imported from a fork — so fork attribution is visible without needing a fork-shaped directory tree.
Browse by category
| ComfyUI menu | Status | Nodes |
|---|---|---|
Koolook/Pipeline |
🚧 page TBD | EasyAIPipeline |
Koolook/Image |
🚧 EasyResize_Koolook page TBD · ✅ easy_ImageBatch |
EasyResize_Koolook, easy_ImageBatch |
Koolook/Camera |
🚧 page TBD | KoolookLoadCameraPosesAbsolute |
Koolook/Wan_Video |
🚧 page TBD | EasyWan22Prompt |
Koolook/VAE |
✅ nodes/radiance_koolook_v2_3_3/ |
Easy_hdr_VAE_encode, Easy_hdr_VAE_decode |
Koolook/Testing |
🚧 page TBD | Easy_Pattern |
Cross-cutting concepts
Pages here cover ideas that span more than one node:
- Kforge Labs sidebar guide — visual onboarding for Snapshots, favorite nodes, saved workflows, reusable modules, tags, and recovery.
- VAE encode/decode pairing — which encoder fields must match the decoder for a clean roundtrip, with worked examples for SDR / HDR / cinema-log / video workflows.
- HDR modes deep dive — what
Clip (SDR),Soft Clip,Compress (Log), andPassthroughactually do to your pixels before they hit the VAE, with per-pixel worked examples.
When to add a guide
A node deserves a page if it has any of:
- Non-obvious input semantics (e.g. aspect-ratio strings, frame indexing conventions).
- A workflow recipe more useful than the per-input tooltips.
- A known limitation or compatibility caveat.
- An encode/decode or input/output pairing relationship with other nodes.
Convention:
- One markdown file per canonical node ID, named after the ID
(
easy_hdr_vae_encode.md,easy_image_batch.md). - Place it in the folder that matches the node's ComfyUI category.
- Screenshots and helper images go in
img/, named to match the page they're embedded in (e.g.easy_hdr_vae_encode_pairing.png).
Where to find the canonical node ID list
The repo README.md lists all currently-registered
node IDs and display names. The historical inventory (including removed
nodes) is in the CHANGELOG.md.