Nodes/MiniMax H3 Audio T8/MiniMax H3 Joint Dialogue Conditioning / 多人同段条件 (EXP/T8)
ComfyUI Node

MiniMax H3 Joint Dialogue Conditioning / 多人同段条件 (EXP/T8)

Two characters, one render, zero identity guarantees — the honest multi-speaker dialogue experiment

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Joint Dialogue Conditioning / 多人同段条件 (EXP/T8)
  • clip
  • video_vae
  • audio_vae
  • dialogue_plan
  • speech_guard
  • positive
  • av_latent
  • conditioned_prompt
  • report_json
start_turn0
turn_count2
render_seconds10.00
resolution32

Want two characters actually talking to each other in the same H3 clip? This node builds the conditioning for exactly that - a 2-3 speaker joint Ref2VA experiment that renders dialogue between distinct voices in one shot. And you need to read the description's fine print before you get excited, because it's the most honest sentence in the pack: this is not the stable dialogue path, and it must not be described as identity-safe until leakage and identity-swap tests pass. H3's joint audio-video transformer is powerful, but "two reference voices in one context" is exactly the kind of thing where one character's timbre bleeds into the other's line.

It lives in T8/MiniMax H3/Speech/Experimental and sits alongside the pack's audio-integrity and speaker-routing audit nodes. The pack's own posture is that speech work should be gatekept - preflight checks, ABSTAIN instead of silent guesses - and this node inherits that caution: it's an unverified experiment that exists so people can try it, not so people can trust it.

How it works

You hand it a dialogue_plan (an H3_T8_SPEECH_PLAN from the pack's speech nodes), the clip, and both VAEs - the video_vae and the audio_vae, because H3 keeps video and audio as separate latent clocks (24fps video, 40Hz audio) even inside one joint AV latent. It then builds conditioning for turn_count speakers starting at start_turn, over render_seconds, and encodes it into both the positive CONDITIONING and an av_latent you can feed a sampler.

turn_count is locked to 2 or 3, and render_seconds is bounded at 5.17–15.08 - those bounds mirror H3's frame-grid constraints (22, 124, 362 frame counts) rather than being arbitrary. resolution defaults to 32, which is the H3 grid step. Set these to anything off-grid and you'll fight the model instead of using it.

The speech_guard optional input is where you'd attach the pack's speech reliability machinery if you want it.

The inputs that matter

  • dialogue_plan - where the per-turn lines and voices come from. This is the real content; without it there's nothing to condition.
  • turn_count (2–3) and start_turn - how many speakers and where in the plan you begin. Keep it at 2 for your first run.
  • render_seconds - shorter is your friend. 5–6 seconds teaches you whether the experiment works at all before you spend GPU on 15.
  • resolution - 32 is the grid; leave it.

Outputs

positive (Conditioning), av_latent (the joint AV latent to sample), conditioned_prompt (the prompt string the node actually built - read it, because the media tags are where this experiment tends to fall apart), and report_json.

Installing it

Pack install again: ComfyUI Manager → "MiniMax H3 Audio T8", or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes, then restart. No mandatory pip deps and no auto-downloaded weights; you supply the Qwen3-VL CLIP, the video/audio VAEs, and the H3 model.

Common issues

Voices bleed / one speaker sounds like the other. Expected - this is the leakage the node warns about. It's an experiment for a reason. Don't ship it as identity-safe; that's not what it is yet.

"Task type / tags mismatch" errors. Check the conditioned_prompt output and the speech plan's media references. The pack's strict-tag philosophy means a wrong <Audio N> reference fails loudly instead of guessing - reconnect the plan and re-check which ordinal each voice maps to.

CategoryT8/MiniMax H3/Speech/Experimental

Inputs (9)

NameTypeDefaultDescription
clipCLIP
video_vaeVAE
audio_vaeVAE
dialogue_planH3_T8_SPEECH_PLAN
start_turnINT00–9999
turn_countINT22–3
render_secondsFLOAT10.005.17–15.08
resolutionCOMBO323 options: 32, 64, 128
speech_guardoptH3_T8_SPEECH_GUARD

Outputs (4)

NameTypeDescription
positiveCONDITIONING
av_latentLATENT
conditioned_promptSTRING
report_jsonSTRING