H3 Max Director streams AI video you can redirect mid-take, capped at two minutes
fal made H3 Max Director publicly callable on September 3, 2026. It generates one continuous video stream you steer with live prompts, at $0.02 per second of video until September 14 and a 60-second minimum per session.
Mauricio Valdivia
·11 min

The note arrives while the camera is still rolling
The generation comes back and the product is in the wrong hand. Not wrong enough to be funny, just wrong enough to be unusable, and the only lever you have is the prompt box you already used. So you rewrite it, run it again, and get a different person in a different kitchen holding the product correctly. The fix cost you the take.
On September 3, 2026 fal made an endpoint public that changes the shape of that loop. H3 Max Director does not return a clip. It opens a session and streams video at 24 frames per second while you are still typing, and a prompt you send mid-session is applied to what comes next without resetting the character, the room or the story. fal's catalog stamps the endpoint public at 19:45 UTC that day. The rate on the page is $0.02 per second of video generated, and fal says plainly that the promotional price expires on Sep 14th, with list price being $0.08 per second of video.
That is a real shipping event with a real mechanism underneath it, and it is also three separate things wearing one name. Worth untangling before anyone budgets against it.
What fal actually published on September 3
The model page carries no publication date, which is how a launch story ends up being dated from a screenshot. fal's own catalog answers it directly.
The endpoint went public at 19:45 UTC
Query fal's model catalog and the Director entry comes back carrying "status":"public","publishedAt":"2026-09-03T19:45:19.228Z". That is fal's own record of the moment the endpoint became callable by anyone with a key, and it is the event this post is about.
It is worth being precise about what that timestamp is not. It is the moment the endpoint became callable, not the moment the model first existed. Coverage published at the start of September already described Director as an autoregressive continuous version of H3 Max with up to two minutes of context, running as the engine behind fal's public live-stream experiment. The publication event is the endpoint, and an endpoint is what turns an experiment into something you can put in a budget line.
The two August releases this is not
Two nearby events get grafted onto this one, and both are separately dated in the same catalog.
- H3 Max itself. The text-to-video and image-to-video arms were published on August 26, 2026, at
"publishedAt":"2026-08-26T20:24:56.547Z"and"publishedAt":"2026-08-26T20:25:10.052Z". Those are ordinary request-and-response endpoints. Neither streams, and neither takes a prompt mid-generation. - The realtime demo. The live-stream experiment those same reports describe was running in late August with no callable endpoint attached, which is exactly why September 3 is a separate line in the record rather than a footnote to August.
A reference-to-video arm followed on August 31 and two Turbo arms on September 2. So the H3 family shipped five endpoints in nine days, and Director is the sixth and the only one that holds a session open.
What the page sells
fal's own product line reads: Direct continuous, realtime video streams with live prompts while preserving characters, settings, and story continuity. The longer catalog description spells out the loop: send new prompts during a session to evolve the action while maintaining visual, character, and scene continuity.
Marketing copy, obviously. The reason to keep reading is that fal publishes the wire contract next to it, and the contract says the same thing in a language that cannot be written by a copywriter.

