⭐ Star HighPass Filters
Star HighPass Filters — cheap detail pop for upscaled and soft images
- image
- image
High-pass sharpening is one of the oldest tricks in digital imaging, and it's perfect for one very common AI-art situation: your image came out slightly soft, and you want to pop the fine detail back without ruining it with an aggressive unsharp mask that halos everything. Star HighPass Filters (class name StarSpecialFilters, don't ask) is a clean, dependency-free implementation that does exactly one thing and does it well.
How it works
The mechanism is textbook: it blurs a copy of your image with a Gaussian kernel, subtracts that blur from the original to isolate the high-frequency detail (edges, texture, grain - everything the blur removed), then adds a multiple of that detail back on top of the original. out = original + strength * (original - blur). Since the "detail" layer is just the difference between the image and its own blur, the result is sharper edges without the color shifts or heavy artifacts a naive sharpen can introduce.
Two knobs, both honest:
radius(1–64, default 3) - how wide the Gaussian blur is, which sets how "fine" the detail you amplify is. Small radius = very fine detail; larger radius catches medium-frequency texture. Radius 3 is a good everyday value; if you're trying to rescue a soft whole image rather than just edge detail, nudge it up.strength(0–5, default 1) - how hard the detail gets pushed. 1 is a polite sharpen. Push toward 3+ and you're in stylized, crunchy territory, which some people actually want for texture work.
The kernel is computed on-device as a Gaussian from the radius (sigma ≈ radius/2), and the output is clamped to 0–1, so you can't blow an image out to pure white with a careless setting - it'll just get crunchy.
Where it fits
This is the node I reach for at the end of an upscaling or refinement chain, right before the save node - after a model upscale has added real resolution but left the image looking a touch plastic, a light high-pass pass re-introduces the edge snap that makes it read as a photograph again. It also pairs well with the pack's own SD Upscale Refiner Advanced: run that, then a touch of high-pass at strength 0.5–1 to finish. If your source is already sharp and you just want more pixels, you don't need this - but if it's soft, this is cheaper and safer than a second generative pass.
Inputs and outputs
image in, image out. No reference image, no masking, no modes - pure torch ops, no OpenCV dependency, which means it runs on anything.
Installing
It's part of StarNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt
Restart, search star under ⭐StarNodes/Image And Latent. ComfyUI Manager users can just search "Starnodes" and install the pack.
Gotchas
The one trap is overdoing it. At strength 1–1.5 on a 1024 image this looks great; at 4–5 you'll get edge halos and that oversharpened "AI upscale gone wrong" look. If the image is genuinely damaged or heavily compressed, no high-pass pass will save it - that's a job for a real restoration upscaler like SeedVR2, not a sharpen. And keep an eye on batch size: it processes whole batches in one go, which is fast on GPU but a large batch at a high radius adds up.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| radius | INT | 31–64 | — |
| strength | FLOAT | 1.000–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |