2 Commits
Author SHA1 Message Date
l33chKing 89e7920119 Add Color Matching node; Laplacian Sharpen & Unsharp Masking effects
- New ColorMatchingNode: two image inputs, one output, LAB/RGB/Histogram
  methods (LAB default). Live in-node preview recomputes in JS on method
  switch, mirroring the Layer Blending preview pattern.
- Filter Ops: add "Laplacian Sharpen" (4-/8-neighbor kernel) and
  "Unsharp Masking" (Gaussian amount/radius/threshold) effects, with
  matching JS live-preview implementations, widget visibility, tooltips.
- Update README (now four nodes) and node registration.
2026-07-03 11:59:29 +03:00
l33chKing 5e857c1d8c Add Filter Ops node, MASK input, Channel Ops combo sources
New "Filter Ops (live-preview)" node — image_effects.py + image_effects_preview.js.
Adaptive widget UI: only the controls for the current effect are shown.
Effect set:
  - Blur (Gaussian / Average / Edge Average) with R/G/B/H/S/V/RGB/HSV/Oklab
    source channel selection, hue blurred on the unit circle.
  - Halftone with 12 shapes, screen-function + Bayer dithering, angle wheel.
  - Color Filter with HSV color wheel (hue + density), preserve-highlights.
  - Sharpen (unsharp mask, negative amount = soften).
  - Pixelate / Mosaic.
  - Posterize with 5 dither modes (None / Bayer / Random / Floyd-Steinberg /
    Atkinson), RGB or Luminance space.
  - Vignette with draggable center widget.
  - Levels with histogram + draggable B/gamma/W handles.
  - Color Balance with 3 color wheels (shadows / midtones / highlights).
Custom canvas widgets (color wheels, histogram, vignette center) mirror
the underlying numeric values both ways. effect + blend_mode pinned at the
top with a separator; values for hidden widgets are preserved across
effect switches. Live preview uses requestIdleCallback so the slider stays
smooth on heavy effects.

MASK input added to both nodes — restricts the effect to the masked region
with auto-resize / batch broadcast.

Channel Ops:
  - Added Red+Green / Red+Blue / Green+Blue to Source AND Destination.
  - Updated channel_ops_preview.js to mirror.

Misc:
  - Fixed inverted hue formula in the JS preview's rgb_to_hsv.
  - Widget labels show with spaces instead of underscores.
  - README rewritten — compact, single page.
2026-05-25 19:04:37 +03:00