MiniMax H3 Dialogue Without Burned-In Subtitles: Quotation Marks Mean Print, Tags Mean Speak
A lot of the dialogue advice for MiniMax H3 tells you to do the one thing the model reads as an instruction to print words on screen.
Search for how to write talking scenes in H3, the open video model that generates picture and sound together, and you will find guides telling you to put the spoken line in quotation marks. One popular third-party guide says it directly: "Put the actual dialogue in quotation marks." It is natural advice. That is how scripts and novels mark speech.
MiniMax's own prompt writing guide, which ships with the model, uses quotation marks for something else entirely. In that guide, double quotes hold "visible on-screen text": a neon sign, a banner, a caption. So when you write a character's line in quotes, you are telling H3 two things at once. Say these words, and also show them. The result is the problem a lot of people blame on the model: a decent talking take with the line stamped across the bottom of the frame like a foreign film nobody subtitled on purpose.
On October 19 a community trainer released an add-on built to stop exactly this. It is useful. But the more important fix is free, and it is a writing habit.
Why burned-in text ruins a take
A stray subtitle is not a small flaw. It sits in the picture, so you cannot mute it or swap it out. You can try to paint it away frame by frame, but text moves with the shot and crosses faces and hands. In practice, a take with burned-in words is a take you throw away.
That makes every subtitle leak a full-price reroll. On a scene with four lines of dialogue, a model that leaks one line in three will eat your budget fast. And because the leak comes from how you wrote the prompt, rerolling with the same prompt just rolls the same dice again.
The official grammar, in plain terms
MiniMax's guide gives H3 a small vocabulary for speech. Learn it once and the subtitle problem mostly disappears.
Spoken words go inside speech tags. The guide wraps every line in <d> and </d>, with a language label at the start. Its own example:
The young woman with a quiet, breathy voice (S1) says: <d>[English] I get off at the next station.</d>
Only the language label and the exact words go inside the tags. Who is speaking, how they sound and what they are doing all stay outside.
Quotation marks are for words you want to see. Signs, labels, a banner. The guide's example is a neon sign "reading" its text in double quotes.
Every speaker gets a fixed ID. The guide labels voices (S1), (S2) and so on, keeps the same label across shots, and gives no label to characters who never make a sound. That stops the model from deciding the wrong person said the line.
Voiceover has its own phrase. Use "says in an off-screen voiceover," and after the line, state that the on-screen character's lips stay closed. Otherwise H3 tends to animate a mouth.
Cuts and cut-offs have markers. If a line continues across a cut, the guide puts <scenetrans> at both sides of the cut. If the clip ends mid-sentence, it uses <cutoff>.
That is the whole grammar. It reads a bit like a screenplay written for a machine, and that is the right way to think about it.
The add-on: a backstop for stubborn cases
The new release is Justlora's Subtitle-Control add-on for MiniMax H3, a small file (about 66 MB) you load on top of the model. Its card says it is meant to fix "subtitle leakage issues and restore strong prompt controllability over burned-in text." It is free to use under the Apache 2.0 licence, while H3 itself stays under MiniMax's community licence.
Read its instructions and you find the same rule as the official guide: put dialogue in <d>[Language] text</d> and keep quotation marks out, because, as the card puts it, quotes trigger on-screen subtitles. The add-on trains the model to respect that rule more reliably. It does not replace it.
So the order is clear. Fix your prompt writing first. Reach for the add-on when a scene still leaks after the prompt is correct.
Put this into practice
Here is a routine for a two-person talking scene. It works in any H3 setup, hosted or local, and the add-on step is optional.
1. Convert your script before you prompt. Take your lines from the script and rewrite each one into the tag format. "Are we going out tonight?" becomes <d>[English] Are we going out tonight?</d>. Strip every quotation mark from inside the tags, including ones in the middle of a sentence. If a character quotes someone else, rephrase it.
2. Cast your speakers. Give each speaking character an ID and a short voice description the first time they appear: The older man with a low, gravelly voice (S1). Use the same ID every time he speaks. Leave non-speaking extras without one.
3. Keep direction outside the tags. Delivery notes ("hesitates," "laughs before answering") and action belong in the description around the tag. Anything inside the tag gets spoken.
Here is the difference in one line. The version that invites a subtitle:
A tired nurse at the end of her shift says "I can't do another double" and drops her bag.
The version written in H3's grammar:
A tired nurse with a flat, hoarse voice (S1) drops her bag on the bench and says: <d>[English] I can't do another double.</d>
Same words, same action. The second one only asks the model to say them.
4. Put real on-screen text in quotes, deliberately. If the scene needs a shop sign or a phone screen, that is the one place quotes belong. Keep it short, and expect to check its spelling.
5. Render one test at your normal settings. Watch the bottom third of the frame for the whole clip. A leak often appears for only part of a line.
6. If it leaks, check the prompt before blaming the model. Look for a stray quote mark, a line written outside its tags, or a speaker without an ID. Fix and rerun at the same seed (the number that makes a result repeatable) so you know the change made the difference.
7. Only then, add the add-on. In ComfyUI, put the file contextir-hybird-v0.1.safetensors in your add-ons folder (models/loras) and load it at full strength, 1.0. The card was built for a fast eight-pass setup, so follow its suggested render settings rather than mixing it into a slow, high-quality render and hoping. Rerun the same scene at the same seed and compare.
8. Add captions in the edit, if you want them. Burned-in text from a model can never be fixed. Captions from your editor can be corrected, translated and turned off. If a client wants subtitles, that is where they belong.
The honest limits
The add-on's evidence is thin. The author calls it "an experimental exploration release," says it cuts leaks "in most scenarios," and asks users to report the bugs they hit. The only example is one 12-second clip of a Chinese period-drama conversation. There are no numbers. Treat it as a tool to try, not a fix to rely on.
The release looks rushed. The file name does not match the project name, and the card's description of which parts of the model it changes does not line up with the list of parts it actually targets. Neither stops it working, but both are a reason to test on a throwaway scene first.
It is tuned for a narrow setup. The card recommends a specific fast setup that finishes in eight passes. If your workflow is different, you are outside what the author tested.
The prompt fix is not perfect either. The add-on's author says keeping quotation marks out of the tags avoids subtitles, and MiniMax's guide reserves quotes for on-screen text. Neither claims leaks disappear. Budget for an occasional reroll.
The licence follows the base model. The add-on is Apache 2.0, but every frame still comes out of MiniMax H3, so its community licence applies to your use. Read it before client work.
On-screen text you do want is still hard. Quotes are the right way to ask for a sign, but readable, correctly spelled text in video is still unreliable. Plan to add critical text in the edit.
What this asks of you
The subtitle leak looks like a model flaw, and partly it is. Mostly, though, it is a translation problem between how writers mark speech and how this model reads it. The most popular advice is written for people, not for H3.
That is worth remembering beyond this one model. Video models are starting to ship their own prompt grammars, and the official guide is usually the most boring document in the download. It is also the one that tells you what your punctuation means.
So before your next talking scene, open MiniMax's guide, convert one page of your script into its tags, and render a single test. If the subtitles stop, you saved every reroll that habit would have cost. If they do not, you now know your prompt is clean, and the add-on is the next thing to try.