release: v0.3.0 — 6 nodes live (batch-1 N-04 HFDM + N-05 Lum + N-06 Aligner + Q-NS retrofit)

Batch-1 face-retouch trio ships. Pack now 6 nodes under unified
ComfyUI-JH-PixelPro/* namespace. Integration-pass validated. Screenshots live.

See CHANGELOG [0.3.0] for details.
This commit is contained in:
Jet Huang
2026-04-19 00:20:16 +07:00
parent 937dfac853
commit 8bec209237
3 changed files with 31 additions and 3 deletions
+29 -1
View File
@@ -6,6 +6,33 @@ All notable changes to this pack are recorded here. Format follows [Keep a Chang
(nothing yet)
## [0.3.0] — 2026-04-19
Batch-1 face-retouch trio ships (N-04 + N-05 + N-06) and the 3 pre-existing nodes are retrofit under the pack-branded namespace so all 6 live nodes appear under a single category in the ComfyUI Add Node menu.
### Added
- **N-04 `JHPixelProHighFreqDetailMasker`** (`ComfyUI-JH-PixelPro/mask`): high-frequency detail mask generator for texture protection during AI passes. Inputs: `IMAGE` + `kernel_type` (`laplacian` / `sobel` / `fs_gaussian`, default `laplacian`) + `sensitivity` (0..1, default 0.5) + `threshold_mode` (`relative_percentile` / `absolute`, default `relative_percentile`) + optional `MASK` pre-gate. Output: a binary `MASK` (BHW float32). Feeds `SetLatentNoiseMask` / `MaskCompose` / `ImageBlend` to keep hair, eyebrows, fabric weave and pore texture intact through inpaint / denoise / style-transfer.
- **N-05 `JHPixelProLuminosityMasking`** (`ComfyUI-JH-PixelPro/filters`): Photoshop-style luminosity masks with partition-of-unity guarantee (`shadows + midtones + highlights ≈ 1.0` per pixel). Inputs: `IMAGE` + `luminance_source` (`lab_l` / `ycbcr_y` / `hsv_v`, default `lab_l`) + `shadow_end` (0..0.5, default 0.33) + `highlight_start` (0.5..1.0, default 0.67) + `soft_edge` (0.01..0.3, default 0.1). Outputs: 3 `MASK` (`mask_shadows`, `mask_midtones`, `mask_highlights`). Band-limited grading, denoise, dodge/burn.
- **N-06 `JHPixelProFacialAligner`** (`ComfyUI-JH-PixelPro/geometry`): landmark-based face alignment to an FFHQ-like canonical frame (eyes @ Y=0.40, nose @ Y=0.55, mouth @ Y=0.70) via a similarity transform (rotation + uniform scale + translation). Inputs: `IMAGE` + `landmarks` STRING 5-point JSON + `target_size` (512 / 768 / 1024, default 1024) + `padding` (0..0.5, default 0.2). Outputs: `IMAGE` aligned + `STRING` JSON-serialized `B × 3 × 3` inverse matrix for unwrap. Pre-processing step for SDXL face refine / InstantID / IPAdapter FaceID pipelines.
- 3 sample workflows (`S-04-hf-detail-masker.json` / `S-05-luminosity-masking.json` / `S-06-facial-aligner.json`) + inline screenshots (JH manual smoke test verify).
### Changed
- **Q-NS** — the 3 pre-existing nodes (N-01 FS, N-02 MR, N-03 ES) retrofit category from `image/pixelpro/*` to `ComfyUI-JH-PixelPro/*`, unifying the 6-node pack under a single pack-branded namespace in the ComfyUI Add Node menu. Category UI-only change — existing workflow JSON links are **not** affected because ComfyUI references nodes by class name, not by category path. Saved workflows from v0.1 / v0.2 continue to load and run unchanged.
### Known limitations
- **CUDA benchmarks not evaluated** for N-04 / N-05 / N-06 (batch-1 was benchmarked on a CPU-only runner). JH GPU follow-up is non-blocking — the integration path is validated end-to-end on CPU with a 2K synthetic tensor.
- **N-05 `lab_l` perceptual cost**: ~172 ms @ 2K CPU (miss the < 80 ms stretch target). Users who need realtime preview on CPU should switch to `ycbcr_y` (~7 ms @ 1024 CPU) at the cost of a slightly less perceptual luminance split. `lab_l` is kept as the default because it matches the Photoshop convention.
- **N-06 is a standalone pre-processor**: it does not auto-detect landmarks. For production, feed landmarks from an upstream face-detector (community `ComfyUI_FaceAnalysis`, or the forthcoming batch-2 **N-10 `JHPixelProFaceDetect`** + **N-11 `JHPixelProUnwrapFace`** which will close the chain internally).
- **Roundtrip bilinear smoothing** (N-06): align + unwrap puts the image through two bilinear resamples, which softens the result by ~34/255 in uint8 — fine for a single retouch pass, not near-lossless.
### Dependencies
- `kornia >= 0.7.0` (unchanged from v0.2; verified on 0.8.1 CPU + CUDA).
- Python `>= 3.10` (unchanged).
## [0.2.0] — 2026-04-18
Third retouch node lands + v1.1 UX hotfix after JH feedback from v0.1.0 usage.
@@ -61,6 +88,7 @@ First public alpha. Two MVP nodes for professional portrait retouching on GPU, w
- **JH** ([@jetthuangai](https://github.com/jetthuangai)) — maintainer & product owner.
- Built with AI pair-programming assistance.
[Unreleased]: https://github.com/jetthuangai/ComfyUI-JH-PixelPro/compare/v0.2.0...HEAD
[Unreleased]: https://github.com/jetthuangai/ComfyUI-JH-PixelPro/compare/v0.3.0...HEAD
[0.3.0]: https://github.com/jetthuangai/ComfyUI-JH-PixelPro/releases/tag/v0.3.0
[0.2.0]: https://github.com/jetthuangai/ComfyUI-JH-PixelPro/releases/tag/v0.2.0
[0.1.0]: https://github.com/jetthuangai/ComfyUI-JH-PixelPro/releases/tag/v0.1.0
+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.2.0** (2026-04-18) — 3 nodes live: `JHPixelProFrequencySeparation` + `JHPixelProSubPixelMaskRefiner` + `JHPixelProEdgeAwareSmoother`. See [CHANGELOG](./CHANGELOG.md) for details. Phase 1 has 6 more nodes queued (N-04..N-09) — batch mode plan post-v0.2.
**Status:** 🎉 **v0.3.0** (2026-04-19) — 6 nodes live under unified `ComfyUI-JH-PixelPro/*` namespace. Batch-1 validated end-to-end (core + wrapper + workflow + integration-pass). Batch-2 face pipeline queued: **N-07** Lens Distortion + **N-10** `JHPixelProFaceDetect` + **N-11** `JHPixelProUnwrapFace` (close the face chain internally). 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.2.0"
version = "0.3.0"
description = "GPU-powered pro-grade image suite for ComfyUI (Kornia core)."
readme = "README.md"
requires-python = ">=3.10"