4 Commits
Author SHA1 Message Date
Jet Huang 4ec5285efd feat(filters): Frequency Recombine node to rebuild low + high layers 2026-10-18 01:00:02 +07:00
Jet Huang 50383c4a4a test(category): align wrapper test CATEGORY assertions with Q-NS retrofit
Follow-up to f007db4: 3 wrapper tests (test_frequency_node /
test_mask_refiner_node / test_smoother_node) still asserted the pre-Q-NS
CATEGORY strings and failed against the new namespace. Update assertions
to match ComfyUI-JH-PixelPro/* so pytest stays zero-regression.

Note: tag v0.3.0 already points at 8bec209 (pre-fix). Fix is cosmetic
test-only and does not affect pack runtime behavior. Re-tag decision
deferred to Cowork review.
2026-04-19 00:23:13 +07:00
Jet Huang 0f048f075f chore: pre-v0.2 cleanup (EN docs + strip Kornia suffix from display names)
Translate all user-facing docs and source comments to English idiomatic
(README, workflows/README, CHANGELOG [0.1.0] section, SETUP, workflow JSON
Note nodes, module docstrings, gitignore/requirements comments, conftest).
Replace 4-line Contributors block with 2-line neutral (JH maintainer + AI
pair-programming assistance).

Strip "(Kornia)" suffix from the 2 display names in __init__.py. Class name
JHPixelPro* and category image/pixelpro/* unchanged (non-breaking with
v0.1.0 workflows). Update 2 pytest assertions to match.

Add "# noqa: N999" to core/__init__.py + tests/__init__.py (hyphenated pack
dir convention, already applied to root __init__.py + nodes/__init__.py).

pytest: 65 passed, 2 skipped (CUDA unavailable on runner).
ruff: clean.
2026-04-18 13:55:54 +07:00
Jet Huang ba728ce27b feat: wrap frequency_separation as ComfyUI node JHPixelProFrequencySeparation
Register class in NODE_CLASS_MAPPINGS with display name
"GPU Frequency Separation (Kornia)" (category image/pixelpro/filters).
Handles BHWC <-> BCHW conversion at the integration boundary, wraps core
call in torch.no_grad(), preserves device and dtype. Tooltip warns that
the high-pin may contain negative values and should be recombined via
ImageAdd rather than previewed directly.

Integration tests load the pack the same way ComfyUI does (spec_from_
file_location) so no ComfyUI runtime is required — covers INPUT_TYPES
schema, reconstruction invariant on BHWC, reject-invalid-input, dtype/
device preservation (11 tests pass).

Pack __init__.py guards the submodule import with `if __package__:` so
pytest collection can still walk the hyphenated-dir parent without
crashing. pyproject adds `--import-mode=importlib` for robustness.
2026-04-17 23:47:48 +07:00