Nuke Blur
Nuke-style Gaussian blur with separate X/Y control
- image
- mask
- IMAGE
Every workflow eventually hits the moment where something is too crisp. Skin is a bit plastic, edges are crunchy, a background texture is screaming for attention. NukeBlur is the ComfyUI-friendly version of the blur node every Nuke compositor keeps in their back pocket - a proper Gaussian blur with one thing most ComfyUI blur nodes skip: independent horizontal and vertical size.
That separate X/Y control is the whole point. Blur in one axis only and you get directional smear that reads as motion or as a glossy light streak across a surface. Blur both and you've got a clean, even softener. Nuke people do this without thinking; if you've only used a single-size blur before, this is the upgrade.
How it works
It's implemented as a separable convolution with a Gaussian kernel - horizontal pass, then vertical pass - using PyTorch's conv2d, so it's fast and it runs on your GPU. The kernel sigma is derived from the size you set, and reflect padding keeps the edges from going dark. For non-Gaussian work there are also box, triangle, and quadratic filter options, though Gaussian is what you'll use 95% of the time. quality (low / medium / high) trades kernel size against speed; medium is a fine default.
The inputs that matter
size_x/size_y- blur radius in each axis, 0 to 100. Set one to 0 and you get a pure directional smear.filter- gaussian, box, triangle, quadratic.quality- low / medium / high.mix- how much blur to apply, 0 to 1. Blend the blurred result back into the original for a subtle soften instead of full blur.mask- optionalIMAGEmask, so the blur only lands where you want it. This is how you blur a background while leaving a foreground subject untouched.
The output is a single IMAGE at the same resolution as the input, ready to feed into a merge, a save node, or the next step in the chain.
Two notes from reading the source. The crop toggle is present in the UI but doesn't actually change the output yet - it's accepted by the function and ignored, so treat it as a placeholder knob rather than a control you should rely on. And the blur only ever applies to the RGB channels; alpha passes through untouched, which is usually exactly what you want when you're softening content that still needs to comp over something.
Installing it
NukeBlur is part of the Nuke Nodes pack for ComfyUI:
cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt
Or search "Nuke Nodes" in ComfyUI Manager and restart. It shows up under the Nuke category. Blur nodes are pure PyTorch - the OpenImageIO dependency in requirements.txt is for the pack's Read/Write nodes, so you don't need it to make this one run.
Common issues
- Blur looks like smearing instead of softening - check that
size_xandsize_yare both above zero. If one is 0, you've built a directional blur and it will look like motion. - Nothing appears to change -
mixdefaults to 1, but if you (or a loaded workflow) dialed it down, the effect vanishes smoothly. Crank it back up. - Edges get dark or the frame edge shows a seam - the reflect padding keeps this rare; if you see it, lower
sizerelative to your resolution. - The mask isn't doing anything - it expects an
IMAGE, not aMASK. Convert if you're coming from a mask-producing node.
For skin smoothing, background separation, or just killing harsh digital edges, this is the node to reach for - and the independent X/Y is what makes it worth keeping over the built-in alternatives.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| size_x | FLOAT | 1.00–100 | — |
| size_y | FLOAT | 1.00–100 | — |
| filter | COMBO | gaussian | 4 options: gaussian, box, triangle, quadratic |
| quality | COMBO | medium | 3 options: low, medium, high |
| crop | BOOLEAN | true | — |
| mix | FLOAT | 1.000–1 | — |
| maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |