Nodes/MiniMax H3 Audio T8/MiniMax H3 Speech Assemble / 语音时间线 (EXP/T8)
ComfyUI Node

MiniMax H3 Speech Assemble / 语音时间线 (EXP/T8)

Stitch rendered speech turns into one track and get the SRT for free

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Speech Assemble / 语音时间线 (EXP/T8)
  • speech_plan
  • audio_segments
  • audio
  • timeline_json
  • srt
  • vtt
output_sample_rate32000
crossfade_seconds0.060
peak_limit_dbfs-1.0

Render a multi-line dialogue and you end up with a pile of separate AUDIO clips - one per turn - and a timing problem: where exactly does each line start and end once they're all real audio? MiniMaxH3SpeechAssembleT8 is the pack's answer. It takes your speech_plan plus the rendered turn segments and assembles them into one continuous track on exact sample boundaries, then emits a timeline JSON and the SRT/VTT subtitles based on the actual audio boundaries - not the plan's wishes.

That last bit is the genuinely useful part. The SRT/VTT are built from where the audio actually starts and stops after assembly, so if H3 delivered a line half a second late, your subtitles reflect reality rather than the script. The tooltip on the node calls it "planned-text SRT/VTT" - the text comes from the plan, the timing comes from the real audio.

The inputs

  • speech_plan - the H3_T8_SPEECH_PLAN that defined the turns.
  • audio_segments - an autogrow input (prefix audio_segment_): connect each rendered turn's AUDIO in order, one wire per segment, up to 100.
  • output_sample_rate (32000) - the H3-native rate; 44100/48000 available if your downstream needs them.
  • crossfade_seconds (0.06) - tiny crossfade at turn seams so you don't hear clicks at boundaries.
  • peak_limit_dbfs (-1) - a light limiter so the assembled track doesn't blow out when turns stack.

Outputs: audio (the assembled track), timeline_json, srt, and vtt.

The workflow around it

Turn rendering in this pack is: plan → MiniMaxH3SpeechConditioningT8 per segment → sampler → MiniMaxH3SpeechDecodeT8 → then all the decoded turns flow into this node. The two-speaker starter workflow examples/workflows/05-speech-dialogue/2026-08-09_H3_Speech_Dialogue_Two_Speaker_Stock20_EXP.json shows the whole thing, and the author's suggested order of operations is to nail a single described voice first, then add a reference voice, then go multi-speaker.

Install

Same pack, same drill - Manager search "MiniMax H3 Audio T8", or

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8

then restart ComfyUI. No extra pip packages.

Things that bite

  • Order matters. The segments wire into the autogrow list in a fixed order - segment 1 in audio_segment_1, etc. Reorder the plan's turns and the assembly follows the wires, not your intent.
  • This is a mixer, not a verifier. If H3 garbled a line, the SRT still prints the planned text. The pack's whole speech-validation apparatus (fixed Whisper transcription scoring) exists precisely because you can't trust the plan's text was actually spoken. Check the transcript before you publish subtitles.
  • Exact sample boundaries mean no sloppy gaps - but also no fancy ducking of music under dialogue. That's a mixing concern outside this node's job.

It's an experimental node in an experimental speech family, so treat the output as a draft to be listened to. What you get back - one synced track plus real-timing subtitles - is the kind of thing that usually takes a DAW and an afternoon, which is why it earns its place at the end of the speech chain.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (5)

NameTypeDefaultDescription
speech_planH3_T8_SPEECH_PLAN
output_sample_rateCOMBO320003 options: 32000, 44100, 48000
crossfade_secondsFLOAT0.0600–0.5
peak_limit_dbfsFLOAT-1.0-12–0
audio_segmentsCOMFY_AUTOGROW_V3

Outputs (4)

NameTypeDescription
audioAUDIO
timeline_jsonSTRING
srtSTRING
vttSTRING