◎ Radiance Motion Blur
Radiance Motion Blur — the post pass that makes AI video stop looking like stop-motion
- image
- IMAGE
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.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| blur_type | COMBO | Directional | 3 options: Directional, Radial, Zoom |
| amount | FLOAT | 100–100 | — |
| angleopt | FLOAT | 0-180–180 | — |
| center_xopt | FLOAT | 0.500–1 | — |
| center_yopt | FLOAT | 0.500–1 | — |
| samplesopt | INT | 164–64 | — |
| use_gpuopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |