Image Gaussian Blur
When to blur and why it helps
- image
- image
Image Gaussian Blur (imageGaussianBlur) from the zsq_prompt pack blurs an image with a gaussian kernel and lets you preview or save it right from the node. Simple on its face - but blur is one of those tools you don't think you need until you're fighting a ControlNet that's clinging too hard to noise, or a mask edge that's as jagged as a saw blade.
How it works
You feed in an image and a radius (0 to 10, slider). The node runs PIL's GaussianBlur on each frame of the batch and returns the blurred IMAGE. That's it - no AI, no model, just a classic kernel operation, instant on GPU or CPU.
The genuinely useful part is the image_output dropdown: Hide, Preview, Save, or Hide/Save. This is an output node, so it can terminate a branch itself. Pick Preview to glance at the result, Save to write it to disk with your save_prefix, or Hide if you just want the image output wired somewhere else without a preview popping up every run.
Inputs and outputs that matter
- image - the IMAGE to blur.
- radius - blur strength. 0 does nothing; 1–3 is gentle softening; 5+ is heavy. For a "background defocus" look you'll live in the 2–6 range.
- image_output - Hide / Preview / Save / Hide/Save.
- save_prefix - the filename prefix used when saving (default
ComfyUI). - Output: image - the blurred tensor.
Where it actually earns its keep
- Softening ControlNet conditions. If a canny or depth pass is picking up more noise than structure, a light blur on the condition image makes the model follow the big shapes instead of the grain. This is a legit ControlNet trick, not a hack.
- Feathering masks and edges. Blur a mask before using it and you get a soft transition instead of a hard cutoff - the difference between "faceswapped with a sticker" and "plausibly blended."
- Defocus / depth-of-field vibes. Blur the background, keep the subject sharp, composite. Cheap bokeh-adjacent effect for portraits.
- De-noising a reference before img2img, so you regenerate a smoother base rather than amplifying noise.
Installing zsq_prompt
Shared pack install. ComfyUI Manager → search zsq_prompt → install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/windfancy/zsq_prompt
Restart ComfyUI. Expect a heavy shared dependency install (transformers, opencv-python, opencv-contrib-python, scikit-image, timm, onnx, ultralytics) - overkill for a blur node, but it's one requirements.txt for the whole pack. If Manager flags "conflicting with zsq_prompt" on a downloaded workflow, that's dependency-overlap noise; only meaningful once the pack is actually installed. No model files needed.
Gotchas
Hidestill returns the image (so downstream nodes work); it just doesn't show a preview.Hide/Savehides the preview and writes the file.- Radius is per-image, applied to every frame in the batch - no per-frame blur here.
- If you blur before upscaling, you're softening detail you'll have to invent back later. Blur for conditions and masks, not for final outputs.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| radius | FLOAT | 1.000–10 | — |
| image_output | COMBO | Preview | 4 options: Hide, Preview, Save, Hide/Save |
| save_prefix | STRING | ComfyUI | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |