release: v0.6.0 — 13 nodes live (batch-4 N-12 HALDIdentity + N-13 LUTExport LUT round-trip portability layer)

Batch-4 ships the LUT portability layer. The new N-12 / N-13 pair
generates an identity HALD tensor, runs it through the existing
color-grade chain (tone curve, color match), and exports the result
as a valid Adobe Cube 1.0 .cube file (~7 MB for level 8 = 262144
body lines). The .cube can be loaded in DaVinci Resolve 18+,
Premiere Pro 2023+, OBS Studio 29+, and any OCIO-compatible tool --
letting users bake their ComfyUI grade into a portable artifact.

/color subgroup now consolidates to 5 nodes (N-05 + N-08 + N-09 +
N-12 + N-13). Zero new dependencies: core/lut.py is pure
torch.arange + stdlib file I/O (sec 2b one-time single-agent
exception ratified in T-20 pack precedent).

Gate 6.0 pytest+ruff check BLOCKER passed BEFORE this commit + tag
push (4th consecutive release, memory feedback_pytest_before_tag_push.md
discipline confirmed effective: T-14 v0.3.0 bitter lesson -> T-17
v0.4.0 -> T-18 v0.5.0 -> T-22 v0.6.0 carry forward). Pack canon =
pytest + ruff check only; ruff format --check is separate housekeeping
scope (25 file pre-existing drift tracked for post-release follow-up
per H-20260420-1230 Cowork clarification Option Y adopt).

