🔄 S42 CutFlow Frame Blend
The Unsung Hero That Kills AI Video Jitter
- clip
- clip
- frame_count
- info
AI-generated video has a signature artifact that isn't noise and isn't blur: it vibrates. Small frame-to-frame inconsistencies in position, color, and detail that make the footage look like it's shimmering even when nothing's moving. S42CF_FrameBlend is the S42 CutFlow node that fixes it the boring, reliable way - by averaging each frame with its neighbors. It's not glamorous, and it's probably the node on this pack you'll actually use most.
How it works
For each frame, it blends that frame with a window of its neighbors and mixes the result back in. Three inputs:
window- how many frames get averaged. 2–3 is subtle smoothing, 5+ is heavy motion blur. For jitter you want 3 or less.weights- how the window is weighted.center_weighted(default) trusts the current frame most and fades to its neighbors - this is the jitter-fixing choice, because it smooths inconsistencies without smearing motion.uniformis a straight average (dreamier, more motion blur),exponential_decayfalls off faster from center.strength- the mix between original (0) and fully blended (1). This is the dial that saves you. A 3-frame center-weighted blend at ~0.3 strength kills most AI jitter without visible motion blur. Crank it to 1.0 with a big window and you get a deliberate dreamy, long-exposure look instead.
There's a second job it's great at: smoothing the result of a speed change. When S42CF_SpeedRamp or Clip Reverse retimes footage, frame timing shifts can cause visible stutter; a light FrameBlend pass smooths that seam. The pack's own example workflow chains SpeedRamp → ClipReverse → FrameBlend → FilmGrain, and that ordering is worth copying.
The honest caveat
This is a temporal average, not frame interpolation. It smooths by blurring in time, which means heavy settings genuinely reduce sharpness and can smear fast motion. The fix for that is to keep strength low (0.2–0.4) and window small unless you're deliberately going for motion blur. It won't create new frames; frame_count out equals frame_count in, and it doesn't change resolution. That's a feature - it slots into a chain without breaking downstream frame math.
Install
Standard S42 CutFlow: ComfyUI Manager → search "S42 CutFlow" → Install → restart. Or by hand:
cd ComfyUI/custom_nodes/
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt
Restart ComfyUI fully and confirm the console shows [S42 CutFlow] Loaded 53 total nodes. FrameBlend is pure CPU tensor math - no model, no VRAM, no downloads. The only pack-level dependency you must have is OpenCV (opencv-python-headless ships in requirements.txt; the README tells you to install opencv-python if you ever see "No module named 'cv2'").
Pack health check, since it applies everywhere: Geeky Ghost calls S42 CutFlow a work-in-progress being refined for LTX Desktop. The filter and clip-op core - FrameBlend included - is the dependable part; the expanded nodes are where things move.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | IMAGE | Video clip to apply frame blending to. | |
| window | INT | 32–15 | Number of frames to blend together. 2-3 = subtle smoothing. 5+ = strong motion blur. |
| weights | COMBO | center_weighted | 'uniform' = equal weight for all frames in window. 'center_weighted' = current frame has highest weight. 'exponential_decay' = past frames decay exponentially. |
| strength | FLOAT | 1.00–1 | Blend between original (0) and fully blended (1). |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| clip | IMAGE | — |
| frame_count | INT | — |
| info | STRING | — |