Nodes/MiniMax H3 Audio T8/MiniMax H3 Speech Conditioning / 语音条件 (EXP/T8)
ComfyUI Node

MiniMax H3 Speech Conditioning / 语音条件 (EXP/T8)

The node that turns 'speak this line in this voice' into H3 conditioning

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Speech Conditioning / 语音条件 (EXP/T8)
  • clip
  • video_vae
  • audio_vae
  • voice_profile
  • speech_plan
  • speech_guard
  • positive
  • av_latent
  • conditioned_prompt
  • spoken_text
  • plan_json
  • report_json
segment_index0
render_seconds10.00
resolution32

H3 doesn't have a separate TTS model. Speech, dialogue and vocals are all generated by the same joint AV transformer that draws the picture - which is why this pack's speech nodes work the way they do. MiniMaxH3SpeechConditioningT8 is the front door of that speech pipeline: it takes your text, your voice choice, and your clip/VAEs, and builds the native H3 conditioning that a sampler turns into audible speech. And it does it without loading a model - this node is pure conditioning assembly, so it's cheap to run and easy to iterate on.

This is the node that decides which voice-generation route H3 uses:

  • Described voice - you describe the voice in words; it goes down the T2VA route.
  • Reference voice - you supply a voice profile built from a reference audio clip; it uses the Ref2VA route with a dark image as the visual anchor, since there's no real picture content.

The README is explicit that this upstream "TTS" is H3 generative audio, not deterministic phoneme TTS - think of it as the model acting out the line, not synthesizing it phonetically.

The inputs that matter

  • clip, video_vae, audio_vae - the standard H3 model pieces. Wire the same ones the rest of your workflow uses.
  • voice_profile - an H3_T8_VOICE_PROFILE (built by the pack's voice profile nodes, or from a reference clip).
  • speech_plan - an H3_T8_SPEECH_PLAN holding the text, speaker and timing for this segment.
  • segment_index (0) - which segment of the plan to render.
  • render_seconds (10) - the H3 render window. The tooltip is the important part: it's aligned to the 17n+5 frame grid and is not inferred from text length. Set it explicitly.
  • resolution (32) - the audio latent resolution (32/64/128).
  • speech_guard (optional) - wire the guard from MiniMaxH3SpeechGuardT8 here so an abnormal exit can release models.

The outputs

positive (CONDITIONING) feeds your sampler; av_latent is the empty joint AV latent to start sampling from. The text diagnostics - conditioned_prompt, spoken_text, plan_json, report_json - let you verify the model saw exactly what you intended before you burn a sampling run.

How it sits in the workflow

The canonical speech graph is: plan → Conditioning → sampler → audio-only decode → release. The pack's starter examples live in examples/workflows/05-speech-dialogue/ - 2026-08-10_H3_Speech_Described_Stock20_EXP.json for a described voice, 2026-08-10_H3_Speech_Reference_Clone_Stock20_EXP.json for a reference/clone voice. Recommended order of battle: get a described voice working first, then add a reference clip, then multi-speaker.

Install

Same pack as everything here - ComfyUI Manager, search "MiniMax H3 Audio T8", or

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

then restart. No extra pip packages for this node; you still supply the H3 model, clip, VAEs and any reference audio yourself.

Where people get tripped

  • render_seconds is not "how long the line is." It's the H3 window and snaps to 17n+5 frames. Too short and the line gets cut, not auto-extended.
  • Expecting phoneme-perfect lip sync. The pack says it plainly: exact lip sync needs a dedicated lip/facial retarget tool after H3, not this node.
  • Treating clone as a guarantee. The pack's own multilingual validation found clone WER medians of 0 but a mean of 0.78 across its historical set - some clones add extra or off-target speech. Reference voice is a strong hint, not a locked identity.

It's an experimental node (everything speech in this pack is), so test on a single short segment before committing to a full dialogue render.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (9)

NameTypeDefaultDescription
clipCLIP
video_vaeVAE
audio_vaeVAE
voice_profileH3_T8_VOICE_PROFILE
speech_planH3_T8_SPEECH_PLAN
segment_indexINT00–9999
render_secondsFLOAT10.005.17–15.08Explicit H3 render window. It is aligned to 17n+5 frames and is not inferred from text length.
resolutionCOMBO323 options: 32, 64, 128
speech_guardoptH3_T8_SPEECH_GUARD

Outputs (6)

NameTypeDescription
positiveCONDITIONING
av_latentLATENT
conditioned_promptSTRING
spoken_textSTRING
plan_jsonSTRING
report_jsonSTRING