MiniMax H3 Singularity Image-to-Video
minimax-h3-singularity/image-to-video
Generate videos with native stereo audio, 3–15 second durations and four resolution tiers.
Examples
Parameters
| Name | Type | Default | Constraints | Description |
|---|---|---|---|---|
| prompt *Prompt | textarea | — | — | Text description of the desired motion, scene, and soundtrack. Audio is generated natively together with the video. |
| image *Image | image_upload | — | image/* · 1–1 items | First-frame image URL. The output canvas follows this image's aspect ratio. |
| last_imageLast Image | image_upload | — | image/* · 0–1 items | Optional last-frame image URL. When provided, the video interpolates from the first frame to this frame. |
| resolutionResolution | select | 480p | 480p | 540p | 768p | 1080p | Output video resolution. 768p is the model's native canvas; 480p is a faster, lower-cost tier; 540p is a mid tier at 1.5x the 480p price. 1080p is the highest-quality full-HD tier at 2x the 768p price (generation takes longer). |
| durationDuration | select | 5 | 3 ~ 15 · step 1 · 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | … | Output video duration in seconds. |
| seedSeed | number | — | step 1 | The random seed to use for the generation. -1 means a random seed will be used. |
Output fields
| Field | Type | Description |
|---|---|---|
| videos | array<string> | Generated video URLs with native audio. |
API
Call this model through one unified REST API. Get a key on the API Keys page.
cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/minimax-h3-singularity/image-to-video" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"image": "https://example.com/input.jpg",
"resolution": "480p",
"duration": 5
}
}'
# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
-H "Authorization: Bearer YOUR_API_KEY"Python
import time, requests
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1) Submit
resp = requests.post(
"https://www.namifusion.com/api/v1/marketplace/run/minimax-h3-singularity/image-to-video",
headers=HEADERS,
json={
"input": {
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"image": "https://example.com/input.jpg",
"resolution": "480p",
"duration": 5
}
},
)
resp.raise_for_status() # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()
# 2) Poll until a terminal state (completed / failed / cancelled).
# This model is allowed up to 1800s server-side.
deadline = time.time() + 1860
while task.get("status") not in ("completed", "failed", "cancelled"):
if time.time() > deadline:
raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
time.sleep(3)
poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
poll.raise_for_status()
task = poll.json()
print(task["status"], task.get("output"))JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };
// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/minimax-h3-singularity/image-to-video", {
method: "POST",
headers: { ...HEADERS, "Content-Type": "application/json" },
body: JSON.stringify({
"input": {
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"image": "https://example.com/input.jpg",
"resolution": "480p",
"duration": 5
}
}),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();
// 2) Poll until a terminal state (completed / failed / cancelled).
// This model is allowed up to 1800s server-side.
const deadline = Date.now() + 1860 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
await new Promise((r) => setTimeout(r, 3000));
const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
task = await poll.json();
}
console.log(task.status, task.output);Documentation
MiniMax H3 Singularity Image-to-Video
Animate a starting image with native stereo audio; an ending image is optional.
Inputs
| Parameter | Required | Type / limits / default |
|---|---|---|
prompt | Yes | Motion, scene and sound instructions. |
image | Yes | array; exactly 1 image URL. Nami converts this array to the upstream single URL. |
last_image | No | array; optional ending image, at most 1 URL. |
resolution | No | string; 480p / 540p / 768p / 1080p; default: 480p |
duration | No | integer; 3–15; default: 5 |
seed | No | integer; -1 = random |
Listing price
| Resolution | USD / second | Credits / second |
|---|---|---|
| 480p | $0.05 | 5 |
| 540p | $0.075 | 7.5 |
| 768p | $0.1 | 10 |
| 1080p | $0.2 | 20 |
USD list prices before account discounts; 1 USD = 100 credits. Charge = output seconds × resolution rate.
Nami rounds the final credit amount upward to 0.01 credit. Native generated audio has no separate charge.
API example
Replace the example media URL with your uploaded asset. Submit once, then poll the returned task_uuid; do not automatically retry submission.
POST https://www.namifusion.com/api/v1/marketplace/run/minimax-h3-singularity/image-to-video
Authorization: Bearer YOUR_NAMIFUSION_API_KEY
Content-Type: application/json
{
"input": {
"prompt": "A slow camera move through the scene, with gentle ambient sound.",
"duration": 5,
"resolution": "480p",
"image": [
"https://example.com/first-frame.png"
]
}
}
GET https://www.namifusion.com/api/v1/marketplace/run/tasks/{task_uuid}
Authorization: Bearer YOUR_NAMIFUSION_API_KEY
Successful submission returns task_uuid and status. Query the task until completed or failed; successful output.videos contains the generated video URLs.
Related models
xAI Grok Imagine Video v1.5 Image to Video
Animate one input image with a text prompt into a 1-15 second video at 480p or 720p.
Vidu Q4 Preview Image to Video
Generate a 3–16 second video from a prompt and one image, with optional audio and prompt expansion. Supports 540p, 720p, 1080p, 2k and 4k.
vidu/q3/image-to-video-spicy
Vidu Q3 Image-to-Video Spicy generates unlimited high-quality videos from images with smooth animations and diverse motion, optimized for scalable content generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Vidu Q3 Image To Video
Vidu Q3 Image-to-Video turns text prompts into high-quality videos with exceptional visual fidelity and diverse motion. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

MiniMax H3 Spicy Image to Video
Animate a first-frame image with optional prompt and last-frame guidance. Supports 480p, 540p, 768p and 1080p video, with durations from 3 to 15 seconds.
MiniMax H3 Image to Video
MiniMax H3 Image to Video animates a first-frame image into a coherent 2K video, with natural-language motion instructions and optional last-frame control for consistent motion, scene continuity, and cinematic video generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
MiniMax H3 Singularity Image-to-Video LoRA
Generate videos with native stereo audio, 3–15 second durations and four resolution tiers. Supports custom LoRAs.
ltx-2.5/image-to-video
LTX 2.5 Image-to-Video animates a first-frame image into high-fidelity synchronized audio-video content, with optional last-frame guidance and 720P / 1080P / 2K / 4K output for cinematic videos, social content, ads, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.