MiniMax H3 Max generates clips from 5 to 15 seconds, whole seconds only — eleven options.
The number that matters is the bottom one. It is 5, not 4, and a 4-second request is not clamped, rounded or quietly served as 5. The upstream rejects it outright.
Nobody writes a slider that goes to 20 and is surprised when 20 fails; the ceiling is the number everyone checks. The floor is the one people assume is 1, or 0, or "whatever the minimum is".
And the floor is where the defaults live. A duration field initialised to 3 because three seconds felt like a sensible small default, a "quick preview" button hard-coded to the shortest thing anyone imagined, a test fixture written before the limits were read — all of these produce a request that never generates. The integration looks broken rather than misconfigured, because the response is a rejection, not a short clip.
The three places it shows up, in the order I have seen them:
The second half of the rule is quieter: whole seconds. Not 7.5, not 12.3. Eleven discrete options and nothing between them.
That matters if any part of your pipeline computes a duration rather than picking one — fitting a clip to a voiceover, to a music bar, to a slot in a timeline. Those calculations produce fractions, and a fraction has to be resolved to an integer before it is sent, by your code, deliberately. If you leave it to chance you get whatever your JSON serialiser does with a float, which is not a decision anyone made.
And the resolution has to be a choice with a direction. Rounding a 4.6-second requirement down gives 4, which is rejected. Rounding up gives 5, which works. Clamp first, then round — in that order — or the clamp never sees the value that needed it.
duration = clamp(round(requested), 5, 15)
Three operations, in that order, applied before the request is built rather than inside the error handler. It is a two-line fix that removes an entire category of support ticket, and the only reason it gets skipped is that nobody reads the floor.
The 5–15 second range, the whole-second constraint, the eleven options, and the note that the upstream refuses a 4-second request are published limits with the date each last changed, on the MiniMax H3 Max specifications page. That page reads the same constants the generator enforces.
Disclosure: this site is written by the people who run minimaxh3max.video, an independent third-party interface to this model. We are not affiliated with MiniMax.