Minimax H3 Image To Video
MiniMax H3 (Official) generates 2K video clips up to 15 seconds with native stereo audio from a source image. Supports first-frame and last-frame image-to-video modes for precise motion control.
Key Features
- Animate still images into 2K video with native stereo audio.
- First-frame and optional last-frame mode — use images as start and end keyframes for natural transitions.
- Up to 15-second video clips from source images.
- Automatic aspect ratio detection from input image dimensions (adaptive).
- High-fidelity motion generation that respects the original image content and composition.
- Built-in audio synthesis — generates synchronized sound effects and ambient audio.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the motion and audio to generate (max 7,000 characters). |
| image | Yes | Source image URL to animate (first frame). Supported formats: JPG, JPEG, PNG, WEBP, HEIC, HEIF. Max 30 MB, 256-5,760 px per side. |
| last_frame_image | No | Optional last frame image URL — the model interpolates between first and last frames. |
| duration | No | Video length in seconds: 4-15, integer only (default: 5). |
| resolution | No | Output resolution: 768P or 2K (default: 2K). |
How to Use
- Upload a high-quality source image that you want to animate.
- Optionally upload a last-frame image for keyframe interpolation.
- Write a prompt describing the desired motion, camera movement, and audio.
- Select duration and resolution — the aspect ratio is automatically determined from your image.
Code Examples
import os
import requests
response = requests.post(
"https://aircube.ai/api/v3/minimax-h3/image-to-video",
headers={
"Authorization": "Bearer " + os.environ["AIRCUBE_API_KEY"],
"Content-Type": "application/json",
},
json={
"prompt": "Gentle camera zoom in, steam rising from the coffee cup, soft morning light",
"image": "https://example.com/coffee-scene.jpg",
"duration": "5s",
"resolution": "2K"
},
timeout=300,
)
data = response.json()
if data["success"]:
print("ID:", data["data"]["id"], "Status:", data["data"]["status"])
else:
print("Error:", data["error"]["message"])Pricing
| Resolution | Duration | Cost |
|---|---|---|
| 768p | 4s | $0.36 |
| 768p | 5s | $0.45 |
| 768p | 6s | $0.54 |
| 768p | 8s | $0.72 |
| 768p | 10s | $0.90 |
| 768p | 12s | $1.08 |
| 768p | 15s | $1.35 |
| 2k | 4s | $0.52 |
| 2k | 5s | $0.65 |
| 2k | 6s | $0.78 |
| 2k | 8s | $1.04 |
| 2k | 10s | $1.30 |
| 2k | 12s | $1.56 |
| 2k | 15s | $1.95 |
Billing rules
- 768p / 4s: $0.36.
- 2k / 4s: $0.52.
- Longer durations scale proportionally.
- Failed generations are not charged.
Best Use Cases
- Bringing product photos to life with motion and ambient sound.
- Creating social media video content from static photography.
- Animating artwork, illustrations, and concept art.
- Generating video transitions between two keyframe images.
Pro Tips
- The aspect ratio is automatically set to 'adaptive' based on your input image — no need to set it manually.
- Describe both visual motion AND audio in your prompt for best results.
- Use high-resolution input images (up to 5,760 px per side) for best quality.
- Supported formats: JPG, JPEG, PNG, WEBP, HEIC, HEIF (max 30 MB).
- Input image aspect ratio must be between 2:5 and 5:2.
- Use the optional last_frame_image for controlled start-to-end transitions.
Notes
- Image-to-video and reference-to-video modes are mutually exclusive.
- Input images must have an aspect ratio between 2:5 and 5:2.


