ImageFilterStackBlur
Gaussian-looking blur that doesn't care how big the radius is
- images
- IMAGE
Gaussian blur has a dirty secret: cost scales with radius. Blur something by 5 pixels and it's cheap; blur by 50 and the kernel is huge and slow. Allor's ImageFilterStackBlur sidesteps that entirely with OpenCV's stackBlur, which produces a gaussian-ish blur in constant time no matter how big you set the radius. If you need a heavy, soft blur - background softening, glow effects, depth-of-field fake-outs, masking pre-blur - this is the fast, good-looking option in the pack.
It's part of the Allor Plugin (Nourepide/ComfyUI-Allor), the image-processing pack that preserves RGBA and batches across all its nodes. StackBlur sits in the filter family alongside Min, Mode and the rest, and it's the one you'll actually reach for when "I want it soft, not speckle-cleaned."
How it works
Behind the scenes it's cv2.stackBlur(x, (size_x - 1, size_y - 1)) run per image through the pack's cv2_layer helper, which is careful enough to blur the alpha channel separately so RGBA images keep a sane edge. The node's size_x/size_y inputs (both default 10, min 1, step 2) are decremented by one to make odd kernels. Since step is 2, the effective kernel stays odd automatically.
The "stack" in stack blur refers to the algorithm, which reuses the horizontal pass to compute the vertical one and then blends the two - that's why the cost is nearly flat regardless of radius. The result is visually close to a gaussian, with a slightly more uniform falloff, and it's dramatically faster at large radii than a true gaussian would be. So unlike the pack's plain GaussianBlur nodes, there's no practical penalty for dialing size_x up to 40 or 80. That's what makes it the right tool for aggressive softening.
Inputs and outputs
images(IMAGE) - one image or a batch; every frame gets blurred.size_x(INT, default 10, step 2) - horizontal blur amount.size_y(INT, default 10, step 2) - vertical blur amount. Set it lower thansize_xfor a directional, motion-ish smear.
Output is an IMAGE at the same resolution with the same channels - alpha preserved, thanks to the channel-aware helper. Wire it into a composite, a depth-based blur workflow, or just a preview.
Installing it
It's in the Allor Plugin, so: ComfyUI Manager → search "Allor Plugin" → install → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Nourepide/ComfyUI-Allor
Then restart. This node pulls in OpenCV (bundled with ComfyUI already) and needs no model files. First launch writes a config.json with daily auto-update enabled - fine to leave, but you can turn it off or set a manual update frequency there.
Where people get burned
The one real trap is the size_x/size_y asymmetry. They're independent, so it's easy to blur one axis to 40 and leave the other at 10 and get a weird directional streak you didn't ask for - which is also the trick if you did want a motion-blur look. Also remember stack blur, unlike the min/max/rank filters, doesn't remove noise so much as bury it; if your image has speckles you're trying to eliminate, you want Mode or Rank first, blur second. Otherwise, for plain soft-focus work this is the node to grab.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| size_x | INT | 10 | — |
| size_y | INT | 10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |