Nodes/ComfyUI-SuperBeasts/Pixel Deflicker - Experimental (SuperBeasts.AI)
ComfyUI Node

Pixel Deflicker - Experimental (SuperBeasts.AI)

Per-pixel temporal smoothing for the small-scale flicker Deflicker can't touch

By SuperBeastsAI·Created 2 years ago·Updated 3 months ago· 220
Pixel Deflicker - Experimental (SuperBeasts.AI)
  • images
  • IMAGE
window_size2
blending_strength0.10
batch_size10

Pixel Deflicker is the sibling of SuperBeasts' Deflicker node, and the difference is right in the name. Deflicker corrects whole-frame brightness wobble. This one works per-pixel: it averages each pixel across a window of neighboring frames so that small-scale flicker - shimmering noise, a pulsing highlight, a background that hums - gets smoothed out while the image itself stays recognizable.

Also like its sibling, it's marked Experimental in the node name, and the pack's docs are candid that both deflickers didn't meet the author's expectations and may be removed. Treat it as a tool to try, not a permanent fixture of a critical pipeline. That caveat lands a little differently here though, because per-pixel temporal smoothing is a well-understood technique - this is honestly the more useful of the two nodes for the kind of "grainy video noise" flicker that actually plagues generated video.

How it works

The mechanism is simple enough to explain in one breath: for every frame, take a sliding window of frames around it (window_size on each side, default 2), average the frames in that window per-pixel, then blend the averaged frame with the original according to blending_strength (default 0.1). Frames get processed in chunks of batch_size (default 10) to keep memory flat.

That temporal mean is the classic motion-denoiser trick - it assumes noise is random frame-to-frame while the true image is stable, so averaging cancels the noise. The blend-back is what stops the output looking like a smeary ghost: at 0.1 you're mostly keeping the original and only shaving the worst pixel pops. There's no brightness analysis or threshold here, no dithering, no gradient passes - it's a leaner node than Deflicker, and that's to its credit.

The inputs that matter

Only three, and really only two of them matter:

  • window_size (default 2) - how many frames on each side feed the average. Bigger window = smoother but more motion ghosting. For animation with actual movement, keep it small.
  • blending_strength (default 0.1) - the mix between original and temporal average. This is your flicker-vs-detail tradeoff; push toward 0.3–0.5 only if the original is genuinely noisy.
  • batch_size (default 10) - pure memory control, leave it alone.

Output is an IMAGE batch, same frame count as the input.

Where it fits

Right after generation, before anything that might lock in the noise - which in practice means before an upscaler. The SuperBeasts pack is aimed at video work, and this node pairs naturally with its Deflicker: run Deflicker first for global exposure wobble, then Pixel Deflicker for the residual small-scale shimmer. If you can only pick one, pick this one.

Install

Same pack, same story:

cd ComfyUI/custom_nodes
git clone https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts

Restart ComfyUI, or grab the pack from ComfyUI Manager (search "SuperBeasts"). No extra dependencies to install.

Common issues

Motion ghosting is the thing to watch for - temporal averaging and moving subjects don't love each other. If a character's edges smear, your window_size is too big for the amount of motion, or blending_strength is too high. And because it averages in NumPy via PIL round-trips per frame, very long clips are slow; batch_size bounds memory, not total time. Same lifecycle warning as Deflicker: it's explicitly experimental, possibly headed for removal, so keep your favorite workflow backed up.

CategorySuperBeastsAI/Animation

Inputs (4)

NameTypeDefaultDescription
imagesIMAGE
window_sizeINT21–20
blending_strengthFLOAT0.100–1
batch_sizeINT101–100

Outputs (1)

NameTypeDescription
IMAGEIMAGE