Who made which part of this
This is the sentence most coverage will get slightly wrong, including the first draft of this one. There are three owners and one namespace, and the namespace is what causes the trouble.
MiniMax publishes the open weights
The base model is MiniMax H3, released as open weights. That is the layer with the research behind it and the name on the endpoint path, and it is a genuinely separate product from what fal sells here. If you are looking for the base model rather than fal's build of it, our explainer on what MiniMax H3 is covers that side.
fal post-trains it into H3 Max
fal's own page states the relationship in one line: H3 Max is post-trained by fal on top of the open-weight base MiniMax H3 model. The same page draws the boundary from the other direction, noting that standard MiniMax H3 is a separate frontier model with its own endpoints. fal's launch post for H3 Max is blunter still: we started with the open-weights MiniMax H3 model and introduced substantial new data during post-training.
So H3 Max is not MiniMax's product with a reseller's sticker on it. It is fal's derivative, trained by fal, served on fal's own inference stack.
Director is the layer fal added
Director sits on top of that. fal published it, on fal's own catalog, as a layer over fal's own post-train. What makes the loose phrasing so easy to write is that fal's catalog files the entry as "modelLab":"Minimax","modelLabId":"d8m36bkregj5ka3lrdeg","modelFamily":"H3", and the endpoint path reads minimax/h3-max/director. Every visible label points at MiniMax while the thing being labelled was built by somebody else.
The rule worth keeping: a namespace is a filing decision, not an attribution. Read the vendor's own provenance sentence before you credit anyone.
How live prompting works on the wire
Plenty of video products promise steering and deliver a text box that queues a second generation. This one publishes a machine-readable contract, and the contract is the evidence.
A control channel, not a request and a response
fal links an AsyncAPI document from the model page. Its own summary calls it a client contract for the WebRTC session created by the linked OpenAPI operation, and it defines a persistent control channel with messages running both ways:
- You send four things.
client.configureopens the session with the first prompt,client.promptredirects it,client.pingkeeps it alive,client.stopends it. - The model sends video.
server.chunkarrives as each segment is generated, andserver.stream_exhaustedcloses the tap. - The model answers your notes.
server.prompt_applied,server.prompt_pendingandserver.prompt_rejectedtell you whether the direction you just sent landed, is queued, or was thrown away.
Read that list and the shape of the product is obvious without a demo. You are not submitting a job and polling for a file. You are holding a connection open and talking to a render that has already started.
prompt_version and replan decide when your note lands
Every message carries a prompt_version integer, and the direction message carries a replan boolean. fal's own description of it: true (default) busts the planned prompt queue so the new direction applies at the next undispatched chunk; false appends the direction after the already-planned chunks.
That single field is the difference between a correction and an addition. Set replan true and you are overriding what the model was about to do. Set it false and you are writing the next scene while the current one plays out. Video comes back in chunks with a default duration of 10 seconds, adjustable between 5 and 15, so "the next undispatched chunk" is a concrete unit of latency rather than a vague promise of responsiveness.
memory is what keeps the character the same person
Continuity is the claim that usually collapses under testing, so it is the one worth checking hardest. Here it is a shipped parameter with a range: memory, documented as the number of prior segment prompts retained as context for future prompt expansion, default 12, minimum 1, maximum 50.
The session constants publish the picture-level half of it too. continuation_context_frames is fixed at 39, which at 24 fps is roughly 1.6 seconds of overlap carried from one chunk into the next. So there are two memories running: about a second and a half of actual frames holding the visual seam together, and up to fifty prior prompt segments holding the narrative together. That is a much more specific mechanism than "it remembers your character", and it is the reason this is a different problem from keeping one AI actor consistent across ad variations, where the continuity has to survive across separate renders with nothing shared between them.
What a session costs, and what changes on September 14
The pricing block on the model page is three sentences long and every one of them is load-bearing.
The promotional rate and the rate underneath it
Sessions cost $0.02 per second of video generated. That is the promotional number, and fal dates its own expiry: the promotional price expires on Sep 14th, with list price being $0.08 per second of video. So the sticker is a 4x step, on a date, six days after this post.
Anyone quoting the $0.02 without the date is quoting a number with an expiry stamped on it. A full two-minute session is $2.40 today and $9.60 from September 14.

