Blur Image (Fast)
The blur node you actually want over ComfyUI's built-in one
- images
- IMAGE
There's a good chance you've hit a wall with ComfyUI's built-in image blur - it's slow, and it caps out at a radius that's fine for a subtle softening but useless for a real background blur or a big low-pass pass. Blur Image (Fast) is the fix: it's just OpenCV's gaussian blur under the hood, and per the author it's over 100x faster than the stock node, with a much larger usable radius and independent x/y control.
There's no clever trick here - it's a straightforward, well-optimized gaussian blur. The reason it's worth a dedicated node instead of reaching for the default is purely speed and range: same math, no reason to pay the tax of ComfyUI's slower implementation.
What you set
images(IMAGE) - required, the batch to blur.radius_x(default 1, 0–1023) andradius_y(default 1, 0–1023) - the blur radius on each axis, independently. Set them equal for a normal symmetric blur; make one much bigger than the other for directional blur (motion-blur-style streaking, or blurring only vertically to hide banding without softening horizontal detail).
Output is one IMAGE - the blurred result, same dimensions as input.
That the radii are separate is the one thing worth internalizing: most of the time you'll set radius_x and radius_y to the same value, but the moment you want an anisotropic effect (blur that's stronger in one direction), this node gives you that for free where the stock blur node doesn't.
Where you'd actually reach for it
Background blur behind a subject, the low-frequency layer in a frequency-separation workflow (blur heavily, subtract to get detail, recombine later), softening a mask before compositing, or just knocking the edge off a noisy upscale. It's a utility node - you'll use it constantly and never think about it much once it's in your graph.
How to install it
ComfyUI Manager: search "ComfyUI-Image-Filters", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/spacepxl/ComfyUI-Image-Filters
then restart ComfyUI. The pack's dependency is OpenCV - opencv-contrib-python covers everything it needs. If cv2 throws an import error on startup, it's almost always because another custom node pack pulled in a conflicting opencv variant, not this pack itself being broken. The author ships install.bat and import_error_install.bat on Windows specifically for that; on Linux, uninstall the stray opencv packages and reinstall opencv-contrib-python alone. No model downloads, no meaningful VRAM cost - this runs on CPU-bound OpenCV code, not the GPU.
Common issues & troubleshooting
Blur looks identical at radius 50 and radius 500. Gaussian blur has diminishing visible returns past a certain radius relative to your image resolution - if you've already blurred everything into a soft blob, doubling the radius won't visibly change much more. Work at the resolution you're actually compositing at, not a huge canvas, if you want to feel the radius changes.
You want directional streaking, not a symmetric blur. That's exactly what separate radius_x/radius_y are for - set one high and the other near zero.
Performance is still a bottleneck on very large batches. This is much faster than the stock node, but a large radius on a big batch is still real compute - if it's the bottleneck in your graph, blur at a lower resolution and upscale back, which is usually indistinguishable for a background-blur use case.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| radius_x | INT | 10–1023 | — |
| radius_y | INT | 10–1023 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |