Spec field reference

h3_spec.json is the data half of the project. The code contains no constants of its own beyond the frame-block arithmetic — everything else is read from this file at import time, so correcting a number here corrects the validator, the cost calculator and the CLI choices at once.

Every top-level section carries a source field. Several carry a commonError field, which records what widely published pages say when it differs from the API reference.


model

Field Value Notes
name / alternateName MiniMax H3 / Hailuo 3 Same model, two product names
announced 2026-07-31
weightsPublished 2026-08-02
weightsScope H3-Base only See pipeline below
licence MiniMax H3 Community License
licenceIsOsiOpenSource false Fails 2 of the OSI's 10 criteria; Hugging Face tags it other

The licenceIsOsiOpenSource flag exists so that downstream tooling can refuse to print "open source" for this model. Open weights is the accurate term.

pipeline

H3 is three stages, and only the middle one was published.

Stage Hosted Published Does
H3-Context-IR yes no reads and rewrites the multimodal instruction
H3-Base yes yes renders 768P picture plus 32 kHz stereo in one forward pass
H3-Regenerate-2K yes no feeds the 768P result back through with the original context

This is why a local graph and the hosted demo produce different results from the same prompt: downloading the weights gets you the middle third. The instruction rewriting in front of it and the 2K regeneration behind it are not in the release.

duration

Field Value
min / max 4 / 15
integerOnly true
commonError "Many write-ups state a 5-second floor. The API reference accepts 4."

frameGrid

Field Value
formula frames = 17n + 5
fps 24
nRangeWithinDuration [6, 20]
wholeSecondSolutions n = 11, 192 frames, 8.0 s
verifiedFrameCeiling 362

wholeSecondProof carries the modular arithmetic in full; it is reproduced in Validation rules.

resolution

Field Value
allowed ["768P", "2K"]
shortEdge 768 / 1440
no1080p / no4k true / true
twoKMethod re-generation — not an upscale

aspectRatios

21:9, 16:9, 4:3, 1:1, 3:4, 9:16.

audio

Field Value
sampleRate / channels 32000 / 2
generatedInSamePass true
canBeDisabled / billedSeparately false / false
dialogueLanguages 11
videoFlowShift / audioFlowShift 12 / 3

The two flow-shift values are the useful entry here for anyone assembling their own sampler. Picture and audio run on different flow schedules. A single-clock sampler over-samples the audio: invisible at 20 steps, audible as clipping at 4.

prompt

Field Value
maxCharacters 7000
structure subject, action_and_camera, sound
speakerTags (S1), (S2)

referenceInputs

Field Value
maxFilesTotal 12
image.maxCount / maxBytes 9 / 30 MB
image.formats jpg, jpeg, png, webp, heic, heif
image.pixelRange / aspectRatioRange [256, 5760] / [0.4, 2.5]
video.maxCount / maxBytes 3 / 50 MB
video.containers / videoCodecs / audioCodecs mp4, mov / h264, h265 / aac, mp3
video.perClipSeconds / totalSeconds [2, 15] / 15
video.fpsRange [23.976, 60]
audio.maxCount / maxBytes 3 / 15 MB
audio.formats wav, mp3
audio.perClipSeconds / totalSeconds [2, 15] / 15
requestBodyMaxBytes 64 MB — prefer public URLs over base64

image.roles records that one image may be first_frame, one may be last_frame, and up to nine may be reference_image — which is the other reason the per-type numbers do not simply add up.

modes

Mode Input
t2va text only
i2va text + one image as first_frame or last_frame
fl2va text + two images bracketing the shot
ref2va text + any mix of reference image / video / audio
regeneration exactly one video item with role=base_video

hostedPricing

Field Value
perOutputSecond 768P $0.08, 2K $0.13
eightSecond2kClip $1.04
comparison.veo31StandardEightSecond1080p $3.20

The keys of perOutputSecond are what populate --resolution on the cost subcommand.

taskLifecycle

Field Value
queryWindowDays 7 — older task IDs return invalid task_id
outputUrlExpires true — download or re-host promptly

Both matter for archival. If your pipeline records task IDs and expects to resolve them later, it has a week.

comfyui

Field Value
minimumUsableVersion 0.32.0
oomRootCause host RAM and the memory planner, not VRAM
oomWorkaround --disable-pinned-memory, not combined with --lowvram
resolutionSelectorMultiple 32

0.30.0 added the nodes, 0.31.0 shipped six audio fixes, 0.32.0 fixed peak memory. Almost every tutorial says "0.30.0 or later", which hands the reader corrupted audio and an OOM.

docs

Four URLs on the maintainer's site, carried in the spec file so that tooling generating error messages can link to a fuller explanation of a constraint. The spec tables with each row linked to its primary source, and a browser front-end you can use to check a claim against a real render, are at minimax-h3ai.video — an independent third-party interface, not MiniMax's own.

lastVerified

The date the whole file was last checked against primary sources. Treat anything older than a month or two as suspect; this model's tooling has moved three times since launch.