Nodes/S42 CutFlow/⏳ S42 CutFlow Temporal FX
ComfyUI Node

⏳ S42 CutFlow Temporal FX

Ghosts, trails, slit-scan, and strobe — effects that need more than one frame

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
⏳ S42 CutFlow Temporal FX
  • clip
  • clip
  • frame_count
  • info
modeecho
window5
intensity0.50
decay0.70

Most image filters look at one frame at a time. Temporal FX is the opposite: it looks at a window of frames and combines them across time, which is how you get effects that single-frame processing physically can't produce - ghostly echo trails behind moving subjects, accumulating motion streaks, the slit-scan "time displacement" look, dreamy long-exposure averages, and a strobe. It's one of the Filters in GeekyGhost's S42 CutFlow suite, and it's the node that makes AI-generated footage stop looking like a series of still images.

The five modes

  • echo (default) - semi-transparent copies of past frames layered onto the current one. The ghosting every music video has used since the 80s. Good on dancers, cars, anything with clear motion.
  • motion_trail - an accumulating trail behind moving objects, like a long-exposure speed streak. Related to echo but builds up rather than repeating at fixed intervals.
  • time_displacement - the slit-scan: vertical rows of the image sample different time offsets, producing that warped, flowing look from 2001: A Space Odyssey. Weird, mesmerizing, and instantly recognizable.
  • frame_average - averages N adjacent frames. Smooth, dreamy, long-exposure. This one is genuinely useful beyond art: it damps frame-to-frame flicker and jitter in AI output, which is why it pairs well with LTX/Wan footage.
  • strobe - alternating frame holds for a strobe/flash effect. The music-video club light.

The inputs

mode picks the effect; then three knobs tune it:

  • window (int, 2–30, default 5) - how many frames the effect sees. Bigger = more ghosting/trail/blur. This is the primary "how much effect" control.
  • intensity (float, 0–1, default 0.5) - overall strength; 0 is passthrough, 1 is maximum.
  • decay (float, 0.1–0.99, default 0.7) - how fast past frames fade. Higher = longer persistence (heavier ghosting); lower = snappier. Used by echo and motion_trail; the other modes ignore it.

The practical tuning loop: start with a modest window (5) and low-ish intensity (0.3), and raise decay only when you want the trails to linger. Everything runs as pure tensor operations on your IMAGE batch - CPU, fast, deterministic. Outputs: clip, frame_count, and info.

Installing it

Standard S42 CutFlow install:

cd ComfyUI/custom_nodes/
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt   # Windows portable: python_embeded\python.exe -m pip

Or ComfyUI Manager → search S42 CutFlow → install → restart. It's under S42 CutFlow/Filters.

Gotchas

Temporal effects have real edge cases, and they're worth knowing before you queue a long render. First, the first N frames of the clip get short-changed - the window has nothing before it, so the effect ramps in. Feed it a clip with a little lead-in (or trim after the fact). Second, motion is the fuel: a static clip with echo or trails does nothing. Don't blame the node - give it movement. Third, frame_average at high window values makes motion turn to mush; if you're using it to de-jitter AI footage, keep the window at 3–5 and pair with a low strength. And the workflow tip the community would give you: this node is also how you fake motion blur on AI video - the KB notes that "no motion blur" is a top reason AI clips read as fake, and a light frame_average or echo pass is the cheapest fix for that tell.

CategoryS42 CutFlow/Filters

Inputs (5)

NameTypeDefaultDescription
clipIMAGEVideo clip for temporal effects.
modeCOMBOecho'echo' = semi-transparent copies of past frames layered on current. 'motion_trail' = accumulating trail from moving objects. 'time_displacement' = vertical pixel rows sample different time offsets. 'frame_average' = average N adjacent frames (smooth/ghostly). 'strobe' = alternating frame hold for strobe/flash effect.
windowINT52–30Number of frames in the temporal window. Larger = more ghosting/trail/blur.
intensityFLOAT0.500–1Effect strength. 0 = passthrough, 1 = maximum effect.
decayFLOAT0.700.1–0.99How quickly past frames fade. Higher = longer persistence. Used by echo and motion_trail.

Outputs (3)

NameTypeDescription
clipIMAGE
frame_countINT
infoSTRING