Refs: T-20260420-22, T-20260420-20, T-20260420-21
This commit is contained in:
Jet Huang
2026-04-20 13:26:59 +07:00
parent e924f99e54
commit c5ec29f327
3 changed files with 21 additions and 4 deletions
+19 -2
View File
@@ -4,10 +4,27 @@ All notable changes to this pack are recorded here. Format follows [Keep a Chang
## [Unreleased]
## [0.6.0] — 2026-04-20
Batch-4 ships the LUT portability layer. The new **N-12 / N-13** pair generates an identity HALD tensor, runs it through the existing color-grade chain (tone curve, color match), and exports the result as a valid Adobe Cube 1.0 `.cube` file — letting users bake their ComfyUI grade into a portable artifact readable by DaVinci Resolve 18+, Premiere Pro 2023+, OBS Studio 29+, and any OCIO-compatible tool. `/color` subgroup consolidates to 5 nodes (N-05 + N-08 + N-09 + N-12 + N-13). Pack now ships **13 live nodes** and the **M4-head milestone ships**.
### Added
- 2 workflow screenshots for S-08 Color Matcher + S-09 Tone Curve (batch-3 follow-up, JH manual smoke test verified post-v0.5.0). README §N-08 + §N-09 now render reference image like §N-01..§N-07. Workflow JSONs themselves were also extended by JH with optional community-pack utility nodes (`ImageResize+` from `comfyui_essentials`, `NH_ImageCompare` from `nh-nodes`) for richer interactive demo — the pack's core nodes (`JHPixelProColorMatcher` / `JHPixelProToneCurve`) remain zero-community-dep. No tag bump — docs-only commit post-v0.5.0; v0.5.0 historic record at peel `d0691db` is unchanged.
- Workflow screenshot for S-14 LUT Export (batch-4 follow-up, JH manual smoke test verified post-T-20). README §N-12 HALD Identity + §N-13 LUT Export now render reference image. Smoke test produced a valid Adobe Cube 1.0 `.cube` file (~7 MB for level 8 = 262144 body lines) and the workflow JSON was extended by JH with a `ShowText|pysssss` node wired to `N-13.path` so the resolved output path is visible in the UI — pack's core nodes (`JHPixelProHALDIdentity` / `JHPixelProLUTExport`) remain zero-community-dep. No tag bump yet — docs-only commit post-T-20; v0.6.0 release batched in T-22.
- **N-12 `JHPixelProHALDIdentity`** (`ComfyUI-JH-PixelPro/color`): Generates an identity HALD image encoding a cube of `N = L²` color samples as a single `L³ × L³` RGB image (ImageMagick HALD convention). Inputs: `level` COMBO `{4, 6, 8, 10, 12}` default `"8"` (L=8 → N=64, image 512×512, cube 262144 samples — industry standard). Outputs: `IMAGE` identity HALD tensor `(1, L³, L³, 3)` float32 `[0, 1]` + `INT` pass-through `level` (wire to N-13 to match cube size).
- **N-13 `JHPixelProLUTExport`** (`ComfyUI-JH-PixelPro/color`): Writes a graded HALD image as an Adobe Cube 1.0 (`.cube`) 3D-LUT file. Inputs: `IMAGE` graded HALD + `INT` level (validates `H == W == L³`) + `STRING` filename (relative to ComfyUI `output/` or absolute; `.cube` extension auto-appended) + `STRING` title (Adobe Cube `TITLE` header). Output: `STRING` absolute resolved path. `OUTPUT_NODE = True`. File body is N³ float lines blue-outer / green-middle / red-innermost, Unix LF separator, `%.6f` precision — readable by DaVinci Resolve / Premiere / OBS / OCIO / LUTCalc / CubeLUT / pillow-lut.
- **Sample workflow `S-14-lut-export.json`** — 3-node chain `N-12 HALD Identity(level=8) → N-09 Tone Curve(s_curve_mild) → N-13 LUT Export(filename="s14_demo.cube")` + Note block documenting the color-only-chain constraint between N-12 and N-13. JH smoke test in ComfyUI real produced a valid Adobe Cube 1.0 `.cube` file (~7 MB = 262144 body lines for level 8). The demo workflow JSON was extended by JH with a `ShowText|pysssss` node wired to `N-13.path` so the resolved output path is visible in the UI — pack's core nodes (`JHPixelProHALDIdentity` / `JHPixelProLUTExport`) remain zero-community-dep.
- **3 workflow screenshots** consolidated from the `[Unreleased]` buffer: S-08 Color Matcher (batch-3 follow-up) + S-09 Tone Curve (batch-3 follow-up) + S-14 LUT Export (batch-4 follow-up). README §N-08 + §N-09 + §N-12 + §N-13 now render reference images like §N-01..§N-07. Workflow JSONs for S-08 / S-09 were extended by JH with optional community-pack utility nodes (`ImageResize+` from `comfyui_essentials`, `NH_ImageCompare` from `nh-nodes`) for richer interactive demos — the pack's core nodes remain zero-community-dep.
### Known limitations
- **Level 12 intermediate VRAM**: `identity_hald(level=12)` produces a `(1, 1728, 1728, 3)` float32 tensor (~35.8 MB) before the color-grade chain runs; downstream operations may briefly 2–3× that footprint. JH's RTX 4090 (24 GB) has no issue; CPU runners with 8 GB+ RAM are fine; low-memory setups should stay at level ≤ 10.
- **GPU path NOT EVALUATED for N-12 / N-13**: `core/lut.py` is pure `torch.arange` + stdlib file I/O, so there is no CUDA/CPU parity math to validate. `identity_hald` trivially runs on any device; `export_cube` moves the tensor to CPU for the file write. No perf-critical path — functional correctness verified via 8 `tests/test_lut.py` AC pass (214 passed / 10 CUDA-skip at release).
- **N-13 is file-I/O bound, not compute-bound**: writing 262144 float triplets is dominated by `open()` + `write()` latency, not tensor math. No CPU/GPU bench applicable by design — no `bench_lut.py` shipped.
- **LUT export validates only 3-channel images**: `(B, H, W, 3)` input required. No alpha / no depth / no multi-channel LUT variant. Users needing ACES / LogC / HLG should bake the transform upstream of N-12. Documented in N-13 wrapper tooltip + README §N-13 Caveats.
### Dependencies
Unchanged from v0.5.0 — zero new dependency. `core/lut.py` is pure `torch.arange` + stdlib file I/O (§2b one-time single-agent exception ratified in T-20 pack precedent for trivial-math nodes with no Kornia / no bench-critical GPU parity). `kornia >= 0.7.0`, `mediapipe >= 0.10.0`, `opencv-python-headless >= 4.5`, plus core `torch` and `numpy` — all preserved from v0.5.0.
## [0.5.0] — 2026-04-19
+1 -1
View File
@@ -2,7 +2,7 @@
> GPU-powered pro-grade image suite for ComfyUI. Kornia at the core. Pure tensor, never leaves VRAM.
**Status:** 🎉 **v0.5.0** (2026-04-19) — 11 nodes live under unified `ComfyUI-JH-PixelPro/*` namespace. Batch-3 color-grade layer ships — `/color` subgroup consolidated (N-05 Luminosity + **N-08** Color Matcher (LAB) + **N-09** Tone Curve (RGB)) via Q-L4 retrofit (UI-only, workflow JSON unaffected). Face pipeline chain `LoadImage → S-07 Lens → S-10 FaceDetect → S-06 Aligner → [AI block] → S-11 Unwrap → Composite` from v0.4.0 remains production-ready. **M3 milestone closed.** See [CHANGELOG](./CHANGELOG.md) for details.
**Status:** 🎉 **v0.6.0** (2026-04-20) — 13 nodes live under unified `ComfyUI-JH-PixelPro/*` namespace. Batch-4 ships the LUT portability layer — new **N-12** HALD Identity generator + **N-13** LUT Export pair write valid Adobe Cube 1.0 `.cube` files for DaVinci Resolve / Premiere Pro / OBS Studio / OCIO pipelines. `/color` subgroup now 5 nodes (N-05 Luminosity + N-08 Color Matcher + N-09 Tone Curve + N-12 HALD Identity + N-13 LUT Export). **M4-head ships.** Face pipeline (v0.4.0) + color-grade trio (v0.5.0) + LUT round-trip (v0.6.0) all production-ready. See [CHANGELOG](./CHANGELOG.md) for details.
## Why this pack exists
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "comfyui-jh-pixelpro"
version = "0.5.0"
version = "0.6.0"
description = "GPU-powered pro-grade image suite for ComfyUI (Kornia core)."
readme = "README.md"
requires-python = ">=3.10"