ComfyUI Node

Nuke Blur

Nuke-style Gaussian blur with separate X/Y control

By sumitchatterjee13·Created about a year ago·Updated 9 days ago· 59
Nuke Blur
  • image
  • mask
  • IMAGE
size_x1.0
size_y1.0
filtergaussian
qualitymedium
croptrue
mix1.00

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 - optional IMAGE mask, 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_x and size_y are both above zero. If one is 0, you've built a directional blur and it will look like motion.
  • Nothing appears to change - mix defaults 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 size relative to your resolution.
  • The mask isn't doing anything - it expects an IMAGE, not a MASK. 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.

CategoryNuke/Filter

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
size_xFLOAT1.00–100
size_yFLOAT1.00–100
filterCOMBOgaussian4 options: gaussian, box, triangle, quadratic
qualityCOMBOmedium3 options: low, medium, high
cropBOOLEANtrue
mixFLOAT1.000–1
maskoptMASK

Outputs (1)

NameTypeDescription
IMAGEIMAGE