Nodes/ComfyUI-MiniMax-H3-Guide/MiniMax H3 Dialogue Event (Plan v2)
ComfyUI Node

MiniMax H3 Dialogue Event (Plan v2)

Attaching dialogue to a shot

By ethanfel·Created 22 days ago·Updated 14 days ago· 207
MiniMax H3 Dialogue Event (Plan v2)
  • h3_plan
  • h3_plan
  • dialogue_preview
speaker
languageEnglish
exact_text
delivery
voice_modeOn-screen speech
continuity_modeComplete in this Shot
start_offset_seconds-1.00

H3's dialogue tags are where a lot of hand-written prompts fall apart. The exact words go inside a <voice>-style tag, the timing has to be explicit, and if a line spans a cut you need special cross-cut markers - miss them and the speech breaks or the model improvises words you never asked for. Dialogue Event (Plan v2) attaches one exact vocal event to the current Shot and lets the compiler handle all of that bookkeeping, including the speaker IDs.

The node attaches to "the most recently opened Shot" in the chain, which is why the ordering works the way it does: you build a Shot, then attach Dialogue Events to it, and the chain carries the context forward. Prompt Merge assigns S1, S2, and later speaker IDs from the actual playback order of the events - you never type them.

Inputs that matter

  • speaker - the same human alias selected by a voice Audio Reference. On-screen speech must resolve to an upstream Subject.
  • language - written inside the final H3 dialogue tag (default English).
  • exact_text - the words. "Every punctuation mark you enter is preserved inside that tag," per the tooltip - so commas and question marks are exact, and H3 will try to lip-sync to them.
  • delivery - optional target delivery ("urgent, hushed"). This does not replace a connected voice timbre; they're separate axes.
  • voice_mode - On-screen speech, Off-screen speech, or Voiceover.
  • continuity_mode - the interesting one. "Complete in this Shot" is the default; the two cross-cut choices (Continues into next / Continues from previous) make Prompt Merge insert the <scenetrans> marker in both parts of the split line; "Cut off by video ending" puts a <cutoff> in the final shot.
  • start_offset_seconds - -1 leaves placement automatic, 0 starts at the Shot opening, 1.25 starts 1.25s in. Prompt Merge emits the absolute timestamp.

The [d] marker

Here's the part most people miss on first read: each [d] placeholder in the Shot's description consumes the next attached Dialogue Event in chain order. So if your Shot text is "She turns. [d] She smiles. [d]", the two [d] markers pull the first two attached events to exactly those spots. Events without a marker fall back to the legacy after-Shot placement. The dialogue_preview output shows the provisional speaker ID so you can confirm the order before merging.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide

Restart, browse MiniMax H3 → Plan v2. No extra dependencies.

Gotchas

  • The voice has to exist. On-screen speech that doesn't resolve to an upstream Subject is rejected. Set up your voice Audio Reference and Subject first.
  • Exact text is exact. Type the words once, correctly - the compiler won't clean them up for you, and it preserves punctuation on purpose.
  • Cross-cut lines need the matching continuity mode. A line that continues across a cut with continuity_mode left at "Complete in this Shot" won't get the <scenetrans> split, and the model may just... not finish the sentence. The two cross-cut choices exist precisely to fix that.

If you're coming from the pack's earlier prompt-guide era, this node is one of the clearest wins of Plan v2: dialogue that used to be a fragile hand-assembled tag is now validated metadata, and the exact-word guarantee means you stop fighting the model's paraphrasing.

CategoryMiniMax H3/Plan v2

Inputs (8)

NameTypeDefaultDescription
h3_planMINIMAX_H3_PLAN_V2Connect a Shot or earlier Dialogue Event from the same current Shot.
speakerSTRINGUse the same human alias selected by a voice Audio Reference. On-screen speech must resolve to an upstream Subject.
languageSTRINGEnglishWritten inside the final H3 dialogue tag.
exact_textSTRINGOnly these exact words are placed inside the H3 dialogue tag. Every punctuation mark you enter is preserved inside that tag.
deliverySTRINGOptional target delivery; this does not replace a connected voice timbre.
voice_modeCOMBOOn-screen speechOn-screen speech, off-screen speech, or explicit voiceover.
continuity_modeCOMBOComplete in this ShotUse the two matching cross-cut choices when one utterance spans adjacent Shots; Prompt Merge inserts <scenetrans> in both parts. Use cutoff only in the final Shot when the video interrupts speech.
start_offset_secondsFLOAT-1.00-1–15Dialogue start relative to the current Shot: -1 leaves placement automatic, 0 starts at the Shot opening, and 1.25 starts 1.25 seconds after the Shot begins. Prompt Merge emits the absolute timestamp.

Outputs (2)

NameTypeDescription
h3_planMINIMAX_H3_PLAN_V2Connect to another Dialogue Event, the next Shot, or Prompt Merge.
dialogue_previewSTRINGShot attachment, exact text, delivery, and provisional first-vocal-event speaker ID.