Skip to main content
Core.Today
|
MiniMaxMediumUltra

MiniMax H3 Max Image to Video

MiniMax H3 Max image-to-video via Fal.AI. fal's post-trained variant of MiniMax Hailuo-03 (H3), tuned for stronger prompt adherence and better aesthetics โ€” animates a first-frame image (optional last frame for keyframe control) into 5-15 second clips with native audio at 480P/768P native or 1080P refined output.

930 credits
per 5s 768P video โ€” billed per second (480P 116/s, 768P 186/s, 1080P 372/s)
Animates a first-frame image with stronger prompt adherence
Optional last frame for first-to-last keyframe control
Native audio generated alongside the video
480P/768P native generation or 1080P refinement, billed per second

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "minimax/h3-max/image-to-video",
  "input": {
    "prompt": "The camera slowly pulls back from the scene, revealing the full landscape as clouds drift overhead and light shifts across the terrain.",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg",
    "duration": 5,
    "resolution": "768P"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-Text prompt for video generation (up to 50,000 characters).
image_urlstringYes-URL of the image to use as the first frame. The output canvas follows this image.
end_image_urlstringNo-Optional URL of the image to use as the last frame, for first-to-last keyframe generation.
durationintegerNo5The duration of the video in seconds (5-15), billed per second.
resolutionstringNo768P480P and 768P are native generation modes; 1080P is latent refinement from a native 768P source.
480P768P1080P
prompt_expansion_modestringNobalancedHow much effort to spend rewriting the prompt before generation. 'disabled' skips expansion, 'balanced' returns in about a second, 'quality' spends up to ~30s on a richer prompt.
disabledbalancedquality
enable_safety_checkerbooleanNotrueIf set to true, the safety checker will be enabled.
seedintegerNo-Random seed. A random seed is selected when omitted.

How to Provide File Input

There are 3 ways to provide files for the image_urlend_image_url parameters:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "minimax/h3-max/image-to-video",
  "input": {
    "prompt": "your prompt here",
    "image_url": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=minimax/h3-max/image-to-video" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:image_url=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Landscape pull-back

The camera pulls back from a still landscape image at the default 768P.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "minimax/h3-max/image-to-video",
  "input": {
    "prompt": "The camera slowly pulls back from the scene, revealing the full landscape as clouds drift overhead and light shifts across the terrain.",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg",
    "duration": 5,
    "resolution": "768P"
  }
}'

Quick 480P draft

A cheaper 8-second 480P draft to check motion before the final render.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "minimax/h3-max/image-to-video",
  "input": {
    "prompt": "Clouds race across the sky as sunlight sweeps over the hills, time-lapse feel.",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg",
    "duration": 8,
    "resolution": "480P"
  }
}'

Tips & Best Practices

1The output canvas follows the first-frame image โ€” crop it to the aspect ratio you want.
2Add end_image_url to control where the motion lands.
3Iterate at 480P (116/s), then render the final at 768P or 1080P.
4Billing is per second of duration (5-15s).

Use Cases

Bringing product shots and key visuals to life
Transitions between two designed frames
Animated social posts from existing artwork
Previs clips from concept art