Nodes/S42 CutFlow/🔀 S42 CutFlow Sync Transition
ComfyUI Node

🔀 S42 CutFlow Sync Transition

The transition that crossfades the audio too, so your edit doesn't sound like a mistake

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
🔀 S42 CutFlow Sync Transition
  • clip_a
  • audio_a
  • clip_b
  • audio_b
  • merged_video
  • merged_audio
  • total_frame_count
  • info
transition_typedissolve
transition_frames12
fps24.00
audio_crossfadetrue
easingease_in_out
glitch_seed42

Here's a tiny annoyance that ruins a lot of "done in ComfyUI" videos: the picture crossfades beautifully between two clips, but the audio just slams from one track into the other. It reads as an editing error even if the visuals are perfect. S42CF_TransitionSync is CutFlow's answer - it's the pack's 20-transition node plus a matched audio crossfade, so picture and sound change together.

The name is doing a lot of honest work: the video half is the same engine as the plain S42CF Transition node, and the sync part is what you're actually paying for. It takes two clips and two AUDIO tracks, merges the video with whatever transition you pick, and merges the audio with a crossfade timed to the transition duration.

How it works

The video side delegates to the pack's proven transition code. Blending transitions (dissolve, fades, glitch, and the luma wipe) composite actual overlapping frames from both clips; the motion types (push, wipe, zoom, spin, iris, slide) use stable reference frames - the last frame of clip A and the first frame of clip B - so the moving transition doesn't jitter as the source frames change underneath it.

The audio side is simpler and worth understanding. It computes how many samples the transition lasts (transition_frames / fps seconds at the sample rate of audio_a), cuts the tail off audio_a and the head off audio_b, and - when audio_crossfade is on - ramps one down while the other ramps up across that overlap. Turn audio_crossfade off and it's a hard splice, which is exactly the clicky cut you were trying to avoid.

The inputs that matter

You set surprisingly few things here:

  • clip_a/audio_a, clip_b/audio_b - both clips and both audio tracks. They're all required; there's no "video only" mode on this node, so if you only have one soundtrack, feed the same AUDIO to both inputs.
  • transition_type - 25 choices, a superset of the core Transition node (it adds luma_wipe). dissolve is the safe default.
  • transition_frames - duration; 12 frames is half a second at 24fps.
  • audio_crossfade - the headline toggle. Leave it on.
  • easing, fps, and glitch_seed for the glitch transition - set them once and forget.

Outputs

  • merged_video → wire into your video combine/save node (VHS Video Combine works).
  • merged_audio → your audio save node, or LTX 2.3's audio conditioning if you're re-generating rather than exporting.
  • total_frame_count and info - the former is handy for downstream timing nodes.

Installing it

This is one of 53 nodes in the S42 CutFlow pack, so you install the whole suite:

  • ComfyUI Manager → search S42 CutFlow → Install, or
  • cd ComfyUI/custom_nodes && git clone https://github.com/GeekyGhost/S42-CutFlow then install requirements and restart.

The pack is a work in progress (the author says these nodes are being refined for a port to LTX Desktop), and it's fresh enough that you won't find much community lore about it yet - judge it by running the bundled workflows. One honest gotcha: the audio sample rate is taken from audio_a with no conversion, so mismatched-rate tracks will drift on the timeline. And note the merged length is len(A) + len(B) - overlap - it doesn't resample either track to match, so trim both to the lengths you actually want with the pack's S42CF Audio Trim node first.

CategoryS42 CutFlow/Expanded

Inputs (10)

NameTypeDefaultDescription
clip_aIMAGE
audio_aAUDIO
clip_bIMAGE
audio_bAUDIO
transition_typeCOMBOdissolve25 options: cut, dissolve, fade_black, fade_white, luma_wipe, push_left, +19
transition_framesINT12
fpsFLOAT24.00
audio_crossfadeBOOLEANtrue
easingCOMBOease_in_out10 options: linear, ease_in, ease_out, ease_in_out, ease_in_cubic, ease_out_cubic, +4
glitch_seedINT42

Outputs (4)

NameTypeDescription
merged_videoIMAGE
merged_audioAUDIO
total_frame_countINT
infoSTRING