14 Commits
Author SHA1 Message Date
l33chKing f3344769d2 Add Color Matching Ops node, new sharpen filters, and preview fixes
New ColorMatchingNode (Color Matching Ops): image + reference inputs, one
output. Methods LAB/RGB/Histogram (LAB default) and a target selector
(All/Lightness/Color) that keeps only the matched Oklab lightness or color.
Statistics-only, so inputs may be any size. Live in-node preview.

Filter Ops: add Laplacian Sharpen (4-/8-neighbor kernel) and Unsharp Masking
(Gaussian amount/radius/threshold), with matching JS live previews, widget
visibility, and tooltips.

Layer Blending: rename to Layer Blending Ops, drop the unused preview_ref
output, and make the live preview match the backend exactly (resize fg to bg
size, default opacity 255, per-mode clamp parity) - fixes big mismatches e.g.
Linear Dodge (Add) at high opacity.

Rename Color Matching node display to Color Matching Ops. Raise color-match
preview resolution to 1024 to tighten preview-vs-output stats.

Previews: use widget.last_y to stop the preview box overlapping the last
widget (all nodes, incl. Channel Ops); hide the preview box until a preview
exists; auto-size the node to a sensible preview area on first preview; keep
fresh Filter Ops compact instead of huge with empty space.

README: add per-node preview GIFs (channel_ops/Layer_blend/filter_ops/
color_match) and document the new node/effects; drop the old preview.gif
reference.
2026-07-03 13:34:58 +03:00
l33chKing 5ac3691fa4 update readme 2026-07-03 12:02:52 +03:00
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
l33chKing fb7c68f4ad add image blending node, update readme, tooltips, preview cleanup, and some other what I have forgotten.. ah eto bleh o" 2025-10-23 08:44:11 +03:00
l33chKing 72075e40d0 added rgb, hsv, oklab, to destinations 2025-10-23 04:29:57 +03:00
LeechKing d1901dcb3e Merge pull request #1 from ComfyNodePRs/pyproject
Add pyproject.toml for Custom Node Registry
2025-10-23 04:11:40 +03:00
LeechKing 97ddeb3cd4 Update PublisherId in pyproject.toml 2025-10-23 04:10:54 +03:00
LeechKing eca478afd6 Merge pull request #2 from ComfyNodePRs/publish
Add Github Action for Publishing to Comfy Registry
2025-10-23 04:00:28 +03:00
l33chKing 88e112cfc4 Added Overwrite from Image operation, that allows using secondary image as channel source 2025-10-23 03:11:29 +03:00
l33chKing 1221a96e6d Fix for wrong folder name that broke previews, and make live previews multi node compatible 2025-10-23 02:39:50 +03:00
async () = process.env.GIT_USERNAME || (await ghUser()).email && (await ghUser()).name || DIE("Missing env.GIT_USERNAME") 387a9784f8 chore(pyproject): Add pyproject.toml for Custom Node Registry 2025-10-22 22:56:34 +00:00
async () = process.env.GIT_USERNAME || (await ghUser()).email && (await ghUser()).name || DIE("Missing env.GIT_USERNAME") c966840341 chore(publish): Add Github Action for Publishing to Comfy Registry 2025-10-22 22:56:33 +00:00
l33chKing c06d0413b6 Initial commit: Channel Ops (live-preview) 2025-10-22 08:38:29 +03:00