MiniMax
MiniMax H3
minimax-h3-max/image-to-video
A unified multimodal video model that handles text, images, video, and audio within a single context, supporting text-to-video, image-to-video, reference-to-video, and instruction-based editing, and can generate synchronized audio
Try minimax-h3-max/image-to-video
Input
Showcases
View all showcasesOutput
videoPricing
minimax-h3-max/image-to-video per second
| Specifications | Unit Price |
|---|---|
| 480P | $0.072 |
| 768P | $0.115 |
| 1080P | $0.229 |
Positioning Overview
The MiniMax H3 Max image-to-video pipeline is designed for developers who need to reliably produce video from a static image. It starts from an uploaded first-frame image, drives motion, camera movement, and audio in the scene according to the prompt, and outputs video with adjustable duration and resolution. It also supports pairing first and last frames to constrain the transition between the two frames. It is suitable for advertising storyboard previews, animating illustrations and product images, and short-video generation workflows that require controllable transitions, and can be called through the unified HiAPI.ai interface with billing based on output duration.
Core Highlights
- First and last frame dual-image transition constraint — You can provide only the first frame to generate subsequent frames, or provide both the first and last frames so the model completes the motion and transition between the two images.
- Adjustable duration and resolution — Duration can be set between 0.92 and 15 seconds, and resolution can be set to 480P, 768P, or 1080P, choosing the tier according to the final output requirements.
- Optional audio track replacement — Replace the output audio track by providing a target audio URL; overly long audio is truncated from the beginning, and overly short audio is padded with silence, making it easy to align voiceover or music.
- Three adjustable prompt expansion levels — Expansion mode has three levels: off, balanced, and quality, allowing a trade-off between strictly following the original description and automatically filling in visual details.
Capability Description
Image-to-video and first/last frame control: The first-frame image determines the aspect ratio and generates the video; when only the last frame is provided, composition follows the last frame, and when both frames are provided, the transition process is constrained, making it suitable for controllable transitions and before/after comparison shots.
Duration and resolution tiers: A single generation supports 0.92 to 15 seconds and 480P to 1080P. Developers can choose preview or delivery tiers based on the intended use of the final output, avoiding the cost waste of using uniformly high specifications across the entire workflow.
Audio track injection: By passing a target audio URL, the output audio track can be replaced. The audio must be at least 2 seconds and no more than 15 MB; the model automatically trims or pads with silence according to video length, eliminating the need for secondary alignment during post-dubbing.
Prompt organization: Prompts can be up to 50,000 characters and are used to describe visuals, motion, camera movement, and audio; expansion mode can be set to off, balanced, or quality to control fidelity to the original description during generation.
Fixed random seed: Explicitly passing a seed reproduces the same result, and combined with fine-tuning prompts for comparative experiments, it helps identify effective recipes in batch generation.
Use Cases
- Advertising and storyboard teams generate preview clips from a single key visual — Upload a first-frame image and specify motion and camera movement to produce a 5 to 15 second preview video for proposals and rhythm validation before shooting.
- Animating illustrations and product images — Start from an illustration or product image and choose 768P or 1080P output as needed to obtain short looping videos ready for direct delivery.
- Shot continuity requiring defined transitions — Provide both the first and last frames so the model fills in the intermediate process, producing transition clips with natural transitions for the editing timeline.
- Lip-sync alignment with existing voiceover or music — Pass a target audio URL to generate a clip with the corresponding audio track, producing footage that can go directly into post-production.
Limitations and Selection Advice
This pipeline only accepts image-to-video and does not support pure text-to-video or mixed reference-image input; a single clip can be at most 15 seconds, and longer narratives require segmented generation followed by editing. When target audio is provided, the minimum video duration is 2 seconds, and the audio itself must not exceed 15 MB. If the goal is pure text-to-video or multimodal reference input, other pipelines in the same family should be used; for scenarios that do not require first/last frame controllability or audio track injection, a lighter generation method can also be chosen.
What's new
View changelog →- New model New model: minimax-h3
Frequently asked questions
View all FAQs →-
What type of video model is MiniMax H3?
It is prompt-led and can also use endpoint frames or image, video, and audio references according to the active contract.
-
Which output settings does MiniMax H3 support?
4-15 seconds, 2K, and 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive.
-
Can it generate sound or use audio references?
Optional image, video, and audio references; generated audio
-
How is MiniMax H3 billed?
Billing follows output duration and the live tier. Resolution, mode, or audio differences are reflected by the page price and task record.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: minimax-h3-max/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for minimax-h3-max/image-to-video and route default — see the parameter table below.
seedintegerOptionalRandom seed, integer. When omitted, the system chooses one at random; when explicitly set to 0, it must be passed through as-is, used to reproduce generation results.
promptstringRequiredminLength 1maxLength 50000pattern \SText prompt describing the desired scene, action, camera movement, and audio content.
durationnumberOptionalDefault: 5min 0.92max 15Video duration, numeric, default 5.
resolutionstringOptionalDefault: "768P"Output video resolution, string, default 768P.
480P768P1080Plast_frame_imagestringOptionalminLength 1pattern ^https?://[^\s/@]+(?:[/?#][^\s]*)?$Last frame image, used to specify the ending frame of the video; the aspect ratio follows the first frame, and follows the last frame only when a last frame is provided but no first frame is provided.
target_audio_urlstringOptionalminLength 1pattern ^https?://[^\s/@]+(?:[/?#][^\s]*)?$Target audio URL, used to replace the output audio track; the audio must be at least 2 seconds long and no more than 15 MB in size. Longer audio is truncated from the beginning, and shorter audio is padded with silence.
first_frame_imagestringOptionalminLength 1pattern ^https?://[^\s/@]+(?:[/?#][^\s]*)?$First frame image, used to specify the starting frame of the video; the aspect ratio follows the first frame, and follows the last frame only when only a last frame is provided.
prompt_expansion_modestringOptionalDefault: "balanced"Prompt expansion mode, string, default balanced.
disabledbalancedqualitycallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3-max/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"prompt_expansion_mode": "balanced"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "minimax-h3-max/image-to-video",
input: {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"prompt_expansion_mode": "balanced"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "minimax-h3-max/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"prompt_expansion_mode": "balanced"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Vidu Q3 Vidu $0.149 /second -
HeyGen Avatar V HeyGen $0.150 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Kling 3.0 Kuaishou $0.100 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Wan 2.7 Video Alibaba $0.100 /second -
Kling 3.0 Turbo Kuaishou $0.130 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
FLUX 3 Max Black Forest Labs $0.061 /second -
PixVerse V6 PixVerse $0.036 /second -
Veo 3.1 Lite Google $0.060 /second -
Kling 4.0 Kuaishou $0.330 /second







