Nodes/WAS Node Suite v3/Image Directional Blur
ComfyUI Node Runs on cloud

Image Directional Blur

Motion blur with a direction — or a spin, or a zoom

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Image Directional Blur
  • images
  • images
blur
length0.050
angle0
taps16
centre_x0.50
centre_y0.50
edge

A Gaussian blur softens everything the same way in every direction - it's a fog, not a motion. When you want an image to feel fast, you need the blur to travel: a streak behind a moving subject, a rush out from the center, a sweep around a point. Image Directional Blur smears the frame along a path instead of spreading it evenly, and it's the difference between a render that looks static and one that reads as a camera moving through the scene.

It's from WAS Node Suite (WASasquatch's MIT pack, v3 ships 457 nodes), under WAS Suite/Image/Filter.

The three paths

The blur dropdown picks which way the smear travels:

  • linear - samples in one straight direction. This is the classic motion-blur streak a moving camera or subject leaves. angle sets the direction: 0° streaks to the right, 90° downward, 45° down-and-right. Only linear reads angle.
  • zoom - samples rush out from a central point, which reads as speed toward the viewer, or a dolly zoom.
  • spin - samples sweep around a center, which reads as rotation.

zoom and spin turn about centre_x / centre_y, given as fractions of the frame (0.5 = middle, 0.0 = left or top edge, and you can push past the edges into negative or >1 territory for off-frame centers). On spin, length is measured in turns - 0.02 is about 7 degrees - while on linear and zoom it's a share of the frame: 0.05 is a 5% hand-held wobble, 0.3 is a long streak.

How it works

A directional blur is just averaging many samples taken along the path instead of in a neighborhood - the node's taps input is how many samples get averaged. 8 is fast and visibly stepped on a long smear; 16 is smooth for most lengths; 64 is smooth on the longest smears at four times the work. More taps = smoother streak, slower run; fewer = faster but chunkier.

The edge setting decides what happens where the samples run off the frame: hold the edge smears the outermost pixels out (good for streaks that should extend past the border), mirror folds the frame back on itself, and empty lets the border darken as the smear runs off it. This is the knob that decides whether your streak looks intentional or looks like a dirty border.

Where you'll use it

Three jobs, all flavor:

  • Speed. A hint of linear streak on a background sells motion on a still frame; a zoom blur around a focal subject reads as acceleration.
  • Focus. Zoom or spin blur applied as a mask-weighted effect - sharp in the middle, smeared at the edges - mimics a lens effect on a subject.
  • Motion and video work. It applies per-frame to batches, so a consistent directional smear across frames reads as camera shake or a whip pan; combined with a mask it can fake a moving camera on a still.

Because it averages existing pixels, it's a cheap, deterministic effect - no diffusion, no model - which makes it a staple of the "post-process layer" of ComfyUI work (the deterministic fixes you reach for instead of re-running the sampler).

Install and notes

WAS Node Suite via ComfyUI Manager (search "WAS Node Suite v3") or git clone https://github.com/WASasquatch/was-node-suite-comfyui into ComfyUI/custom_nodes, then restart. Needs ComfyUI 0.14.0+ and Python 3.10+, and v3 installs no Python packages - no OpenCV, none of the dependency collisions the old v2 was known for.

Two practical tips. Keep taps as low as looks acceptable - 64 on a large image is genuinely slower, and the stepping it cures is only visible on long smears. And dial length carefully on zoom: past a few percent it stops reading as speed and starts reading as an error, because the whole frame smears into a smear. If the center is what you want to keep sharp, blur the image and composite the original back over the center with a mask.

CategoryWAS Suite/Image/Filter

Inputs (8)

NameTypeDefaultDescription
imagesIMAGEThe frames to smear. Each one gets the same path and comes back at the size it went in at.
blurCOMBOWhich path the samples are taken along. `linear` runs in one direction; `zoom` runs out from the centre; `spin` runs round it.
lengthFLOAT0.0500–1How far the smear travels. On `linear` and `zoom` it is a share of the frame: 0.05 = 5%, a hand-held wobble; 0.3 = a long streak. On `spin` it is turns: 0.02 = about 7 degrees.
angleFLOAT0-360–360Direction of a `linear` smear. 0 = to the right, 90 = downwards, 45 = down and to the right. Ignored by `zoom` and `spin`.
tapsINT162–128How many samples are averaged along the path. 8 = fast and visibly stepped on a long smear; 16 = smooth for most lengths; 64 = smooth for the longest, and four times the work.
centre_xFLOAT0.50-1–2Where `zoom` and `spin` turn about, across the frame. 0.5 = the middle, 0.0 = the left edge. Ignored by `linear`.
centre_yFLOAT0.50-1–2Where `zoom` and `spin` turn about, down the frame. 0.5 = the middle, 0.0 = the top edge. Ignored by `linear`.
edgeCOMBOWhat the samples read past the edge of the frame. `hold the edge` smears the outermost pixel out; `mirror` folds the frame back; `empty` darkens the border as the smear runs off it.

Outputs (1)

NameTypeDescription
imagesIMAGEThe smeared frames.