Nodes/MiniMax H3 Audio T8/MiniMax H3 Speech Long Form Accept / 接受语音分段 (EXP/T8)
ComfyUI Node

MiniMax H3 Speech Long Form Accept / 接受语音分段 (EXP/T8)

Commit a good H3 segment before the next render — and don't lose it when ComfyUI dies

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Speech Long Form Accept / 接受语音分段 (EXP/T8)
  • session
  • speech_plan
  • audio
  • chunk_ready_audio
  • report_json
segment_index0
transcript
text_similarity0.00
speaker_similarity0.00
acceptedfalse
replace_existingfalse

In the long-form speech chain, this is the checkpoint button. MiniMaxH3SpeechLongFormAcceptT8 takes the audio you just rendered for one segment, checks that you actually want it, and atomically stores it in the job's manifest before advancing the cursor. The node description says it in one line: "Atomically stores one accepted chunk before advancing the manifest; safe to resume after a crash." If you render twelve segments and never accept them, a crash hands you nothing. If you accept each one as it lands, the worst case is you re-render the single segment you were working on.

How it works

You connect it after the sampler in the segment-render loop that Start/Resume set up. It takes the session and speech_plan (they must hash-match - same job), the segment_index you rendered, the audio, and a set of QA knobs: transcript, text_similarity (0–1), speaker_similarity (-1–1) and - the gate - accepted. Only when accepted is true does it write the chunk; a rejected segment is not committed, full stop. The author's code is explicit about this: "rejected speech must not be committed to the accepted manifest."

On success it returns chunk_ready_audio (the committed audio, safe to preview) and a report_json that includes the preview path it wrote into your ComfyUI output directory - the node also surfaces that preview in the UI, so you can hear exactly what got locked in.

The inputs that matter

  • session + speech_plan + segment_index - the triple that says which chunk of which job. Get the index wrong and the node will not let you commit it to the wrong slot.
  • audio - your rendered segment. It currently requires a batch size of 1; the pack enforces that with a clear error.
  • accepted - the boolean that gates the write. Wire it to your own judgment, or to the accepted output of a Verify/Studio node if you want ASR to vote first. The similarity floats exist so you can see why you're accepting or rejecting.
  • replace_existing (default false) - the escape hatch. Long-form segments are immutable unless you explicitly flip this, which is the guard that stops one bad click from silently rewriting already-accepted audio.

Installing and pairing

One install, whole pack: ComfyUI Manager → "MiniMax H3 Audio T8", or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into custom_nodes and restart. No pip deps; the H3 weights are yours to supply (and the H3 licence is region-restricted - worth remembering before you build a commercial voice pipeline on it). Everything here is experimental, so treat the immutability as real but the whole chain as a moving target across pack versions. If you're looping segments in one graph, keep the Accept node's segment_index fed from the Start node's next_index rather than hardcoding it - that's the pattern that actually survives a re-run.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (9)

NameTypeDefaultDescription
sessionH3_T8_SPEECH_LONGFORM_SESSION
speech_planH3_T8_SPEECH_PLAN
segment_indexINT00–99999
audioAUDIO
transcriptSTRING
text_similarityFLOAT0.000–1
speaker_similarityFLOAT0.00-1–1
acceptedBOOLEANfalse
replace_existingBOOLEANfalse

Outputs (2)

NameTypeDescription
chunk_ready_audioAUDIO
report_jsonSTRING