ComfyUI Node

Smooth Video

FastBlend's frame-by-frame deflicker, ported into ComfyUI

By AInseven·Created 3 years ago·Updated 2 years ago· 228
Smooth Video
  • orginalframe
  • keyframe
  • IMAGE
accuracy1
window_size15
batch_size16
tracking_window_size0
minimum_patch_size5
num_iter5
guide_weight10.0

If your video2video output flickers - texture crawling frame to frame even though the motion itself looks fine - SmoothVideo is the node built to fix exactly that. It's the flagship node of ComfyUI-fastblend, a small pack by AInseven, and it isn't a neural network at all. It's a patch-matching algorithm: no model to download, no checkpoint to pick, just math running frame against frame. The author didn't invent it either, and says so plainly in the README - the core code is lifted from Artiprocher's sd-webui-fastblend, the original A1111 extension; this pack just makes it run inside ComfyUI.

How it works

FastBlend treats your "original" sequence (the raw, temporally-stable frames) as a motion guide and your "key" sequence (the stylized, per-frame-edited output that flickers) as the thing to be smoothed. For every frame it searches nearby frames within a temporal window for matching patches and blends them in, nudging each frame toward consistency with its neighbors rather than a purely local diffusion-driven guess. SmoothVideo does this densely - every single frame gets rendered - which is the difference from its sibling, InterpolateKeyFrame, which only processes a subset and interpolates the rest.

The inputs and outputs that matter

Two image inputs and five algorithm knobs, all pulled straight from the README's own descriptions:

  • orginalframe and keyframe (both IMAGE) - the motion-source sequence and the stylized sequence you want smoothed, respectively. Note the README's own typo carries into the widget name.
  • accuracy (1–3, default 1) - "larger is better, 1 is enough for most situations." Leave it unless you have a specific reason to push it.
  • window_size (default 15) - how far in time the blend looks; the author's plain description is "how smooth the video."
  • minimum_patch_size (default 5, step 2) - must stay odd, the README flags this explicitly as important; larger is generally better but costs more.
  • num_iter (default 5) - more iterations, better result, more time.
  • guide_weight (default 10) - how strongly the motion from orginalframe gets imposed on keyframe.
  • batch_size (default 16) - bigger batches run faster but eat VRAM.
  • tracking_window_size - present in the schema but not explained anywhere in the README; treat it as an advanced knob and leave it at 0 unless you're deliberately experimenting.

Output is a single IMAGE batch - wire it straight into a Save Image or a Video Combine node.

The author also gives you the actual cost formula, which is worth internalizing before you crank everything to max: log(window_size) × minimum_patch_size² × num_iter × video_length × video_resolution. Every one of those knobs is a multiplier, not an addition - doubling minimum_patch_size roughly quadruples the work.

How to install it

Easiest path is ComfyUI Manager: search "ComfyUI-fastblend," install, restart. Manually, it's the standard drop-in:

cd ComfyUI/custom_nodes
git clone https://github.com/AInseven/ComfyUI-fastblend

then restart ComfyUI. There's nothing to download beyond the code itself - no model weights, because this isn't a model.

Common issues & troubleshooting

It doesn't fix everything. This isn't a universally-loved tool. On r/StableDiffusion someone asked for free alternatives to the underlying sd-webui-fastblend algorithm and reported flatly that they'd tried it and "it doesn't produce good results." Patch-matching works well on slow, steady motion and struggles more on fast or chaotic movement - go in expecting a solid deflicker on the easy cases, not a miracle on the hard ones.

It's slow or runs out of VRAM on a full clip. That's the cost formula biting you. Drop batch_size, or better, use the pack's own reBatchImage node first to chunk a long clip into VRAM-sized pieces before it hits SmoothVideo.

Output looks smeared or over-blended. guide_weight too high relative to how much you actually want the original motion imposed - pull it down before touching anything else.

minimum_patch_size errors or looks wrong. It has to be odd - the README calls this out by name as the one parameter people get bitten by.

CategoryAInseven

Inputs (9)

NameTypeDefaultDescription
orginalframeIMAGE
keyframeIMAGE
accuracyINT11–3
window_sizeINT151–100
batch_sizeINT161–100
tracking_window_sizeINT00–100
minimum_patch_sizeINT50–100
num_iterINT50–100
guide_weightFLOAT10.01–100

Outputs (1)

NameTypeDescription
IMAGEIMAGE