Nodes/S42 CutFlow/⏪ S42 CutFlow Clip Reverse
ComfyUI Node

⏪ S42 CutFlow Clip Reverse

Reversing Clips Without Leaving ComfyUI

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
⏪ S42 CutFlow Clip Reverse
  • clip
  • clip
  • frame_count
  • info
speed1.0
interpolationblend

Reverse playback is one of those effects that reads as "I know what I'm doing" even though it's absurdly simple to pull off. An explosion reassembles, water flows upward, a dancer moonwalks. S42CF_ClipReverse is the S42 CutFlow node that flips any IMAGE batch (a video from VHS/GGF, or raw LTX/Wan output) so the last frame plays first - with an optional speed change on top.

The name is a lie in the best way: it doesn't call any API, it doesn't need a model, and it won't touch your VRAM. It just reverses the tensor order along the frame axis and, when you ask for a non-1× speed, resamples between frames so the timing is right.

What you actually set

Three inputs, and really only two matter for a first pass:

  • clip - any IMAGE batch. Feed it whatever you loaded with Video Helper Suite or generated with LTX, Wan, whatever.
  • speed - the multiplier after reversing. 1.0 is normal-speed reverse. 0.5 gives slow-motion reverse, 2.0 fast-forwards the reversed footage (the tooltip is straight from the author: 0.5 = slow-motion reverse with frame blending, 2.0 = fast reverse with frame skipping).
  • interpolation - blend (default) crossfades between frames so a slow-mo reverse looks smooth; duplicate snaps to the nearest frame, which is faster but visibly stuttery.

That interpolation choice is the difference between "looks like film" and "looks like a flipbook." Leave it on blend unless you're rendering something aggressively stylized and want the choppy look for free.

The classic pairing: reverse + ping-pong

Reverse is rarely the whole effect. The move people actually want is a seamless forward-backward loop - the "boomerang" - and you build it by chaining Clip Reverse into S42CF_LoopBounce in ping_pong mode. The reverse gives you the backward half, LoopBounce alternates directions, and suddenly your 2-second AI clip is an infinite loop with no visible seam. It's the same technique every ambient background video and GIF maker uses.

You also get frame_count and info outputs on every CutFlow clip node. frame_count is the number of frames after the operation - handy if the reverse + speed change altered the length and a downstream node needs to know the new duration. info is a plain text summary of what the node did; wire it into a Show Text node if you ever doubt your settings took.

Install

S42 CutFlow ships 53 nodes as one pack. Easiest path: open ComfyUI Manager, search "S42 CutFlow", click install, restart. Or:

cd ComfyUI/custom_nodes/
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt   # Linux/Mac venv

Then restart ComfyUI completely and look for the S42 CutFlow category. The console prints [S42 CutFlow] Loaded 53 total nodes when it's healthy. The only real dependency is OpenCV (opencv-python-headless in the shipped requirements.txt, which the README spells as opencv-python - either one clears the "No module named 'cv2'" error).

One gotcha worth knowing: this pack is an active work-in-progress by Geeky Ghost (he says these nodes are being refined for porting to his LTX Desktop app, and he's been working on them for years). Core clip ops like this one are rock solid, but don't be surprised if the occasional expanded node changes behavior between updates. Reverse itself is about as boring and reliable as a node gets.

CategoryS42 CutFlow/Clip Ops

Inputs (3)

NameTypeDefaultDescription
clipIMAGEVideo clip to reverse.
speedFLOAT1.00.1–10Playback speed multiplier after reversing. 1.0 = normal speed reverse. 0.5 = slow-motion reverse (frame blending). 2.0 = fast reverse (frame skipping).
interpolationCOMBOblendFrame interpolation for non-1x speeds. 'blend' = smooth linear interpolation between frames. 'duplicate' = nearest-frame, faster but jittery.

Outputs (3)

NameTypeDescription
clipIMAGE
frame_countINT
infoSTRING