Nodes/MiniMax H3 Audio T8/MiniMax H3 Dialogue Safe Master / 对白安全混音 (EXP/T8)
ComfyUI Node

MiniMax H3 Dialogue Safe Master / 对白安全混音 (EXP/T8)

A dialogue mix that refuses to eat your words

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Dialogue Safe Master / 对白安全混音 (EXP/T8)
  • speech_audio
  • music_audio
  • ambience_audio
  • sfx_audio
  • master_audio
  • speech_stem
  • background_stem
  • report_json
speech_acceptedfalse
target_duration_seconds10.000
speech_start_seconds0.000
output_sample_rate32000
music_fit_policystrict
ambience_fit_policystrict
sfx_fit_policystrict
loop_crossfade_seconds0.25
speech_gain_db0.0
music_gain_db0.0
ambience_gain_db0.0
sfx_gain_db0.0
duck_background0.00
peak_limit_dbfs-1.0

The nightmare of auto-mixing dialogue is the one where the "smart" tool decides your actor paused too long and trims the line, or cuts the master at the last word to hit a duration. MiniMaxH3DialogueSafeMasterT8 is built to refuse both: it takes a speech stem you've already verified, plus optional music, ambience, and SFX stems, and builds an exact-duration master where speech is never silently trimmed and the master is never cut at the dialogue's end. The name is the contract.

The gate that makes it safe

speech_accepted is a required input, default false, and the tooltip is unambiguous: connect the accepted output from the pack's Speech Verify node after exact-target alignment. If it's false, the mixer rejects - it will not guess whether your speech is clean. This is the T8mars philosophy at its purest: the mixer's job starts only after an external node has vouched for the words. Feed it speech_audio (the verified stem), speech_start_seconds (where in the timeline the line begins), and target_duration_seconds, and it fits the other stems around that.

Inputs that matter

The background stems (music_audio, ambience_audio, sfx_audio) are all optional. Each has a *_fit_policy (default strict) and a *_gain_db; music/ambience can loop with loop_crossfade_seconds (default 0.25), but the sfx_fit_policy tooltip is specific: SFX can be padded/trimmed explicitly but is never looped - a gunshot doesn't loop. duck_background (0–1) deterministically attenuates all background stems while speech is active - that's your automatic ducking, in one slider. peak_limit_dbfs (default −1) is the final ceiling. output_sample_rate defaults to 32000, matching H3's audio output.

Outputs

master_audio is the deliverable; speech_stem and background_stem give you the two component mixes if you want to inspect or rebalance later, and report_json documents the choices. One honest caveat from the description: this is not source separation. It assumes you've already split the stems - it won't pull speech out of a mix for you. It's a fitter and fader with safety rails.

Installing it

From MiniMax H3 Audio T8 (T8mars/T8star, GPL-3.0). Manager search MiniMax H3 Audio T8, or:

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

restart. No forced pip extras; models to models/ by hand. H3 weights' Community License excludes the US, EU, UK, South Korea.

Where people get burned

First, skipping Speech Verify and hard-coding speech_accepted = true - the node will happily mix garbage you've told it is gold; the safety is only as good as the gate you actually connect. Second, expecting source separation; it will not do it. And third, setting a target_duration_seconds shorter than your speech: the mixer won't chop the words to fit, it'll reject or stretch the background - which is the desired behavior, but it reads like "it's broken" until you realize the target was wrong.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (18)

NameTypeDefaultDescription
speech_audioAUDIO
speech_acceptedBOOLEANfalseConnect accepted from Speech Verify after exact-target alignment. False is rejected; this mixer will not guess speech cleanliness.
target_duration_secondsFLOAT10.0000.001–36000
speech_start_secondsFLOAT0.0000–36000
output_sample_rateCOMBO320003 options: 32000, 44100, 48000
music_fit_policyCOMBOstrict3 options: strict, pad_or_trim, loop_crossfade
ambience_fit_policyCOMBOstrict3 options: strict, pad_or_trim, loop_crossfade
sfx_fit_policyCOMBOstrictSFX can be padded/trimmed explicitly but is never looped.
loop_crossfade_secondsFLOAT0.250–5
speech_gain_dbFLOAT0.0-60–24
music_gain_dbFLOAT0.0-60–24
ambience_gain_dbFLOAT0.0-60–24
sfx_gain_dbFLOAT0.0-60–24
duck_backgroundFLOAT0.000–1Deterministically attenuates all background stems while speech is active.
peak_limit_dbfsFLOAT-1.0-24–0
music_audiooptAUDIO
ambience_audiooptAUDIO
sfx_audiooptAUDIO

Outputs (4)

NameTypeDescription
master_audioAUDIO
speech_stemAUDIO
background_stemAUDIO
report_jsonSTRING