Nodes/ComfyUI-ALLinONE-MinimaxH3/H3 Audio Join Smooth (internal)
ComfyUI Node

H3 Audio Join Smooth (internal)

Kill the click at the Extend seam — the tiny node that makes continuations sound right

By LeonQ8·Created 10 days ago·Updated about 16 hours ago· 273
H3 Audio Join Smooth (internal)
  • audio
  • source_frames
  • continuation_frames
  • audio
source_fps24.000
fps24.000
fade_seconds0.25

When you Extend an H3 clip, you get a video that's supposed to be one continuous shot - but the audio is built as [source audio] glued to [generated audio], and the generated half has been through a lossy VAE round trip. The two sides rarely meet sample-for-sample, so a hard concat produces an audible click or pop right at the join. H3 Audio Join Smooth (internal) exists to make that seam inaudible.

The mechanism is a careful linear crossfade. It uses the frame counts of the source clip (source_frames at source_fps) and the continuation (continuation_frames at fps) to compute exactly where the join lands and how long the full clip should be. Then it overlaps the source tail and the generated head by a short crossfade, and re-pads to the frame-derived duration so audio stays in sync with video down to the sample.

Two design decisions are worth understanding, because they're what make it work:

  • It's a linear crossfade, not equal-power. An equal-power blend would boost the middle of the seam - and since both sides are the same audio continuing, that sounds like a volume bump. Linear keeps the level steady.
  • The default fade_seconds is deliberately short (0.25s). Speech and music keep their rhythm; a long fade over a sentence would smear the words.

Inputs: audio (AUDIO), source_frames (IMAGE), source_fps (FLOAT, default 24), continuation_frames (IMAGE), fps (FLOAT, default 24), and fade_seconds (FLOAT, default 0.25, range 0–1). Output: the smoothed audio. If the input isn't a valid AUDIO dict, or the math can't line up, it passes through untouched rather than corrupting your clip - fail-safe by design.

Like the rest of the "(internal)" nodes here, this one is generated inside the Extend workflow by the pack's frontend; you won't wire it by hand, and it needs no extra models or packs beyond what Extend mode already pulls in (the H3 Motion Context MultiRef pack, per the README's requirements). The one knob worth knowing is fade_seconds: leave it at 0.25 unless you're actually hearing a click, and if you are hearing a click on a particular clip, nudging it to 0.4–0.5 usually buries it. It's a small node doing one job, but it's the difference between a continuation that sounds like one take and one that sounds like two files taped together.

CategoryOne Node

Inputs (6)

NameTypeDefaultDescription
audioAUDIO
source_framesIMAGE
source_fpsFLOAT24.0001–240
continuation_framesIMAGE
fpsFLOAT24.0001–240
fade_secondsFLOAT0.250–1

Outputs (1)

NameTypeDescription
audioAUDIO