HT Photoshop Blur
Seven blur filters, one node, no image editor required
- image
- blurred_image
Blur is the most underrated post-process in image work. It's depth of field, it's motion, it's the soft background that makes a sharp subject pop. ComfyUI has a couple of built-in blurs, but they're basic. HT Photoshop Blur is the pack's attempt to bring the whole Photoshop blur menu into the graph: seven different algorithms, each with the parameters that make them behave like the real thing.
The blur menu
blur_type picks the algorithm, and radius (1–100) is the one setting every type shares:
average- the simple box blur. Flat, cheap, for when you just want things soft.gaussian(default) - the workhorse.sigma(0.1–10) shapes the falloff; leave sigma near 1 unless you have a reason.motion- directional blur alongangle(0–360). This is your speed/movement effect, and the angle is the thing people forget to set.radial/zoom- blur that radiates outward, for focus or speed effects like a zoom lens. Same kernel family, slightly different shaping.lens- simulated bokeh, and the one that actually earns the "Photoshop" name.blade_count(3–12) sets how many sides the bokeh aperture has - 5 is classic round-ish bokeh, higher counts get more hexagonal.blade_rotation(0–360) rotates those blades. If you want creamy background highlights in a generated image, this is the filter.smart- edge-preserving blur.threshold(0–255) decides what counts as an edge: low threshold blurs almost everything, high threshold protects more detail. This is the one for skin smoothing and noise cleanup that doesn't smear the whole image.
Output is blurred_image, same size as the input, ready for a preview or the next stage.
How it works
It's honest convolution math. The source builds the appropriate kernel for each type - a 2D Gaussian for gaussian, a line kernel rotated by angle for motion, a radial/zoom kernel for those two, a blade-shaped aperture for lens - and applies it with F.conv2d in BHWC. Because it's PyTorch, a batch of images blurs in one call and it runs on GPU. No numpy round-trips, no format conversions.
When you'd reach for it
- Depth-of-field simulation: render sharp, then
lensblur the background region (mask it first - the blur is global). - Motion feel:
motionblur with an angle matching your scene's action. - A/B presentation: a
gaussianblur on a duplicate branch of your workflow, compared against the sharp version with a compare node. - Pre-denoise softening for a later pass.
Installing
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/ArtHommage/HommageTools.git
cd HommageTools && pip install -r requirements.txt
restart, or Manager → "HommageTools for ComfyUI". No models, no extra dependencies beyond torch/Pillow which the pack already needs.
The honest take
It's a genuinely nice filter collection - the lens and smart entries alone are worth having, since ComfyUI's stock blurs don't cover them. The catch, as with most of this pack: alpha status means kernel details can shift between versions, so don't hard-pin an exact aesthetic to specific parameter values without re-testing after updates. And remember all seven are global - for a blurred background behind a sharp subject you still need a mask in front of this node.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| blur_type | COMBO | gaussian | 7 options: average, gaussian, motion, radial, zoom, lens, +1 |
| radius | INT | 51–100 | — |
| sigmaopt | FLOAT | 1.00.1–10 | — |
| angleopt | FLOAT | 00–360 | — |
| blade_countopt | INT | 53–12 | — |
| blade_rotationopt | FLOAT | 00–360 | — |
| thresholdopt | FLOAT | 15.00–255 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| blurred_image | IMAGE | — |