The 60-second floor is the number that bites
Underneath the rate sits the unit, and the unit is where per-second pricing usually stops being per-second. Each session is billed at a minimum of 60 seconds runtime, and fal's catalog carries the same rule as structured data: "minimumUnits":60.
A 20-second take therefore costs what a 60-second take costs. The effective rate on that 20 seconds is $0.06 per usable second today and $0.24 from September 14, three times the sticker in both cases. The session schema hints at why: one_session_per_machine is a constant true, so a session holds a machine whether or not you are generating into it.
Ten variants, priced
Here is the arithmetic that matters for advertising, because ad creative is not one long take. It is many short independent ones.
| What you buy | Billed seconds | At $0.02/s | From Sep 14 at $0.08/s |
|---|---|---|---|
| One 2-minute session | 120 | $2.40 | $9.60 |
| One 20-second take | 60 | $1.20 | $4.80 |
| Ten 20-second variants | 600 | $12.00 | $48.00 |
| Usable video in that last row | 200 s |
Ten separate hooks means ten sessions, ten 60-second floors, and 600 billed seconds for 200 seconds of footage. That is a pricing model built for one long continuous thing, priced against a workflow that wants many short independent things. The mismatch is not a flaw in the product. It is a signal about what the product is for.
What a continuous take changes for ad creative
Set the billing aside and the capability is genuinely new. It is just new in a narrower way than "realtime video" suggests.
Correcting a take beats re-rolling it
The ordinary loop with text-to-video models is destructive. A generation comes back almost right, you change six words, and the next generation is a different person in a different room, because the seed moved and nothing was carried forward. You did not fix the take. You replaced it.
Director makes the correction non-destructive inside the session. The character, the setting and the last second and a half of picture survive your note. For anything with a person in it holding a product, that is the difference between directing and gambling, and it is the first time the verb "direct" has been honest in this category.
Vertical is there, and 768p is the ceiling
The session schema publishes aspect_ratios of ["16:9","9:16","1:1"] and resolutions of ["480p","768p"], at a constant 24 fps.
Vertical being a first-class option matters, because a 16:9-only model is a model you crop. But 768p is the ceiling, and that lands this squarely on the testing side of the line rather than the delivery side. Read it against the spec each platform actually wants and the honest verdict is: fine for finding out whether an idea works, thin for the asset you intend to run behind real spend for a quarter.
A stream is not a deliverable
The last gap is the one nobody prices in. What comes out of a session is a continuous take, and what an ad account ingests is a cut file with a hook in the first second.
So the work after the session is real work, and none of it is included in the per-second rate:
- Choose the in point, which for a paid placement means finding a first second that stops a thumb.
- Choose the out point, cut, and caption.
- Export per placement, at whatever the destination wants rather than at what the session gave you.
A two-minute continuous shot is raw material of a kind this category has not produced before, and raw material still has to be edited into an ad before anything can be tested.
What the contract admits about the hard parts
The most useful thing about a published schema is that it documents the failure modes as carefully as the features.
It freezes when generation falls behind
There is a server.deadline_missed message, and its behavior field is a constant with exactly one value: freeze_video_and_silence_audio_until_ready. It reports how late the chunk is in late_by_seconds.
That is fal telling you, in its own contract, that "realtime" means best effort. When generation cannot keep pace with playback, the picture holds and the audio goes quiet until the next chunk is ready. Not a bug, not a scandal, just the honest physics of generating video at the speed it is watched. Worth knowing before you demo it live to a client.
Your direction can be rejected
A prompt sent mid-session is a request, not a command. server.prompt_rejected publishes exactly three reasons, and they fail in three different ways:
content_policy. The safety checker refused your direction.preparation_failed. The direction could not be prepared into a usable segment prompt.stale_prompt_version. You sent it against a version the session has already passed.
The third is the interesting one. Send a direction against a version the session has already moved past and it is dropped rather than applied late. So the mental model is not a chat box. It is a control surface with sequencing, where an instruction that arrives out of order is discarded on purpose, and your client has to track versions or lose notes silently.
What is not in the record yet
Searching for an independent evaluation of Director specifically turned up nothing in this research: no third-party measurement of how well continuity holds at memory 12 versus 50, no latency distribution, no published failure rate for the freeze behaviour above. Treat that as a gap in the record rather than a verdict on the model.
Which means the only evaluation that exists for your use case is one you run, inside a two-minute window, at a 60-second minimum, before the price quadruples. Cheap enough to try and specific enough to have an opinion about afterwards.

