Files
malkuthro-ComfyUI-Koolook/forks
malkuthroandClaude Opus 4.7 f24838a6ce feat(vae): sequence dispatch + cinema color surface + alpha output (#42)
Combines two changes to Easy_hdr_VAE_encode/decode (Koolook v2.3.3 fork):

1. Rank-aware dispatch + 5D-output normalization. 5D video tensors paired
   with a 2D image VAE are iterated frame-by-frame on encode (stack on
   dim=2) and per-frame decoded on decode (cat on dim=0). 5D output from
   3D-aware video VAEs (Wan 2.2, Hunyuan, CogVideoX, LTX — exposed via
   `vae.latent_dim == 3`) is reshaped (-1, H, W, C) to ComfyUI's standard
   IMAGE batch, mirroring stock VAEDecode at nodes.py:303-304. Fixes the
   "1056x41 count=1" symptom where 41-frame Wan 2.2 sequences collapsed
   to a single squashed image; SaveImage now writes one PNG per frame.

2. Cinema color surface ported from upstream Radiance v2.3.3 (without the
   broken 4K cosine-blend tile engine that motivated the slim fork in the
   first place). 12 source/target spaces including six cinema log curves
   (ARRI LogC3/LogC4, Sony S-Log3, Panasonic V-Log, DaVinci Intermediate,
   RED Log3G10) plus ACES 2065-1 and Rec.2020 Linear. Compress (Log) HDR
   mode pairs encode-side log-curve encoding with decode-side per-profile
   soft-shoulder + log-domain highlight denoise for HDR-clean roundtrips.
   New latent_sampling parameter (sample/mean/mode). Alpha now surfaces
   as a real third IMAGE return on encode (the previous flag was a no-op).

Exposure is now applied in linear space for all non-Raw source spaces;
Raw source still does a raw-domain multiplication so users who know what
they are feeding the VAE keep their bytes intact.

Helpers extracted to forks/radiance_koolook/versions/v2_3_3/color_helpers.py
(log curves, soft-shoulder, log-denoise, sampling-mode helper, color
matrices, dispatch tables) so nodes_vae.py stays focused on node wiring.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 01:41:09 +02:00
..

Forks Workflow

This folder is the single source for all fork tracking metadata inside MAIN.

Purpose

  • Keep modified forked code in MAIN under versioned paths (for GitHub tracking).
  • Keep raw external checkouts outside MAIN under ../ComfyUI-Forks (for upstream reference/sync).
  • Keep all fork metadata in one place:
    • forks/forks_manifest.yaml
    • forks/THIRD_PARTY.md

Folder Layout in MAIN

  • forks/radiance_koolook/__init__.py -> package entrypoint used by root __init__.py
  • forks/radiance_koolook/versions/v1_0_1/ -> local modified node sources
  • forks/radiance_koolook/versions/<version>/UPSTREAM_PIN.yaml -> exact upstream parity pin

External Folder Naming (outside MAIN)

Root: ../ComfyUI-Forks

  • Pinned baseline checkout:
    • radiance-v1.0.1-koolook
  • Rolling upstream checkout:
    • radiance-main-upstream

These names are referenced from forks/forks_manifest.yaml.

Referencing System

For each fork entry in forks/forks_manifest.yaml:

  • source_repo = canonical upstream URL
  • source_ref = release/tag (or baseline descriptor)
  • pinned_commit = exact reproducible commit hash
  • external_checkout.relative_path_from_forks_root = pinned raw reference folder
  • external_checkout.upstream_tracking_path_from_forks_root = rolling upstream folder
  • local_paths = files tracked in MAIN

Tagging Policy (from now on)

  • MAIN repo tags use SemVer: vMAJOR.MINOR.PATCH.
  • Local fork version folders use underscore variant of the same version:
    • v1_0_1, v2_3_3, etc.
  • Node mapping namespace suffixes must match folder versions:
    • __koolook_v1_0_1, __koolook_v2_3_3, etc.
  • Keep source_ref + pinned_commit in forks/forks_manifest.yaml and UPSTREAM_PIN.yaml.

Upgrade Flow Example (Radiance)

  1. Compare current local version (forks/radiance_koolook/versions/v1_0_1) with pinned raw baseline (../ComfyUI-Forks/radiance-v1.0.1-koolook).
  2. Pull latest upstream in ../ComfyUI-Forks/radiance-main-upstream.
  3. Create a new local version folder in MAIN, e.g. forks/radiance_koolook/versions/v2_3_3.
  4. Port/validate modifications.
  5. Namespace node IDs for that version.
  6. Add new entry/update metadata in forks/forks_manifest.yaml.

Rule of Thumb

  • If it is modified production code -> keep in MAIN under forks/.../versions/...
  • If it is raw upstream reference -> keep outside MAIN under ../ComfyUI-Forks