はじめに
MiniMax H3 画像から動画 は、image_url で渡した開始フレームから、その後に起きることを生成します。長さは 4〜15 秒の整数、解像度は 768p・2k で、音声も同時に生成されます。任意の last_image_url を加えると、クリップが着地する終了フレームを指定できます。アスペクト比の項目はなく、出力の形は開始フレームで決まります。
開始素材に応じてモードを選ぶ
| 開始素材 | モード |
|---|---|
| 書いた場面やスクリプト | MiniMax H3 テキストから動画 |
| 承認済みの開始画像 | MiniMax H3 画像から動画 |
| 1〜9 枚の参照画像 | MiniMax H3 参照から動画 |
主な機能とハイライト
被写体は開始フレームが決める
モデルは渡されたフレームに忠実に従うため、デザインした被写体、衣装、部屋をもっとも文字どおりに得られる方法です。windowsill-turn の例では、顔からナイトガウン、雨の筋が走る窓まで、識別できるものはすべて画像から来ています。プロンプトが頼んでいるのは、息を吐くこと、ネオンの明滅、頭の向きの変化だけです。場面がすでに写っている開始フレームは、同じ内容を text-to-video に文章で書くよりはるかにブリーフに近い結果になります。
任意の終了フレーム
last_image_url はショットの着地点を固定します。robe-to-doorway の例は両端を使い、室内で始まり、用意した戸口の構図で終わる 8 秒です。終了フレームが締めるのは終わりの部分だけで、中盤は自由に生成されます。クリップが長いほど、動きは終了フレームから離れやすくなります。
長さ・解像度・入力の条件
長さは 4〜15 秒の整数ですが、4 秒は 768p でのみ選べ、2k には 5 秒以上が必要です。2 つの解像度はどちらもネイティブです。開始フレームは各辺 256〜5,760 px、アスペクト比は 2:5〜5:2、ファイルサイズは 30 MB 未満にしてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 開始フレームのあとの変化を書きます。動作、カメラ、音。 1 文字以上 · 7000 文字以内 |
image_url | はい | 開始フレームです。被写体、衣装、構図を決め、モデルはこれに忠実に従います。 |
last_image_url | いいえ | 任意の終了フレーム。締めるのは終わり方だけで、クリップの中間は自由なままです。 |
resolution | いいえ | 768p と 2k、どちらもネイティブ出力です。下書きは 768p、納品は 2k で。 |
duration_seconds | いいえ | 4〜15 の整数秒。4 秒は 768p でのみ利用できます。 |
料金
| 仕様 | 料金 |
|---|---|
| $0.037 / 秒 |
| $0.058 / 秒 |
ユースケース
承認済みの静止画を動かす
生成した静止画でも権利を確認した写真でも、フレームがすでにあるなら、このエンドポイントは描き直しなしでそれを動きに変えます。プロンプトに書くのは変化(動作、カメラ、音)だけなので、画像だけでは伝えられない部分に言葉をすべて使えます。
フレームに写っていないものを見せる
cup-then-two-in-one-shirt の例は静物から始まります。手がカップを画面外へ持ち上げ、カメラがティルトしてピントを送り、部屋の奥に 2 人目の人物が現れます。3 つの変化はすべて時間の中で起きるもので、入力画像にはどれも写っていません。6 秒で生成されており、2k の前に使う下書きの長さとして手頃です。
15 秒を超えて場面を続ける
場面を続けるには、MiniMax H3 ビデオ延長を使います。承認したクリップの最終フレームから次のセグメントを始め、両者をつないだ 1 つのファイルで返すので、プロンプトは次に起きることだけを書けば済みます。次のショットをフレーム単位で自分で操作したい場合は、その最終フレームを次の image_url としてここに送ってください。
プロンプトガイドと実践のヒント
フレームを描写し直さない
開始フレーム以降の変化を書き、見た目は画像に任せます。どの文も「動くもの」か「音がするもの」を指しているかを確認すると判断しやすくなります。windowsill-turn のプロンプト「she turns her head toward camera without changing expression. Rain runs down the window, distant traffic」で十分なのは、誰がどこにいるかをフレームがすでに示しているからです。
2 枚のフレームをつなげて用意する
last_image_url を送るときは、開始フレームと対にして準備します。被写体、衣装、光をそろえ、構図の変化にも無理がないようにしてください。食い違う 2 枚を渡すと、クリップの中盤が両者の間で折り合いをつけようとします。そのうえで、robe-to-doorway の例のように、2 枚をつなぐ身体の動きを書き(「ベッドの端から立ち上がり… 戸口でこちらを振り返って止まる」)、その動きが起こるのに十分な秒数を与えてください。
出力に合わせてフレームを整える
出力の形はフレームで決まるので、アップロード前に納品時のアスペクト比へトリミングし、サイズ条件も確認します。768p で下書きし、採用するテイクを 5 秒以上の長さで 2k として再実行します。このエンドポイントは seed を受け取らないため、コマ単位のアップスケールではなく新しいテイクになると考えてください。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "minimax/h3/image-to-video",
"input": {
"duration_seconds": 5,
"enable_prompt_expansion": false,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "768p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。













