はじめに
MiniMax H3 動画編集 は、お手元の動画を video_url で送り、変更内容を書いたプロンプトを添えると、同じカットの新しいバージョンを返します。長さは 3〜15 秒、解像度は 480p・540p・768p で、既定では新しいサウンドトラックが生成されます。元の映像が、映っている人物、構図、動きを引き続き決め、プロンプトが照明、天気、画風、環境や特定の要素を書き換えます。参照画像は最大 9 枚、参照音声は最大 3 本まで送り、人物の特徴、画風、音を導けます。
開始素材に応じてモードを選ぶ
| 開始素材 | モード |
|---|---|
| 書いた場面やスクリプト | MiniMax H3 テキストから動画 |
| 承認済みの開始画像 | MiniMax H3 画像から動画 |
| 1〜9 枚の参照画像 | MiniMax H3 参照から動画 |
| 続きを作りたい動画 | MiniMax H3 動画延長 |
| 見た目を変えたい動画 | MiniMax H3 動画編集 |
主な機能とハイライト
人物と動きは元の動画が決める
元の動画が、映っている人物、画角、全員の動きを決めます。プロンプトが決めるのは、その周りの世界の見た目です。この役割分担があるから、編集は新しいショットを生成することとは違います。シーンを一から書き直す必要はなく、変更点だけを書けば済みます。元の動画は 15 秒までで、それより長いクリップは課金の前に拒否されるため、先にトリミングしてください。
晴れたテラスが嵐に変わる
テストには、OmniHuman 2.0 の例から取った 5 秒の 1280x720 のクリップを使いました。晴れた海辺のテラスに立つ、クリーム色のサテンのトレンチコートの女性です。プロンプトでは、暗い雲、雨、風に吹かれて濡れた髪とコート、遠くの稲妻を伴う嵐の夕暮れを求め、最後に「Keep her face, pose and movement.」と書きました。768p、duration_seconds を 5、音声をオンにして実行した結果、1344x768、24 fps、約 5.2 秒のクリップが、新しい音声付きで、約 3 分の処理を経て得られました。
変わった点は、晴れていた空が雲の多い暗い夕暮れになり、海の上で稲妻が光り、石の床が濡れて見えたことです。残ったのは、顔、コート、笑顔です。見込んでおくべき点が 2 つあります。768p では雨そのものは控えめでした。同じプロンプトを 480p で試したところ、雨の筋がより強く出ています。また、風に揺れる髪に片手を上げる動きが加わりました。元の動画にはない動きです。プロンプトが風に揺れる髪を求めたため、動きを描写すると小さな動きの変化がついてくることがあります。
参照素材は番号で呼び分ける
reference_image_urls は最大 9 枚の画像を受け付け、プロンプトでは <Picture 1> から <Picture 9> と呼びます。reference_audio_urls は最大 3 本の音声クリップを受け付け、<Audio 1> から <Audio 3> と呼びます。画像は画風や人物の特徴に、音声クリップは使いたい音に割り当ててください。参照は 1 つごとに少額の料金が加算されます。参照を使った実行はまだ行っていないため、最初のテイクはテストとして扱ってください。最初は画像 1 枚か音声 1 本から始め、何が変わるかを確かめてください。
音声・長さ・アスペクト比
generate_audio は既定でオンで、編集後の動画に新しいサウンドトラックが付きます。オフにすると、元の動画の音声トラックをそのまま残せます。音声の有無で料金が変わることはありません。duration_seconds は 3〜15 秒で、既定値は 5 秒です。動画全体を編集するには、元の動画の長さに合わせてください。aspect_ratio を省略すると元の動画の縦横比を保ちます。16:9、9:16、1:1、4:3、3:4、21:9、9:21 のいずれかを指定すると、構図を組み直せます。
3 つの解像度
768p が既定値で、H3 がネイティブに扱う解像度です。540p と 480p は秒単価が安く、処理時間も短く済みます。検証したのは 768p と 480p の試行で、540p は未検証です。料金は、選んだ解像度の秒単価で、編集後の動画の秒数と元の動画の秒数の両方に課金されます。そのため、元の動画が短いほど料金は安くなります。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 何を変えるか、続いて何を残すかの順に書きます。例えば「昼下がりを嵐の夕暮れに変え、顔と動きは残す」のようにします。 3 文字以上 · 5000 文字以内 |
video_url | はい | 編集する動画(MP4)。元の動画は 15 秒までです。 |
reference_image_urls | いいえ | 人物の特徴や画風を導く画像を最大 9 枚。プロンプトでは、リスト内の位置に応じて <Picture 1> から <Picture 9> と呼びます。 1 件以上 · 9 件以内 |
reference_audio_urls | いいえ | 音を導く音声クリップを最大 3 本。プロンプトでは、リスト内の位置に応じて <Audio 1> から <Audio 3> と呼びます。 1 件以上 · 3 件以内 |
aspect_ratio | いいえ | 省略可能。省略すると元の動画の縦横比のまま編集されます。 |
resolution | いいえ | 480p、540p、768p のいずれか。既定値は 768p で、H3 がネイティブに扱う解像度です。 |
duration_seconds | いいえ | 編集後の動画の長さ。3〜15 秒で、既定値は 5 秒です。 |
generate_audio | いいえ | 既定でオンで、編集後の動画に新しいサウンドトラックが生成されます。オフにすると、元の動画の音声トラックをそのまま残します。 デフォルト値: |
seed | いいえ | 任意の整数。一度に 1 つだけ変えながら固定値を送ると、テイクを比べやすくなります。 |
料金
編集後の動画の秒数と、元の動画の秒数の両方に課金されます。どちらも選んだ解像度の秒単価で計算し、元の動画の秒数は 1 秒単位で切り上げます。元の動画の長さは 15 秒までで、それより長い動画は課金の前に拒否されるため、先にトリミングしてください。参照画像や参照音声は 1 つごとに少額の料金が加算され、音声の有無は料金に影響しません。失敗したリクエストは課金されません。
| 仕様 | 料金 |
|---|---|
| $0.03 / 秒 |
| $0.045 / 秒 |
| $0.066 / 秒 |
ユースケース
天気、光、時間帯を変える
明るい午後を夕暮れに変える、雨を加える、強い真昼の日差しを柔らかい朝の光に替える、といったことができます。テラスの例がそうです。人物と動きは元の動画から来るため、撮り直さずに 1 つのテイクで複数の雰囲気を試せます。
完成したクリップの画風や舞台を変える
別の画風、季節、舞台を求めながら、演技はそのまま残せます。顔、ポーズ、動きなど、残すべきものを明記してください。これまでに試したのは天気と光の変更です。画風や舞台の変更がこのエンドポイントの本来の用途ですが、頼る前に下書きを確認してください。
要素を 1 つだけ変える
コートの色やシーン内の物など、特定の要素にプロンプトを絞り、それ以外はそのまま残すと書いてください。まず下書きを作り、変えるよう頼んでいない部分も確認してください。
プロンプトガイドと実践のヒント
変わる点、次に残す点の順に書く
テラスの例のプロンプトは良い形です。「Turn the sunny afternoon into a stormy dusk: dark clouds over the sea, rain streaking across the frame, her hair and coat wet and wind-blown, distant lightning. Keep her face, pose and movement.」最初の文が変更、2 つ目の文は歯止めです。新しいシーンとしてではなく、送った動画への変更として書いてください。
動きではなく環境を書く
テストでは、プロンプトに風に揺れる髪を書いたところ、髪に手を上げる動きが加わりました。クリップの動きを大切にしたい場合は、天気と光を書き、動作は元の動画に任せてください。
低解像度で下書きし、768p で仕上げる
480p は秒単価が安く、処理時間も短く済みますが、同じプロンプトでも見た目が変わることがあります。テストでは 480p の方が 768p より雨が強く出ました。下書きは、アイデアを大まかに確かめるためのもので、最終的な見た目のプレビューではないと考えてください。効果が思ったより弱ければ、どれくらい強くするかをプロンプトでより具体的に書き、2 回目のテイクを実行してください。
長さを元の動画に合わせる
動画全体を編集するには、duration_seconds をクリップの長さ(15 秒まで)に設定してください。元の動画は 15 秒までで、それより長い動画は課金の前に拒否されるため、必要な部分だけに切り出してからアップロードしてください。元の動画の秒数も課金されます。
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-edit/video-edit",
"input": {
"duration_seconds": 5,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "768p",
"video_url": "https://example.com/reference.mp4"
}
}'
# 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 リファレンスを参照してください。











