Nodes/S42 CutFlow/⏸ S42 CutFlow Frame Hold
ComfyUI Node

⏸ S42 CutFlow Frame Hold

Freeze Frames, Title Cards, and the Record-Scratch Pause

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
⏸ S42 CutFlow Frame Hold
  • clip
  • clip
  • frame_count
  • info
frame_sourcefirst
frame_index0
hold_frames24

Every editor needs the freeze frame: the hero moment held in time, the record-scratch pause, the title card that sits still while the viewer reads it. S42CF_FrameHold is the S42 CutFlow node that takes one frame from your clip and duplicates it for a set duration - exactly like the freeze-frame tool in any NLE, but living inside your ComfyUI graph.

What you set

  • frame_source - which frame to freeze: first, last, middle, or custom. The first three are self-explanatory; custom uses frame_index.
  • frame_index - only used when frame_source is custom. Pick the exact frame number.
  • hold_frames - how long the freeze lasts, in frames. At 24fps: 24 = 1 second, 48 = 2 seconds, 72 = 3 seconds. The tooltip does the math for you.

That's the whole node. Feed it an IMAGE batch, set the freeze source and duration, and you get back clip (the original frames plus the held segment), frame_count (now bumped up by hold_frames), and info.

How to actually use it

The classic pattern is hold-then-resume: freeze on a key visual for a beat, then let the clip continue. Since FrameHold keeps the rest of the clip intact and just inserts the duplicated frames, you can drop it mid-chain and the video picks up where it left off. Wire frame_count downstream to any node that needs the new duration - that's the whole reason CutFlow's clip ops all expose a frame_count output.

Three uses that come up constantly:

  1. Title cards. Take a generated still (or a frame from footage), hold it for ~3 seconds at the start, and you've got an instant opening card that a LowerThird or Text Overlay node can decorate.
  2. The dramatic pause. Hold on the action beat for 12–24 frames before the cut. It's the "record scratch" energy, zero effort.
  3. Thumbnails and review. Hold a frame so you can actually look at it while the rest of the chain processes - or extract it afterward with S42CF_FrameExtract to pull a clean still out of a moving clip.

Install

One node in the 53-node S42 CutFlow pack. 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 completely and look for the S42 CutFlow category; the console should print [S42 CutFlow] Loaded 53 total nodes. FrameHold is pure tensor duplication on CPU - no models, no VRAM, no downloads. The only pack dependency you actually need is OpenCV (opencv-python-headless in the requirements.txt; the README's troubleshooting says install opencv-python if you hit "No module named 'cv2'").

The standing pack note: Geeky Ghost calls S42 CutFlow a work-in-progress being groomed for LTX Desktop. The clip-operation core - FrameHold included - is the stable, dependable layer; treat the expanded experimental nodes as moving parts.

CategoryS42 CutFlow/Clip Ops

Inputs (4)

NameTypeDefaultDescription
clipIMAGESource clip to extract freeze frame from.
frame_sourceCOMBOfirstWhich frame to freeze. 'custom' uses the frame_index parameter.
frame_indexINT00–99999Frame index to freeze (only used when frame_source='custom').
hold_framesINT241–9999Number of frames to hold. At 24fps: 24=1sec, 48=2sec.

Outputs (3)

NameTypeDescription
clipIMAGE
frame_countINT
infoSTRING