Nodes/MiniMax H3 Audio T8/MiniMax H3 Speech Studio / 一站式语音 (EXP/T8)
ComfyUI Node

MiniMax H3 Speech Studio / 一站式语音 (EXP/T8)

Condition, sample, decode, release

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Speech Studio / 一站式语音 (EXP/T8)
  • model
  • clip
  • video_vae
  • audio_vae
  • voice_profile
  • speech_plan
  • speech_guard
  • audio
  • conditioned_prompt
  • report_json
  • generated_av_latent
  • transcript
  • text_similarity
  • speaker_similarity
  • accepted
segment_index0
seed0
render_seconds10.00
resolution32
steps20
sampler_nameres_multistep
schedulersimple
shift_video12.00
shift_audio3.00
trim_modenone
verify_modeoff
asr_model_directory
asr_languageauto
min_similarity0.85
unload_asr_after_verifytrue
speaker_check_modeoff
speaker_model_directory
min_speaker_similarity0.86
unload_speaker_after_verifytrue
peak_limit_dbfs-1.0
release_policyclear_execution_cache

The pack's speech chain is normally four or five nodes long: voice profile → plan → conditioning → sampler → audio decode → release. MiniMaxH3SpeechStudioT8 collapses that into a single node so you can go from "script" to "speech wav" without threading a half-dozen wires. It's the one to reach for when you just want H3 to read a line and hand you clean audio - and it's the honest baseline against which the fancier multi-node rigs are measured.

What it does

The node description says it plainly: "Native ComfyUI speech graph: conditioning → sampler → audio-only decode → explicit release." Feed it the four things every H3 run needs - model, clip, video_vae, audio_vae - plus a voice_profile and a speech_plan, and it builds the audio-first conditioning, runs the sampler, decodes audio only, and requests a VRAM release. It also reports the transcript it produced, similarity scores, and an accepted boolean so you can gate a save node on quality without writing your own plumbing.

The quality baseline is stock res_multistep + simple scheduler at 20 steps - nothing exotic, and that's deliberate. "Stock is the initial quality baseline" is the author telling you not to hunt for a magic sampler before you've heard what the plain one does.

The inputs that matter

  • voice_profile + speech_plan - the outputs of the Voice Profile and Speech Plan nodes. Described voices render as T2VA; reference voices render as Ref2VA with a dark anchor frame and your audio as the identity reference.
  • render_seconds (5.17–15.08) - the explicit H3 render window, snapped to the 17n+5 frame grid. Set it; don't let the text length guess it.
  • resolution - 32, 64, or 128 pixels. This is a tiny audio canvas; H3 generates speech at low spatial resolution and it works, which surprises everyone the first time.
  • seed, steps, sampler_name, scheduler - the sampler knobs, defaults are fine.
  • verify_mode and speaker_check_mode - the interesting extras. Turn verify_mode on and, when asr_model_directory points at a faster-whisper CTranslate2 model, the node runs ASR on its own output and reports text_similarity, transcript, and accepted. Speaker checking does the same for identity via a WavLM X-Vector model. Both default off and both require model files you supply - the ASR check runs on CPU and unloads afterwards by default.

Outputs worth knowing: audio (wire to a save/preview), generated_av_latent (the raw joint latent, if you want to re-decode or inspect), plus transcript, text_similarity, speaker_similarity, and accepted for QA gating.

Installing and gotchas

Standard pack install: ComfyUI Manager → search "MiniMax H3 Audio T8", or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into custom_nodes and restart. No pip dependencies beyond what ComfyUI ships - but you must supply the H3 diffusion model, Qwen3-VL CLIP, video VAE and audio VAE, because the pack won't download them (and the H3 weights are licence-restricted in parts of the West). If you enable verification without a faster-whisper model in place, expect an explicit error, not a silent skip - that's by design.

Common issues

The two things people actually hit: forgetting the VAE (H3 wants two - a video VAE and an audio VAE, and they're not interchangeable), and treating render_seconds as approximate. It isn't - it's the trained-window contract, and going outside 5.17–15.08 errors out. And because this is one big experimental node, when it fails the report_json is your best clue; the author intends it as the diagnostic surface.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (28)

NameTypeDefaultDescription
modelMODEL
clipCLIP
video_vaeVAE
audio_vaeVAE
voice_profileH3_T8_VOICE_PROFILE
speech_planH3_T8_SPEECH_PLAN
segment_indexINT00–9999
seedINT00–18446744073709550000
render_secondsFLOAT10.005.17–15.08
resolutionCOMBO323 options: 32, 64, 128
stepsINT201–1000
sampler_nameCOMBOres_multistep45 options: res_multistep, dual_clock_euler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, +39
schedulerCOMBOsimple10 options: simple, native_flow, sgm_uniform, karras, exponential, ddim_uniform, +4
shift_videoFLOAT12.000.01–100
shift_audioFLOAT3.000.01–100
trim_modeCOMBOnone2 options: none, conservative_energy
verify_modeCOMBOoff3 options: off, verify_only, trim_exact_target
asr_model_directorySTRINGOptional CPU faster-whisper CTranslate2 model directory. Required only when verify_mode is not off.
asr_languageCOMBOauto12 options: auto, Arabic, Chinese, English, French, German, +6
min_similarityFLOAT0.850–1
unload_asr_after_verifyBOOLEANtrue
speaker_check_modeCOMBOoff3 options: off, report_cosine, require_threshold
speaker_model_directorySTRING
min_speaker_similarityFLOAT0.860–1
unload_speaker_after_verifyBOOLEANtrue
peak_limit_dbfsFLOAT-1.0-24–0
release_policyCOMBOclear_execution_cache3 options: keep_loaded, clear_execution_cache, unload_all_models
speech_guardoptH3_T8_SPEECH_GUARD

Outputs (8)

NameTypeDescription
audioAUDIO
conditioned_promptSTRING
report_jsonSTRING
generated_av_latentLATENT
transcriptSTRING
text_similarityFLOAT
speaker_similarityFLOAT
acceptedBOOLEAN