MiniMax H3 is the most prompt-sensitive video model I run locally. The same ComfyUI graph, the same seed and the same 16 GB RTX 5080 can give you a clean cinematic shot or a muddy clip with random music, and most of the difference comes from how the prompt is written. MiniMax actually publishes two official prompt writing guides for H3 on Hugging Face, one for text, image and first/last frame video and one for reference-to-video, but they are written like a spec, not a tutorial. This is my practical MiniMax H3 prompt guide: the exact structure each mode expects, copy-paste templates, and real prompts from my own workflows rewritten to match the official format.
- H3 prompts are not free text. Base modes (T2V, I2V, FL2V, last-frame) use three fields:
integrated_multimodal_description,overall_soundscapeandnon_diegetic_music. - I2V, FL2V and last-frame prompts must start with a fixed alignment line that says which picture sits at which second, followed by a blank line.
- Reference-to-video uses six sections instead:
subject_definitions,summary,retention_analysis,detailed_description,overall_soundscapeandnon_diegetic_music. - Write camera moves as motion type + amplitude + speed, give every speaker an ID like
(S1), and put spoken words inside<d>[English] ...</d>. - In my ComfyUI workflows the frame count snaps to a 17k+5 grid, so the real clip length is not always the number you typed. Use the real length in FL2V timestamps.
Why MiniMax H3 Prompts Need a Structure
H3 generates video and audio together in one pass. The prompt therefore has to carry three different jobs at once: what we see and hear on the timeline, the background sound of the whole clip, and any music only the audience hears. MiniMax’s guides split these into named fields, and they also expect specific wording when an image is pinned to a moment in time.
When I started with H3 in ComfyUI I wrote prompts the way I write them for other video models: one long paragraph with a style, an action and a sound note at the end. It works, but sound, music and timing all end up tangled in one block. The official field layout gives each of them its own place, for example a clear spot to say non_diegetic_music: N/A, which makes prompts much easier to edit and reuse between workflows.
The official sources I’m following in this post are the H3 base prompt guide (T2VA / I2VA / FL2VA / L2VA) and the H3 full-reference prompt guide. I also keep the fal.ai MiniMax H3 prompting guide open for visual inspiration, but keep in mind those are hosted results, not local Turbo renders on a 16 GB card.
The Two Official Prompt Formats
Everything in H3 prompting comes down to which family your workflow belongs to.
| Mode | What the images do | Prompt format |
|---|---|---|
| T2VA (text-to-video) | No image | Three core fields only |
| I2VA (image-to-video) | Picture 1 is the first frame | Alignment line + three core fields |
| FL2VA (first + last frame) | Picture 1 opens, Picture 2 ends | Alignment line + three core fields |
| L2VA (last frame only) | Picture 1 is the final frame | Alignment line + three core fields |
| Reference-to-video | Images, videos or audio define characters, places, style or voice | Six sections with <Subject N> labels |
The base family uses integrated_multimodal_description as the main body. The reference family uses detailed_description instead and adds the definition and retention sections on top. Mixing them up is the most common mistake I see in shared workflows.
Text-to-Video (T2VA) Prompt Template
Text-to-video has no alignment line. The prompt starts directly with the first field. The first shot opens with the style and the starting composition, and has no timestamp. Later shots start with a cut time.
integrated_multimodal_description: [Shot 1] Live-action, cinematic, a medium-wide shot frames [subject] in [place, time of day, light]. The camera [motion] as [action]. [Shot 2] At 00:04.000, the camera cuts to [new framing with new information].
overall_soundscape: [1-4 sentences of ambience, footsteps, objects, breathing].
non_diegetic_music: [instruments, tempo, how it changes] or N/A
Styles the guide lists for the opening include Cinematic, live-action, 2D-animated, 3D CG, claymation, watercolor and vintage film. If you want a full walkthrough of the graph that consumes this prompt, see my MiniMax H3 text-to-video ComfyUI workflow.
A small rule that matters: a cut should bring new information, such as a new subject, a new space or a jump in time. If you only want to get closer to the face, use a push-in inside the same shot instead of a cut.
Image-to-Video (I2VA) Prompt Template
For image-to-video, the official guide wants this exact sentence as the first line, then one blank line:
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.
integrated_multimodal_description: [Shot 1] Live-action, cinematic, the [subject] shown in <Picture 1> remains [where], preserving [appearance, clothing, position, layout]. The camera [motion] as [first action]. [Continuing action]. [Result or reaction].
overall_soundscape: ...
non_diegetic_music: ...
The recommended order is first-frame anchor, then the start of the action, then continuous development, then a result or reaction. In practice the “preserving…” part is what keeps the face and outfit from drifting in the first second. This template fits my MiniMax H3 image-to-video workflow as well.
First/Last Frame (FL2VA) Prompt Template
FL2V is where the format matters most, because the model needs to know when the second picture must be reached. The alignment line looks like this:
How the reference pictures align with the target video — Picture 1 (from Shot 1) aligns with the 0.00-second mark of the target video; Picture 2 (from Shot 1) aligns with the 6.58-second mark of the target video.
integrated_multimodal_description: [Shot 1] Live-action, cinematic, [subject] begins in the position and framing established by Picture 1. The camera [motion] as [intermediate change 1], [intermediate change 2], and [subject] settles into the pose, spacing and composition established by Picture 2 at the end of the shot.
overall_soundscape: ...
non_diegetic_music: N/A
The number at the end must be the effective video duration with exactly two decimal places. I explain below why it’s 6.58 and not 6.00 in my workflow.
The guide’s advice for the body is the opposite of what most people do. Don’t describe the two images again. Describe the path between them: how the subject moves, how the pose changes, how objects are handled and how the light or composition shifts. FL2V also favours a single shot, so only add cuts if you really want them, and make sure the last shot ends on Picture 2.
Last-Frame Only (L2VA) Prompt Template
Last-frame mode pins only the ending. The model has to invent a believable earlier state and land on your image.
How the reference pictures align with the target video — <Picture 1> (from [Shot 1]) aligns with the 6.00-second mark of the target video.
integrated_multimodal_description: [Shot 1] Live-action, cinematic, a close shot begins with [plausible earlier state], while [element visible in Picture 1] approaches. [Action that causes the change]. Toward the end, [things] settle into the exact arrangement, camera angle, lighting and final composition established by <Picture 1>.
This is handy for reveal shots and loop endings, where you already have the frame you want to finish on.
Reference-to-Video Prompt Template
Reference mode is a different language. Every reused piece of content gets a label: <Subject N> for people, places, props or styles, <Picture N> only when an image is a real frame anchor or storyboard, <Video N> for an edited or continued source video, and <Audio N> for copied or referenced sound.
subject_definitions:
<Subject 1> is the [person] in <Picture 1>, with [face, hair, clothing, key details].
summary:
[reference generation] The target video shows <Subject 1> [doing what, where].
retention_analysis:
<Subject 1> (appears in [Shot 1]): fully_preserved - [what is kept].
detailed_description:
The target video is in a [style] with [lighting and colour].
[Shot 1] [Composition]. <Subject 1>, the [short re-description], [action], [camera motion], [sound].
overall_soundscape:
...
non_diegetic_music:
...
The summary starts with a task type in brackets. The main ones are reference generation, keyframe completion, video editing, video continuation, audio reuse and audio reference, combined with + when more than one applies. Retention uses fully_preserved, partially_preserved, attribute_transfer or weak_reference. For generation tasks the guide suggests a detailed_description of roughly 350 to 500 English words, which is far longer than most people write.
One lesson from my own two-character workflows: say clearly when two references are different people. In one multi-character graph I added the line “These are TWO distinct adult men, not two versions of one man” and also stated that the images are casting and wardrobe references, not mandatory opening poses. The official format supports this naturally, because each person is its own <Subject N>. The full graph is in my MiniMax H3 reference-to-video workflow, and the single-frame version is in my H3 reference-to-image guide.
Camera Motion Vocabulary That H3 Understands
The guide defines camera motion as three parts: the motion type, the amplitude and the speed. Medium amplitude and normal speed are the default, so only write them when you want something else.
- Motion types: Zoom In/Out, Push In/Pull Out, Pan Left/Right, Truck Left/Right, Tilt Up/Down, Pedestal Up/Down, Arc Shot, Tracking Shot, Static Shot, Shake Slightly/Strongly, POV, Roll Clockwise/Counterclockwise.
- Amplitude:
with small amplitudeorwith large amplitude. - Speed:
at slow speedorat fast speed.
Write the move as a normal English sentence inside the shot, not as tags at the end. For example: “The camera pushes in with small amplitude at slow speed toward the folded letter in her hands.” Also note the difference between zoom (the lens changes, the camera stays) and push in (the camera physically moves), and between pan (the camera pivots) and truck (the camera slides sideways). They look different on screen, so pick the one you mean.
Dialogue, Voiceover, Sound and Music
Speaker IDs and Dialogue Tags
Anyone who talks or sings gets a stable ID like (S1) or (S2) that stays the same across shots. Describe the voice the first time (age, pitch, timbre, pace, accent), keep that description outside the tag, and put only the language tag and the exact words inside <d>:
The young woman with a quiet, breathy voice (S1) says: <d>[English] I get off at the next station.</d>
For a narrator, the guide uses the exact phrase says in an off-screen voiceover and adds right after the tag that the on-screen character’s lips stay closed. That last part is easy to forget, and it’s how the guide tells the model not to move the character’s lips under a narration line.
Dialogue Across Cuts
If a line continues over a cut, mark both sides with <scenetrans> and say the audio “continues seamlessly across the cut”. If the clip ends mid-sentence, use <cutoff>. Any visible text, such as a sign or a phone screen, goes in double quotes exactly as it should appear.
Soundscape vs Music
overall_soundscape is one to four sentences of ambience and physical sounds for the whole clip. Don’t repeat dialogue there. non_diegetic_music is one to three sentences about score the characters can’t hear, described by instruments, tempo and dynamics rather than mood words. A radio playing inside the scene is not non-diegetic; it belongs in the main description. Use N/A for no music. Only use N/A for the soundscape if you really want total silence.
A Real Prompt From My Workflow, Before and After
Here’s a reference-to-video prompt I actually used in one of my single-reference Turbo workflows for an anime cooking clip. It already followed the six-section layout, but it broke a few of the formatting rules:
detailed_description:
The target video is a 5-second anime cooking scene. [Shot 1] Extreme close-up. Noki's small, delicate hands place a fresh raw chicken breast onto a light wooden cutting board at [2s]. ... Noki says in English with a nervous but determined tone: "Alright, chicken! You're the star of the show today. Don't let me down, okay? ...Please don't let me down."
overall_soundscape:
Gentle kitchen ambience. At [2s]: soft, wet thud as chicken meets board. At [3s]: subtle cutting board creak. At [4s]: Noki's slightly nervous laugh, higher pitch than usual.
non_diegetic_music:
Playful piano, light percussion.
Problems compared with the official guide: the spoken line isn’t in a <d> tag and has no speaker ID, the [2s] markers aren’t the guide’s timestamp format, the laugh is a timed event that belongs in the description rather than the soundscape, the music uses a mood word (“playful”) instead of tempo and dynamics, and <Picture 1> was used as the subject label instead of a <Subject 1>. Rewritten to match the guide, the key parts become:
subject_definitions:
<Subject 1> is Noki in <Picture 1>, a cute 18-year-old anime girl with shoulder-length wavy dark brown hair, a small cowlick, a pastel pink apron with a heart pocket over a cream long-sleeve shirt.
summary:
[reference generation] An extreme close-up of <Subject 1>'s hands placing a raw chicken breast on a cutting board while she nervously talks to it.
retention_analysis:
<Subject 1> (appears in [Shot 1]): partially_preserved - only her hand proportions, skin tone and apron sleeve edge are visible; face and cowlick are out of frame.
detailed_description:
The target video is a soft 2D-animated anime cooking scene with warm window light.
[Shot 1] An extreme close-up shows a light wooden cutting board in a warm, blurred kitchen. <Subject 1> (S1)'s small hands lower a pink raw chicken breast onto the board, which lands with a soft wet thud. The camera pushes in with small amplitude at slow speed. Off-screen, <Subject 1> (S1) says in a nervous but determined young female voice: <d>[English] Alright, chicken! You're the star of the show today. Don't let me down, okay? Please don't let me down.</d> She gives a short, slightly high-pitched nervous laugh.
overall_soundscape:
Gentle kitchen room tone continues throughout, with the soft creak of the cutting board as the chicken settles.
non_diegetic_music:
Light piano at a moderate tempo with soft brushed percussion, staying low in volume under the voice.
I’m showing this as a formatting example, not a side-by-side quality test. I haven’t rendered both versions on the same seed, so I won’t claim a measured difference. What I can say is that the rewritten version is far easier to adjust: if I want silence I change one field, and if I want a different voice I change one description.
The ComfyUI Duration Gotcha for FL2V Prompts
This one isn’t in the official guide, it comes from my own graphs. My H3 workflows don’t take frames directly. They take a duration in seconds and convert it with a math node that rounds to 24 fps and then snaps the frame count up to the next value on a 17k+5 grid:
max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17
Working that expression through gives these real lengths at 24 fps:
| Duration you type | Frames | Effective length |
|---|---|---|
| 5.0 s | 124 | 5.17 s |
| 6.0 s | 158 | 6.58 s |
| 8.0 s | 192 | 8.00 s |
The guide says the FL2V and L2VA alignment line should use the effective video duration. So if your graph converts 6 seconds into 158 frames, write 6.58-second mark, not 6.00. Or, simpler, pick a duration that lands exactly on the grid, like 8 seconds. The same applies to any shot cut times: keep them inside the real length.
Also remember that longer clips cost more memory. If a longer FL2V clip crashes on your card, my MiniMax H3 out of memory fixes for 16 GB cover the stage-by-stage fixes.
Common H3 Prompt Mistakes
- Using the wrong family.
integrated_multimodal_descriptionbelongs to T2V/I2V/FL2V;detailed_descriptionwith subject labels belongs to reference mode. - Forgetting the blank line after the alignment instruction.
- Re-describing both FL2V frames instead of the motion between them.
- Adding a timestamp to Shot 1. Only later shots get
At MM:SS.mmm, and those times must increase. - Leaving music unspecified when you don’t want any. Write
non_diegetic_music: N/A. - Translating dialogue or signs. The guide keeps spoken words and visible text verbatim in their original language, while the rest of the prompt is in English.
- Using a reference image as a pose lock by accident. If an image only defines a character, cite it inside the
<Subject N>definition and don’t give it its own<Picture N>line.
Frequently Asked Questions
Does MiniMax have an official H3 prompt guide?
Yes. MiniMax publishes two English guides in the MiniMax-H3 Hugging Face repo: one for T2VA, I2VA, FL2VA and L2VA, and one for full-reference mode. Both are linked at the top of this post.
Can I write a plain English prompt for MiniMax H3 in ComfyUI?
You can, and H3 will still render something. I used plain paragraphs in some early workflows. The structured fields simply give you more control over sound, music, speakers and image timing.
Can I use Hindi or another language for dialogue?
The guide keeps the prompt in English but preserves dialogue in its original language inside the <d> tag with a language label like [English]. Visible on-screen text is also kept exactly as written in quotes.
How long should an H3 prompt be?
For reference generation, the official guide suggests about 350 to 500 English words for detailed_description. The base guide doesn’t give a word count, but every detail should map to something visible or audible.
How do I stop H3 from adding background music?
Set non_diegetic_music: N/A and describe only the ambience you want in overall_soundscape.
What time should I put in the FL2V alignment line?
The effective length of the clip with two decimals. If your ComfyUI graph rounds frames up, as mine do, calculate the real length from the frame count and fps.
Final Thoughts and Related H3 Workflows
H3 is a strong local model, but it rewards prompts that read like a shot list with a sound sheet attached. Start with the template for your mode, keep the alignment line exact, describe motion instead of still images, and be explicit about speakers and music. Then change one field at a time when you iterate.
If you’re building the graphs themselves, these are the H3 workflows these templates plug into: