Shibiko AI - Image Filters
One node that does most of your boring image fixes
- image
- image
Brightness, contrast, saturation, sharpness, blur, edge enhance, detail - this node stacks almost every one-click image fix you'll ever want into a single box. It's a fork of the WAS Node Suite's WAS_Image_Filters (the pack's CONTRIBUTORS file credits Jordan Thompson), stripped down and rebranded. If you've ever wished you didn't have to chain five separate filter nodes to make an image "pop," this is the shortcut.
The honest take: this is a convenience node, not a precision tool. It exists so you can grab a slider or two, not so you can do per-channel curve work. For the small stuff - lifting a flat render, cooling off a saturated image, softening a harsh edge - it's exactly the right amount of node.
How it works
The implementation is a fixed pipeline, and the order matters. Brightness and contrast are applied first in numpy (additive brightness, multiplicative contrast, both clamped to 0–1). Then the image becomes a PIL image and everything else runs as PIL filters in sequence: saturation and sharpness through ImageEnhance, then the blur/sharpen/smooth family, then Gaussian blur, then edge enhance, then detail. Every image in a batch goes through the same chain and comes out stacked, so it plays fine in batch workflows.
The inputs that matter
There are eleven inputs and most of them sit at neutral defaults. The ones you'll actually touch:
- brightness (-1 to 1) and contrast (-1 to 2) - the workhorses. Contrast 1 is neutral.
- saturation (0 to 5) - 1 is neutral; below 1 desaturates, above 1 gets candy-colored fast.
- gaussian_blur (0 to 1024) - a radius in pixels, the smoothest of the blurs and the one worth using for feathering.
- edge_enhance (0 to 1) - this one's a blend, not a filter: at 1.0 it's full
EDGE_ENHANCE_MORE, at lower values it composites between original and enhanced by that amount. - detail_enhance (
false/true) - a simple toggle that applies PIL'sDETAILfilter.
The integer blur, sharpen, smooth, and smooth_more inputs are repeat counts - each unit runs the filter once more, which is a cheap way to dial in intensity but can get slow if you crank them.
Output is a single image, ready for anything downstream.
Install
Part of the Shibiko AI ComfyUI Tools pack, so install is standard:
cd ComfyUI/custom_nodes
git clone https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools
Or use ComfyUI Manager and search for "Shibiko", then restart. No extra model downloads - this is pure PIL and numpy, CPU and instant.
Gotchas
The filter order is fixed; you can't reorder the stages, so if you want contrast after a blur you'll need two nodes. And edge_enhance at anything above 0 can ring around hard edges on compressed sources - keep it low unless the image is clean. Otherwise it's about as boring and reliable as a node gets.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| brightness | FLOAT | 0.00-1–1 | — |
| contrast | FLOAT | 1.00-1–2 | — |
| saturation | FLOAT | 1.000–5 | — |
| sharpness | FLOAT | 1.00-5–5 | — |
| blur | INT | 00–16 | — |
| sharpen | INT | 00–16 | — |
| smooth | INT | 00–16 | — |
| smooth_more | INT | 00–16 | — |
| gaussian_blur | FLOAT | 0.00–1024 | — |
| edge_enhance | FLOAT | 0.000–1 | — |
| detail_enhance | COMBO | 2 options: false, true |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |