Nodes/ComfyUI_StarNodes/⭐ Star HighPass Overlay
ComfyUI Node

⭐ Star HighPass Overlay

The Photoshop high-pass trick in one node (halve that radius)

By Starnodes2024·Created 2 years ago·Updated a day ago· 107
⭐ Star HighPass Overlay
  • image
  • image
◄radius10►
◄strength1.00►

If you've sharpened anything in Photoshop you've probably done high-pass sharpening: duplicate the layer, run High Pass on the copy, set that layer to Overlay, back the opacity off until it stops looking crunchy. ⭐ Star HighPass Overlay is that recipe, minus the app switch and the file shuffling.

It's the nicest sharpening in the toolbox because of one property: Overlay blending against 50% grey is a no-op. Flat areas sit right at neutral, so skin, sky and out-of-focus background come through untouched while edges and texture get their local contrast lifted. That feels different from an unsharp mask, which adds detail back additively and clips highlights when you push it.

Where it belongs in a workflow

This is the deterministic pixel-op layer - what you do to a finished frame that isn't upscaling and isn't a generative re-pass. No sampler, no model, no seed. That makes it the last honest move before you save: your upscaler invented the pixels, and this puts the bite back into a result that came out of a VAE decode looking slightly soft.

It stacks fine, but order matters. Grain goes after sharpening - sharpening amplifies noise, so if you're adding film grain for realism, do that last.

How it works

The source is short and unambiguous, which is nice for a filter node:

  • The image goes from NHWC to NCHW. A 4-channel input is truncated to RGB - the alpha channel is dropped.
  • A Gaussian kernel is built at sigma = radius / 2, sized 2 × radius + 1 per side, and applied per-channel with reflect padding (no dark border creeping in at the edges).
  • The residual is placed on neutral grey: highpass = image - blur + 0.5.
  • That layer is blended back in Overlay mode using the standard formula - 2·a·b below mid-grey, 1 - 2·(1-a)·(1-b) above it.
  • Finally it's flattened against the original as a linear blend: out = image + (overlay - image) × strength.

So strength really is the Photoshop opacity slider and radius is the High Pass dialog's radius. No hidden third knob.

Inputs and output

  • image - RGB or RGBA in. RGBA comes back as RGB.
  • radius (1–250, default 10) - which scale of structure counts as "detail". Low values (2–6) sharpen fine texture; higher values lift broader local contrast and read more like a clarity/punch adjustment. The author's own tooltip compares it directly to the Photoshop radius.
  • strength (0.0–1.0, default 1.0) - how much of the effect lands. 0.0 hands you the input back, 1.0 is the full overlay layer.

The output is a single image (IMAGE), always RGB - to a preview, a save node, or another filter.

One number worth knowing: because sigma is derived as radius / 2, the dial is roughly half whatever Photoshop would call the same radius. Copying a look you built there means starting around double.

Settings that actually work

Radius 3–6 at strength 0.3–0.6 is the everyday sweet spot for a 1–2MP image. Radius 8–15 at similar strength is the "broader local contrast" setting for large upscales. Full strength 1.0 with a big radius is where halos show up - bright rims, the classic over-sharpened tell. If you see them, cut strength before radius - radius controls what gets boosted, strength controls how hard.

Install

Via ComfyUI Manager - search Starnodes - or:

cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt

Restart, then search highpass (it's in ⭐StarNodes / Image And Latent). This node is pure PyTorch - no OpenCV, no extra packages - but the pack's requirements file installs dependencies for its other nodes.

Gotchas

Alpha is gone. RGBA in, flattened RGB out. If alpha carries something a later node needs, run this before that step.

The kernel cost is quadratic in radius. At the default 10 the kernel is 21×21. At 250 it's 501×501 per channel on every pixel. Small radii are free; huge ones are not.

It assumes normal 0–1 image values. The whole trick depends on 0.5 meaning neutral grey and the result being clamped to 0–1, so don't run it on linear/HDR float data - the offset and clamp will crush it.

Pack-level caveat. StarNodes is a big multi-purpose pack, and installing it also installs packages for its PSD, palette, video and Ollama nodes. Nothing here needs them; if you curate a minimal install, that's the trade.

If you want a plainer high-pass with a wider strength range, the pack also ships ⭐ Star HighPass Filters - same family, less faithful to the Photoshop recipe.

Category⭐StarNodes/Image And Latent

Inputs (3)

NameTypeDefaultDescription
imageIMAGE—
radiusINT101–250High pass radius - controls the detail scale that gets boosted (like the Photoshop radius).
strengthFLOAT1.000–1Opacity of the high pass overlay layer, like the Photoshop layer percentage.

Outputs (1)

NameTypeDescription
imageIMAGE—