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

ComfyUI Channel Ops (live-preview)

Four custom nodes for per-channel image manipulation, layer blending, image filters, and color matching — all with in-node live preview and optional MASK input.

Channel Ops

Channel Ops preview

Per-channel operations across RGB / HSV / Oklab. Destination only affects Overwrite ops. mask input restricts the effect to the masked region.

Operations Sources / Destinations
Invert · Set · Add · Subtract · Multiply · Divide Red · Green · Blue
Clamp Min · Clamp Max · Truncate · Contrast Red+Green · Red+Blue · Green+Blue
Overwrite · Overwrite from Image Hue · Saturation · Value · RGB · HSV · Oklab

Layer Blending Ops

Layer Blending Ops preview

Composites two images with a blend mode + opacity (0–255). Foreground bilinearly resized to background H×W; batches align to min(B); output clamped to [0, 1].

Blend modes
Normal · Multiply · Screen · Overlay
Soft Light · Hard Light · Darken · Lighten
Color Dodge · Color Burn · Linear Dodge (Add) · Linear Burn
Vivid Light · Linear Light · Pin Light · Hard Mix
Difference · Exclusion · Add · Subtract · Divide

Filter Ops

Filter Ops preview

Adaptive widget UI — only the controls relevant to the current effect are shown. effect + blend_mode always visible. mask input restricts the effect to the masked region. Custom widgets (color wheels, histogram, vignette center) mirror the underlying numeric values both ways.

Effect Key params
Blur blur_mode (Gaussian / Average / Edge Average), radius, source
Halftone shape (12 patterns), size, angle + angle wheel, contrast, brightness, inverse — Bayer-dithered
Color Filter hue, density, preserve_highlights + HSV color wheel
Sharpen amount (negative = soften), radius, threshold
Laplacian Sharpen amount, kernel (3×3 4-neighbor / 8-neighbor) — edge boost via the Laplacian operator
Unsharp Masking amount (multiplier), radius (Gaussian), threshold — classic unsharp mask
Pixelate size, mode (Pixelate / Mosaic adds grout lines)
Posterize levels, mode (RGB / Luminance), dither_mode (None / Bayer / Random / Floyd-Steinberg / Atkinson), dither strength
Vignette amount, size, feather, roundness + draggable center widget
Levels channel, in/out black/white, gamma + histogram widget with B/γ/W handles
Color Balance 3 color wheels (Shadows / Midtones / Highlights); hue = tint direction, distance = intensity

Color Matching Ops

Color Matching Ops preview

Recolors image so its color statistics match a reference image. Two image inputs, one image output. Inputs may be any size — matching is statistics-only, so no resizing is needed.

method What it does
LAB (default) Mean/std (Reinhard) transfer in the perceptual Oklab space
RGB Mean/std transfer applied directly per RGB channel
Histogram Per-channel cumulative-distribution (CDF) matching
target What it keeps (split in Oklab; rest comes from the original)
All (default) Full color match
Lightness Match the reference tonality, keep the original colors
Color Match the reference grade, keep the original tonality

License

MIT

S
Description
No description provided
Readme MIT
17 MiB
Languages
JavaScript 70.4%
Python 29.6%