Nodes/ComfyUI-MiniMaxH3-Contex-Loop/MiniMax H3 Contex Loop Seam Probe
ComfyUI Node

MiniMax H3 Contex Loop Seam Probe

Did your H3 clip actually continue the last one?

By ethanfel·Created 17 days ago·Updated about 20 hours ago· 315
MiniMax H3 Contex Loop Seam Probe
  • clip_b_untrimmed
  • clip_a_latent
  • audio_vae
  • audio
  • report
trim_frames0
fps24.000
window_ms50
search_ms40

Seam Probe is the one node in the Contex Loop pack that doesn't generate anything - it measures. Specifically, it answers two questions about the boundary where clip B joins clip A in a chain: does B's audio continue A's audio (or did it restart from silence), and is there an audible level step at the cut? In a multi-scene H3 production, the video seam gets most of the attention, but the audio seam is where the "this feels like separate clips taped together" feeling comes from. This is the diagnostic for that.

It's a descendant of the seam probe concept from NikoDemon80's H3 Motion Context, reimplemented for this pack with its own distinct node ID so both packs can coexist.

How it works

You feed it clip B's audio straight off the VAE decode, before the trim node - that's the clip_b_untrimmed input. At that point it still carries the pinned head (the repeated context frames that the trim node is about to remove), and that head is exactly what needs comparing against clip A. You also pass trim_frames, the same value the trim node receives, ideally wired directly from the Motion Context node's trim output.

Then the optional part does the interesting work: connect clip_a_latent - the previous clip's AV latent, the same one wired into Motion Context's context_latent - and the audio_vae, and the node decodes clip A's audio itself, tail-matches it, and correlates it against clip B's pinned head. The result: a report telling you whether B continues A's audio and how big the level step at the cut is.

It's a genuinely honest measurement tool. If you don't connect clip_a_latent, there's nothing to compare against and the node just describes clip B - the tooltip is upfront that "nothing is measured." The window_ms (correlation window, default 50) and search_ms (max lag searched either side, default 40) tune the analysis. fps must match what you feed Create Video.

Outputs: audio - clip B's untrimmed audio, passed through unchanged so you can wire it on to the trim node without breaking the chain - and report, a string for a Preview Text node.

Why you'd actually run it

Because "continuity" in H3's AV modes is a claim, not a promise. The 39-frame protected prefix should hand the audio off cleanly, but generated audio can still pop at the boundary, and a level step reads as an edit even when the waveform matches. Rather than eyeballing two clips, run the probe, look at the report, and if the seam is bad you know it's the transition (adjust the policy) rather than re-rendering the whole scene blind. Think of it as the graph-level version of the review-then-reroll loop, but for audio physics.

Install

From the ComfyUI-MiniMaxH3-Contex-Loop pack. ComfyUI Manager → search the pack, or:

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git

Restart. No pip dependencies. It needs a current ComfyUI with native Add Guide for MiniMax H3 support, and the H3 weights (not bundled) are license-locked out of the US/EU/UK/South Korea.

Gotchas

The classic mistake is feeding it clip B's trimmed audio by accident - the whole correlation depends on the pinned head still being present, so grab the output from before the trim node. And don't expect the probe to fix anything; it's a stethoscope, not a scalpel. When it tells you the seam is off, the fix lives in Chain Policy or the AV transition settings, not in the probe.

Categoryconditioning/minimax/contex_loop

Inputs (7)

NameTypeDefaultDescription
clip_b_untrimmedAUDIOThis clip's audio straight off the VAE decode, BEFORE the trim node. It still carries the pinned head, which is what gets compared.
trim_framesINT00–4096Wire this from the Motion Context node's trim output, the same value the trim node gets. It is the pinned span.
clip_a_latentoptLATENTThe PREVIOUS clip's AV latent: the same one wired into Motion Context's context_latent. The node decodes and tail-matches it itself. Without it only clip B is described, nothing is measured.
audio_vaeoptVAEThe H3 audio VAE, needed to decode clip A's audio out of its latent.
fpsoptFLOAT24.0001–240Must match what you feed Create Video.
window_msoptFLOAT505–500Correlation analysis window.
search_msoptFLOAT405–500Maximum lag searched either side.

Outputs (2)

NameTypeDescription
audioAUDIOclip_b_untrimmed, unchanged. Wire it on to the trim node.
reportSTRINGThe measurement report, for a Preview Text node.