Nodes/radiance/◎ Radiance Motion Blur
ComfyUI Node

◎ Radiance Motion Blur

Radiance Motion Blur — the post pass that makes AI video stop looking like stop-motion

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Radiance Motion Blur
  • image
  • IMAGE
blur_typeDirectional
amount10
angle0
center_x0.50
center_y0.50
samples16
use_gputrue

Ask the community why AI video looks fake and one answer comes up again and again: no motion blur. Real cameras smear fast-moving objects across the frame; diffusion models render each frame crisp, and the result is that unnatural, twitchy quality. The KB's post-processing doc quotes a poster who fixed exactly this in post - "one of the biggest reasons the AI videos don't look real is that there's no motion blur" - and there was a notable gap: he went to After Effects for it, because ComfyUI coverage was patchy. Radiance Motion Blur is a piece of that patch.

It's a filter, not a model: it takes an image (or frame) and blurs it directionally, radially, or with a zoom, simulating what a moving camera or moving subject would actually capture. In 32-bit float, because it's the Radiance pack and that's the house style.

How it works

Three blur types, one purpose each:

  • Directional - blurs along a straight line at a given angle. The everyday one: a fast pan, a moving car, anything crossing the frame.
  • Radial - blurs around a center point, as if rotating around a fixed spot. Good for camera pans around a subject, or for making a still's center pop.
  • Zoom - blurs outward from a center, simulating a dolly zoom or punch-in.

The shared controls are amount (0–100, how far the blur stretches), samples (4–64, quality: more samples = smoother blur, slower render), and center_x/center_y for the two center-based modes. use_gpu defaults on and falls back if your hardware can't take it. For video work you'd apply it per-frame with a consistent angle to match camera motion; for stills it's a creative tool - a car shot with a slight directional blur reads as motion even in a single frame.

The inputs that matter

  • blur_type - Directional / Radial / Zoom.
  • amount - the strength. 10 default is subtle; 40+ is a strong smear.
  • angle - for Directional, in degrees (-180 to 180). 0 is horizontal.
  • center_x / center_y - normalized 0–1, 0.5 is frame center. Only relevant for Radial and Zoom.
  • samples - 4–64. Turn it up when you see streaky banding in the blur.
  • use_gpu - leave it on.

Output: the blurred image.

Where it fits

The KB flags motion blur as the operation people leave ComfyUI for After Effects to do - this node covers the simple deterministic half of it. For actual AI video, the honest expectation: it's a per-frame blur filter, not a temporal pass, so it won't add the subtle, motion-matched blur you'd get from a proper compositor with velocity data. But for the "fake smoothness" problem - where frames are too crisp - a light directional pass in the direction of motion does a surprising amount of work, and it's instant and deterministic.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt   # or requirements_windows.txt / requirements_linux.txt / requirements_mac_silicon.txt

Or search Radiance in ComfyUI Manager, restart. Linux needs libopenexr-dev first.

Gotchas

The classic beginner move is cranking amount and wondering why the image is now a smear - motion blur sells motion at low amounts; at high amounts it just destroys detail, and no amount of sharpening brings it back. Start at 10–15, view at full res. Second, samples too low on a wide blur shows visible segmentation in the smear; if you see streaks, raise it before you blame the node. Third, it's a per-frame filter - applying it to a video batch is up to your workflow structure, and matching angle across frames is your job, not the node's.

CategoryFXTD Studios/Radiance/Filter

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
blur_typeCOMBODirectional3 options: Directional, Radial, Zoom
amountFLOAT100–100
angleoptFLOAT0-180–180
center_xoptFLOAT0.500–1
center_yoptFLOAT0.500–1
samplesoptINT164–64
use_gpuoptBOOLEANtrue

Outputs (1)

NameTypeDescription
IMAGEIMAGE