A Practical H3 Video Guide
Why your video looks like a fever dream
Good AI video is not luck, it's control: you decide every shot, every face and every prop, and the model just renders it.
We've all been there. You type "a woman walks into a bar, cinematic", hit generate, and get a lady with three different haircuts, a bar that turns into a bus station halfway through, and a camera that moves like it had four espressos. The model didn't fail. It did exactly what you asked, which was almost nothing, and filled the rest with whatever it felt like.
This guide is the workflow I use with MiniMax H3 for my Civitai videos (meme stuff, contest entries, recurring characters). Every tip here has a reason behind it that you can test yourself in an afternoon. No magic words, no "add 8K masterpiece trending on ArtStation". Just treating the model like a very talented intern who has zero imagination you can trust.
Quick facts so we're on the same page: H3 generates up to 15 seconds per pass at 24 fps with native audio, and its Ref2VA mode accepts up to 9 images, 3 videos and 3 audio clips as references (12 files max). Its text encoder is a big Qwen3-VL model, which matters later: it can actually read and follow a long, structured prompt. (model card summary)
Rule zero: freedom is the enemy
Every detail you don't specify gets filled with the statistical average of the training data, and the average is boring and unstable.
That's not an opinion, it's how these models work. A diffusion model turns noise into the most likely video given your conditioning. Less conditioning means a wider range of "likely", so you get generic results and, worse, different answers to the same question from one frame to the next. That's where the morphing faces and drifting backgrounds come from.
So the game is simple: shrink the space of possible outputs until only the video you want fits in it. You do that with three tools, in order of strength:
Reference images: they show the model exactly what something looks like. Strongest lock.
A detailed, timed prompt: it tells the model what happens, when, and where the camera is.
Short segments: the less time the model has, the less room it has to wander off.
One extra rule that saves a lot of rerolls: describe what you want, not what you don't want. Writing "no hat" still puts the word hat into the conditioning, and models are notoriously bad at negation, so it often backfires. Write "bald head, shaved scalp" instead.
References: lock everything that matters
If a detail must look the same in shot 1 and shot 6, it needs a reference image. Text alone will not hold it.
Words are compressed. "Red leather jacket" matches thousands of jackets, and the model can pick a different one every time you reroll. A picture of THE jacket matches exactly one. That's why Ref2VA is the mode for anything with recurring characters or locations.
What deserves its own reference:
Every character that appears on screen, ideally full body, neutral pose, plain background. A clean image gives the model the identity without extra junk it might copy.
Every location, shot empty, from roughly the angle you'll use most. The model is much better at putting characters into a known room than at inventing the same room twice.
Key props that the story depends on (the remote with the NUKE button, the cauldron, the weird cocktail). If the gag lives on an object, the object gets a picture.
Transformed versions: if a guy turns into a toad, make a reference of the toad guy. Don't trust the model to invent a transformation that still looks like him.
Voice samples: H3 accepts audio references, so a short clip of the timbre you want keeps a character sounding like themselves across segments.
How to use them in the prompt: give each reference a label and keep that label consistent everywhere. H3's Ref2VA format works with tags like <Subject 1> (a reusable person, object or place taken from a reference) and <Picture 1> (an image used as an actual frame or composition anchor). Define each one once, with its main visual features in words, then refer to it by its tag in every shot. Words plus picture beats picture alone, because the text tells the model which details in the image actually matter.
One honest limit: 9 images is the ceiling per generation. If your scene has more stuff than that, it's a sign the segment is doing too much. Split it.
Making references that actually match
Your references must look like they come from the same movie, or the video will look like a collage. Same style, same light, same world.
You don't need anything fancy. ChatGPT's image generator, or any decent local diffusion model (Flux, Krea, SDXL and friends), will do. What matters is the method.
Start from one style anchor
Make ONE image first that nails the look: the art style, the palette, the lighting mood. Every other reference gets built from that anchor.
With ChatGPT: upload the anchor and ask for the new subject "in the exact same art style, palette and lighting as the attached image". Always go back to the original anchor for each new reference. Don't edit the edit of the edit: every pass re-generates the image, so small drifts stack up like a game of telephone.
With a local model: write a style block once (medium, line quality, palette, light) and paste it word for word into every prompt. Change only the subject part. Or, even better, use a style LoRA and let it carry the look, so the prompt only describes content.
Seed control, explained without the mysticism
The seed decides the starting noise. Same model, same seed, same sampler, steps, CFG and resolution, same prompt: you get the same image. That's deterministic, and you can check it yourself in ten seconds.
Why it's useful for references:
Small edits stay small. Keep the seed fixed and change one thing in the prompt (jacket color, expression). The overall composition and feel tend to stay close, because you started from the same noise. Change the seed at the same time and you're changing two variables, so you can't tell what did what.
Reproducibility. Write down the seed of every reference you keep. When you need the same room from a slightly different angle next week, you start from a known point instead of rolling dice for an hour.
What the seed does NOT do: it doesn't lock a character or a style across very different prompts. A new prompt with the same seed is basically a new image. For identity, use reference images or a character LoRA. For style, use the style block or a style LoRA.
Clean references beat pretty references
Plain, contrasting background. Light clothes on a dark background, dark clothes on a light one. The model needs to see where the character ends.
Full body, head to feet. If you only show the torso, the model will invent the shoes, and it will invent different shoes in every shot.
Every prompt is self-contained. Image models have no memory between generations, so "the same woman as before" means nothing to them. Describe her again, fully.
Match the light to the scene. A character lit by warm candlelight dropped into a cold blue room will look pasted in. Generate both with the same light direction and temperature.
Watch for trait bleeding. With a character LoRA active, other people in the image tend to inherit that character's face. If you need extras, describe them in detail (face, hair, clothes, build) so they stay different.
Shots and framing: think like a cinematographer
Plan every shot before you write a single prompt: what we see, how big, from where, and for how long.
A locked camera for 15 seconds is a security cam. Twelve cuts in 15 seconds is a perfume ad having a breakdown. You want the middle: cuts that each have a job. Film grammar exists because it works on human brains, so borrow it.
Wide / establishing: where are we? Opens a scene or a new location.
Medium: who's doing what. Your workhorse for action and dialogue.
Close-up: emotion, reactions, punchlines. The face sells the joke.
Insert / detail: the object that matters, like the drink sliding or the button being pressed.
Rules worth stealing from real film sets:
One camera move per shot. "Slow push-in" is clear. "Dolly left while tilting up and zooming out" is three instructions fighting each other, and the model will average them into mush.
Every move needs a reason. Push in when tension rises, pull back to reveal something, track to follow action. A move without a reason just looks like the camera is lost.
Keep the 180-degree rule. If character A is on the left and B on the right, keep them there across cuts. Flip the side and the viewer's brain thinks someone teleported.
Cut on action or on a beat. A cut in the middle of a movement (the door kick, the snap of fingers) hides the seam. A cut during a frozen moment shows it.
Give shots room to breathe. Very short shots (well under 2 seconds) leave the model almost no frames to settle the composition. In a 15 s segment, three to five shots is a comfortable range.
Comedy loves a static wide. For a gag, a locked-off frame lets the audience watch the absurd thing happen. Don't cut away from your own punchline.
Hire a flagship LLM as your DP and editor
You don't need film school. Claude, ChatGPT or Gemini have read more about cinematography than most humans ever will, so use them to plan shots and write the prompt.
This works for a concrete reason: these models were trained on screenplays, film analysis, cinematography manuals and endless shot breakdowns. Ask "how would a noir film shoot a woman entering a bar?" and you get low-key lighting, a slow dolly, a POV reveal, actual grammar of the genre. And since H3 reads your prompt through an LLM-based text encoder, precise film vocabulary ("low 3/4 close-up", "locked-off", "rack focus") is exactly the kind of language it can parse.
The workflow
Pitch the idea in plain words. The gag, the mood, the length, the format (1:1, landscape).
Ask for a shot list, not a prompt. One row per shot: size, angle, camera move, action, duration, sound. Ask it to justify each cut. If it can't say why a shot exists, the shot goes.
Argue with it. "Too many cuts", "the punchline needs a close-up", "this move fights the action". This is where the video gets good.
Only then convert to the H3 format, with timestamps that add up exactly to the segment length.
Ask it to audit its own prompt: do the timings sum correctly, is every reference label defined, does any shot contradict a reference?
Give it the rules, or it will make them up
LLMs are confident even when they're guessing. They don't automatically know H3's prompt structure, its reference limits or how your ComfyUI chain works. Paste the official format guide (or keep it in a project, a skill or a system prompt) and state your hard constraints up front. When something doesn't work, check the syntax against the official docs instead of trusting the chatbot's memory.
A starter you can adapt:
You are a film director of photography and editor.
Idea: [your idea]
Length: [N] seconds, format [1:1 / 16:9]. Genre/tone: [noir that turns comic].
References I have: [list each character, location, prop].
Give me a shot list as a table: shot, timecode, shot size, angle,
camera move, action, sound/dialogue, and one line on why this shot exists.
Max one camera move per shot. Respect the 180-degree rule.
Don't write the final prompt yet.Continuity: going past 15 seconds without falling apart
Long videos are built as a chain of short segments, and every join is a place where things can break. Plan the joins as carefully as the shots.
There are two ways to start a new segment, and choosing the right one solves half your problems:
A fresh shot: use it for a new location, a new time, or a deliberate hard cut. It's generated from scratch with nothing inherited, and the cut hides any difference.
A continuation: use it when it's the same place and the same action, and the viewer must not notice a seam. The new segment starts from the end of the previous one (its last frames or, in ComfyUI-Easy-Media MultiTrack, its saved latents), so motion and sound carry over.
If you're not using a multitrack workflow, the poor man's version still works: take the last frame (or the last few seconds) of the previous clip and feed it in as the start of the next one, together with your usual references.
Rules for clean joins
End on a hold. The last second of any segment that will be continued should be one stable shot: a held pose or a slow action. No cut, no fast camera move, no line of dialogue in progress. That tail is what the next segment inherits, so make it easy to inherit.
Start without cutting. The first second or so of a continuation keeps the same framing and pose. Put your first cut around 1.5 to 2 seconds in.
Describe the inherited state in words. Open the continuation prompt with exactly what's on screen: framing, poses, props, smoke, background, ambient sound. Copy it from the end of the previous prompt. The model can't read your previous prompt, so tell it.
Never split a line of dialogue across a join. It starts and finishes inside one segment, or the voice will stutter or change.
Same place, same light, same clothes. Change location, lighting or costume only on a fresh shot, never on a continuation.
Redo the chain downstream. If you regenerate segment 3, every continuation after it was built on the old ending. Regenerate those too, or enjoy your new jump cut.
Plan it in a table first
Before writing any prompt, fill one row per segment: how it starts (fresh or continued), its length, the end state it inherits, where the first cut is, the dialogue it contains, and the held pose it ends on. Ten minutes here saves an evening of rerolls.
Writing the prompt: be a boring, precise accountant
A good video prompt reads like a shooting script with timestamps, not like a poem. Concrete beats evocative every time.
Ban the empty adjectives. "Cinematic", "epic", "beautiful" carry almost no visual information. "Low-angle medium shot, single warm tungsten key from the left, deep shadows on the right wall" does.
Timestamp every shot. Write when each shot starts and ends, and make sure the total matches the segment length exactly. If your shots add up to 11 seconds in a 10 second clip, the model will squeeze or drop something, and you don't get to choose what.
Per shot, cover the same checklist: composition and shot size, who is where, what they look like (tag + key features), what changes during the shot, what the camera does, what we hear.
One main action per subject per shot. "She turns, smiles, grabs the glass, drinks and winks" in two seconds is a speedrun. Pick the action that matters.
Time reactions after their cause. If a character turns because someone calls them, the turn starts after the first syllable, never before. Write it that way or you get psychic characters.
Things that must not change, say so and give them a reference. A chroma key background, a fixed prop on a table: describe it as constant for the whole clip and back it up with an image. Text alone tends to let it drift.
Audio is half the video
H3 generates sound together with the picture, so direct it like the picture.
Separate the layers. Describe in-world sound (footsteps, glass clinks, room tone) apart from background music the characters can't hear. Mixing them in one sentence muddles both.
Fit the dialogue to the time. Conversational English runs around 150 words per minute, roughly 2.5 words per second. A 12 word line needs about 5 seconds. Write a 30 word monologue into a 4 second shot and something has to give.
Want silence? Ask for it. If you need no music, say there is no background music. Left unspecified, the model may add some.
Use a voice reference for any character who speaks in more than one segment, so they don't sound like a different actor every time.
Example of one shot written the boring, precise way:
[Shot 2] 00:03.000-00:06.500. Locked-off low 3/4 close-up of <Subject 1>,
framed forehead to chin, cigarette smoke drifting from her red lips,
blurred brick wall behind her. She raises one eyebrow slowly and says:
"Is that a goldfish?" Ambient street traffic continues, a pigeon coos
off-screen right. No music.The pre-flight checklist
Run through this before you hit generate. Every box you skip is a reroll you'll pay for later.
Every character, location and key prop has a clean reference, all in the same style and light
I saved the seed and settings of every reference I kept
Every reference has a label, defined once and used the same way everywhere
I have a shot list where every shot has a reason to exist
One camera move per shot, 180-degree rule respected
Timestamps add up exactly to the segment length
Every line of dialogue fits its time and stays inside one segment
Continued segments open on the inherited state and end on a stable hold
Sound and music are described separately, silence is requested where I want it
No empty adjectives, no negations, nothing left for the model to guess
That's it. None of this is secret sauce, it's just refusing to let the model make decisions you should be making. The model is a fantastic renderer and a terrible director, so be the director.
Now go make something weird. And if you post it, tag me, I want to see it.