How Novoads solves the variant problem
Novoads does not run H3 Max Director. There is no MiniMax or H3 model in the platform, and nothing above is a product announcement.
What is relevant is the axis the pricing exposes. A session-billed continuous stream is priced for one long take; ad testing is priced by the usable variant. Novoads is built on the second unit:
- Upload a product image, and write or generate the script.
- Pick an AI actor and a model.
- Read the credit cost of that specific render before you run it.
- Produce the next variant as its own quoted render, not as another minute on a meter.
Ten hooks is ten quoted renders, not ten 60-second floors. If you want to try it, Novoads starts at $49/month on the Starter plan, with 50 credits every month and cancellation whenever you want.
The engines underneath are the same class of frontier models everyone rents, which is precisely why the argument is about the unit you are billed in rather than about whose pixels are prettier. That is the same reason a per-second quote and a per-credit quote are so hard to compare in the first place, a problem worth understanding properly if you buy AI video by the credit.
Direction is the product, the clip is the byproduct
What fal published on September 3 is not a better video model. H3 Max was already that, a week earlier, without a session to hold open. What Director publishes is a different relationship with the render: one where the note you have while watching is a note the render can still act on.
Every generative video tool until now has asked you to specify completely and then wait. This one lets you specify partially and then steer, and the AsyncAPI is the proof that the steering is a protocol rather than a promise. It also lands in the same week that vendors began pointing agents straight at their render meters, which is its own kind of billing surprise: Higgsfield's connector charges credits even on unlimited plans. The limits are real and clearly posted:
- Two minutes per session, longer only by request.
- 768p at 24 fps, with vertical available.
- A 60-second billing floor whatever you generate.
- A promotional price that reverts on September 14.
- A stream that freezes rather than skips when the machine falls behind.
Try it inside those limits, on the questions it is actually good at answering, and check the date on the price before you build a budget around it. A rate with an expiry is a rate you are borrowing, and September 14 is the day the loan comes due.
Frequently Asked Questions
What is H3 Max Director?
It is a realtime video endpoint on fal that generates one continuous stream instead of a finished clip. fal's own description reads: H3 Max Director generates continuous real-time video that can be directed while it streams. Send new prompts during a session to evolve the action while maintaining visual, character, and scene continuity. You open a WebRTC session, send a configure message with your opening prompt, watch video come back in chunks, and send further prompts while it is still generating.
Did MiniMax build H3 Max Director, or did fal?
Both, in sequence, and the split matters. MiniMax publishes the open-weight H3 base model. fal's own page states that H3 Max is post-trained by fal on top of the open-weight base MiniMax H3 model, and separates the two explicitly: standard MiniMax H3 is a separate frontier model with its own endpoints. Director is the layer fal put on top of its own post-train. Credit fal for Director. The endpoint lives in the minimax/h3-max/director namespace, and fal's catalog files it under model lab Minimax, which is how the loose version of this sentence gets written.
How much does H3 Max Director cost?
As published on September 8, 2026: sessions cost $0.02 per second of video generated. That is a promotional rate. fal states the promotional price expires on Sep 14th, with list price being $0.08 per second of video, so the sticker quadruples on that date. Each session is billed at a minimum of 60 seconds runtime whatever you actually generate, which means a 20-second take costs the same as a 60-second one.
How long can a single session run?
Two minutes by default. fal's page asks whether you need sessions longer than 2 minutes and answers that it is gradually enabling longer Director sessions for approved use cases, with a sign-in request behind it. So the continuous take you can buy today is bounded at two minutes, and anything longer is an access conversation rather than a parameter.
What resolution and aspect ratios does it output?
The session schema publishes resolutions of 480p and 768p, aspect ratios of 16:9, 9:16 and 1:1, and a constant frame rate of 24 fps. Vertical is supported, which is what matters for social placements, but 768p is the ceiling. That is a fine spec for testing an idea and a thin one for a hero asset you plan to run for months.
Can I generate with H3 Max Director inside Novoads?
No. Novoads does not run this model, and there is no MiniMax or H3 entry in the platform's model catalog. This post is a read on somebody else's launch rather than a product announcement. Novoads generates ad clips through Seedance, Kling and Veo, priced in credits quoted before the render.
Key Takeaways
- fal's own catalog stamps the minimax/h3-max/director endpoint public at 19:45 UTC on September 3, 2026. That is the news: the API became callable. The model had been running behind fal's own demo before that.
- The lineage has three owners. MiniMax publishes the open-weight H3 base model, fal post-trained it into H3 Max, and Director is the layer fal added on top. fal's catalog still files it under model lab Minimax, which is why loose attribution is so easy to write.
- Live prompting is in the wire contract, not just the marketing. fal's AsyncAPI defines a WebRTC control channel with client.configure, client.prompt and client.stop, and a replan flag that decides whether your new direction lands at the next undispatched chunk or after the already-planned ones.
- Character and setting persistence is a shipped parameter. memory is the number of prior segment prompts retained as context, default 12, adjustable from 1 to 50.
- Pricing is $0.02 per second of video generated, promotional. fal states the promotional price expires on Sep 14th, with list price being $0.08 per second. Every session bills a 60-second minimum and caps at two minutes unless you request access for longer.




