MiniMax H3 (Text to Video)
minimax/h3/text-to-videoGenerate native-stereo 2K video from text with MiniMax H3.
- Base price
- $0.65USD / run
- Execution
- async
- Model type
- video
- Input fields
- 5
Try the model
Playground
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $0.65 / run
- Billing formula
- (usage.total_seconds ?? params.duration) * (params.resolution == "768P" ? 0.08 : 0.13)
Context & modalities
- Input
- Schema-defined
- Output
- video
Capabilities
- Chat
- Not supported
- Vision
- Not supported
- Reasoning
- Not supported
- Structured output
- Not supported
- Function calling
- Not supported
- Audio input
- Not supported
Access
- Provider
- MiniMax
- Model ID
- minimax/h3/text-to-video
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
MiniMax H3 Text to Video
MiniMax H3 Text to Video turns a written scene into a complete audiovisual clip without requiring a starting image. A single prompt can direct subject behavior, shot progression, camera movement, lighting, dialogue, ambience, sound effects, and music, producing video with synchronized native stereo audio.
This route supports whole-second durations from 4 to 15 seconds, six landscape, square, and portrait aspect ratios, and either 768P output or a 2K in-context regeneration pass. H3's strong instruction following and accurate rendering of text and brand elements make it especially useful when a storyboard, campaign brief, or product concept must become a polished first shot directly from text.
Highlights
- Native stereo audiovisual generation. Creates picture and synchronized 32 kHz stereo sound together, so dialogue, ambience, effects, and music can be planned inside the prompt.
- Up to 15 seconds at 2K. Produces 4–15 second clips at 768P or regenerates them at 2K for higher-resolution delivery.
- Detailed cinematic direction. Follows complex instructions for action, camera language, scene transitions, lighting, timing, and sound within one text brief.
- Commercial creative accuracy. Excels at presenting text and brand information, supporting advertising, e-commerce, product design, UI/UX, gaming, and campaign visualization.
Pricing
Final billing uses completed-task usage.total_seconds when available; otherwise it uses the requested duration. The rate is $0.08 per billable second at 768P and $0.13 per billable second at 2K.
| Duration | 768P price | 2K price |
|---|---|---|
| 4 seconds | $0.32 | $0.52 |
| 5 seconds | $0.40 | $0.65 |
| 6 seconds | $0.48 | $0.78 |
| 7 seconds | $0.56 | $0.91 |
| 8 seconds | $0.64 | $1.04 |
| 9 seconds | $0.72 | $1.17 |
| 10 seconds | $0.80 | $1.30 |
| 11 seconds | $0.88 | $1.43 |
| 12 seconds | $0.96 | $1.56 |
| 13 seconds | $1.04 | $1.69 |
| 14 seconds | $1.12 | $1.82 |
| 15 seconds | $1.20 | $1.95 |
When to Use
| Use case | Why this model fits |
|---|---|
| Storyboards and previsualization | Turn a written shot description into an audiovisual concept before committing to production. |
| Advertising and product films | Direct product behavior, camera movement, brand presentation, typography, and sound in one brief. |
| Social and campaign creative | Choose landscape, square, or portrait framing and generate a complete 4–15 second asset. |
| Dialogue or ambience-led scenes | Prompt spoken lines, environmental sound, effects, and music alongside the visual action. |
| High-resolution hero shots | Use the 2K regeneration option when detail and delivery resolution matter more than draft cost. |
Prompt Guide
Write the prompt as a short shot plan: establish subject and location, describe actions in chronological order, specify camera framing and movement, then add lighting, visual style, dialogue, ambience, effects, and music. For multi-beat clips, use timing language such as “begin with,” “then,” and “end on.” Quote any required spoken words or on-screen text exactly.
{
"prompt": "A premium electric motorcycle waits beneath a rain-soaked glass canopy at night. Begin with a low close-up of water running across the illuminated emblem, then track backward as the rider mounts and the dashboard wakes. The motorcycle accelerates into a neon city avenue; reflections streak across the wet road. End on a wide crane shot above the intersection. Natural tire spray, a restrained electric motor tone, distant traffic, and deep cinematic music in native stereo. On-screen text: ‘MOVE BEYOND.’",
"duration": 10,
"aspect_ratio": "16:9",
"resolution": "2K",
"aigc_watermark": false
}
Technical Specs
| Property | Details |
|---|---|
| Model ID | minimax/h3/text-to-video |
| Required inputs | prompt, duration |
| Prompt length | 1–7,000 characters |
| Output duration | Whole seconds from 4 through 15; default 5 |
| Frame rate | 24 FPS |
| Resolution | 768P or 2K (default); 2K uses in-context regeneration |
| Aspect ratio | 21:9, 16:9 (default), 4:3, 1:1, 3:4, 9:16 |
| Audio | Native 32 kHz stereo |
| Watermark control | Optional aigc_watermark; default false |
| Output | Downloadable video URL with optional content type |
| Execution | Asynchronous |
Related Models
minimax/h3/image-to-video— animate an existing starting image with H3.minimax/h3/reference-to-video— guide H3 with image, video, and audio references.minimax/hailuo/2.3/pro/text-to-video— compare with MiniMax's Hailuo Pro text-to-video route.
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "minimax/h3/text-to-video",
"prompt": "A cinematic wide shot of an astronaut walking across a red desert at sunset, wind lifting fine dust, with natural footsteps and distant ambient sound.",
"duration": 5,
"resolution": "2K",
"aspect_ratio": "16:9",
"aigc_watermark": false
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Choose your model
Compare models
| Model | Context | Input / 1M | Output / 1M | Released |
|---|---|---|---|---|
MiniMax H3 (Text to Video)This model MiniMax | — | — | — | Jul 29, 2026 |
MiniMax | — | — | — | Aug 31, 2026 |
MiniMax | — | — | — | Aug 26, 2026 |
MiniMax | — | — | — | Aug 26, 2026 |
MiniMax | — | — | — | Aug 14, 2026 |
MiniMax | — | — | — | Jul 29, 2026 |
