MiniMax: H3
MiniMax H3は、テキスト、フレーム画像、マルチモーダル参照から、ネイティブのステレオ音声付き短編動画を生成します。開始・終了フレームによる制作、参照に基づく編集、動きや声の関係指定に対応し、出力は4〜15秒で、独立した2K再生成フローもあります。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
マルチモーダルの指示から一つの映像・音声の結果へ
MiniMax H3はMiniMaxのオムニモーダル動画システムです。テキスト、画像、動画、音声を一緒に解釈し、ネイティブのステレオ音声付き動画を生成します。メーカーは、商品ビジュアル、広告、動くポスター、映画タイトルのコンセプトなど、シーン説明と同じくらい参照素材間の関係が重要な短い創作に向けて紹介しています。
文書化されたシステムは、24fps、32 kHzステレオ音声で4〜15秒の動画を生成します。H3-Baseは768pで生成し、完全な2Kフローは元のマルチモーダルコンテキストを使って結果を再生成します。単なる拡大以上の処理で、第二段階はモデルと元コンテキストを再び使い、細部を復元します。H3 MaxとH3-Context-IRにはそれぞれ別の役割と制限があります。
テキストとフレームによる制作
テキストのみの入力は、映像と音声のタイムライン全体を記述します。最初の画像は冒頭、最後の画像は末尾を固定し、2枚で両方を定められます。開始フレームのショットでは、静止画に見える構図と識別性から始め、そこから展開する動作を記述します。開始から終了フレームへの遷移では、無関係な二つの画像説明を繰り返さず、二つの状態を結ぶ目に見える動きを記述します。
実用的な商品指示では、冒頭の閉じたパッケージ、それを開く手、穏やかなカメラ移動、到達する最終状態を指定できます。入力フレームでは物体の形、ラベルの位置、照明を保ちます。フレームによる制作と参照による制作は別の入力モードで、メーカーのインターフェースでは一件のリクエスト内で開始・終了フレームと参照メディアの役割を混在させません。
参照による生成と編集
参照モードは、テキストと画像、動画クリップ、音声クリップを受け付けます。キャラクターの外観、場所、カメラ移動、元クリップの時間的構成、声など、各素材が何を与えるかを特定します。カメラ移動だけに使う動画と、実際に編集または延長する動画は異なります。その関係を明示します。
メーカーの参照ガイドは、被写体の定義、タスク概要、保持内容の分析、詳しいショット説明、全体の音風景、観客だけに聞こえる背景音楽を分けています。見える内容の保持と、属性の転用、広いスタイル参照を区別します。音声も、信号のコピーと、音色、リズム、話し方の参照は異なります。指示全体で役割を一定に保ちます。
参照主体のシーンでは、キャラクター画像、短いカメラ移動の参照、音声の声の参照を用意し、それぞれが目的のショットのどこへ影響するかを説明します。識別性を保つ衣服、環境、物体の細部を述べます。完成クリップをこれらの要件と比較し、動きの一貫性や、見える話者と聞こえる声の関係も確認します。
発話、音、ショットのタイミング
H3は対話、物理的な音、環境音、音楽をまとめてモデル化します。モデルカードは、アラビア語、中国語、英語、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語、ロシア語、スペイン語の安定した対話対応を文書化し、その他の言語の対応はばらつくと説明しています。正確な話す言葉と言語を指定し、ショット間で話者の識別性を一定に保ちます。
メーカーのプロンプト作成ガイドは、説明部分に英語を使い、対話と画面上の文字は元言語で保持します。発話内容は<d>[Language] ...</d>を使い、話者の識別と声の説明はブロック外に置きます。実際の発話と画面外のナレーションを区別し、カットをまたいで続くせりふや、末尾で途切れるせりふを特定します。見える文字も正確に保ちます。選んだ時間に発話量を合わせ、描画された文字と聞こえるせりふを一緒に確認します。
カメラ移動は動作として記述し、重要なら範囲と速度も含めます。再生順にショット番号を付け、カット時刻を動画時間内に収めます。足音やドアの閉まる音などのシーン内音と、観客だけに聞こえる音楽を分けます。こうした指定で、短いショット計画を解釈しやすくし、結果と照合しやすくできます。
入力の準備と数値上限
現行の生成スキーマは全モードで空でないテキストを要求し、テキスト項目ごとに最大7,000文字です。画像はJPG、JPEG、PNG、WebP、HEIC、HEIF、各最大30 MB、各辺256〜5,760ピクセル、アスペクト比0.4〜2.5です。フレーム入力は開始1枚と終了1枚、参照モードは参照画像最大9枚です。
参照動画はMP4またはMOVを最大3本、各2〜15秒、合計15秒以下です。各最大50 MB、映像コーデックはH.264またはH.265、音声はAACまたはMP3、各辺256〜5,760ピクセル、比率0.4〜2.5、23.976〜60fpsです。参照音声はWAVまたはMP3を最大3本、各最大15 MB、各2〜15秒、合計15秒以下です。モデルカードは混合参照入力を最大12ファイルに制限しています。文書化されたリクエストボディの上限は64 MBで、各ファイルの上限とは別です。
指示に貢献する参照だけを選び、すべての貢献を明記します。説明のない複数の矛盾する視点より、明確な被写体の画が役立ちます。参照の順序を保ち、必要なシーンの文脈を失わずに無関係な部分をトリミングし、短い元クリップに要求する動作や声の特徴が含まれるかを確認します。
出力の形とシステム全体
メーカーのH3インターフェースには768Pと2Kがあります。テキストのみの生成では、21:9、16:9、4:3、1:1、3:4、9:16の具体的な比率が必要です。開始・終了フレームによる制作は入力画像から比率を取り、参照制作では適応型または明示的な比率を使えます。整数の出力時間は4〜15秒です。
モデルカードは、指示を解釈・充実させるH3-Context-IR、映像・音声を生成するH3-Base、高解像度結果を作るH3-Regenerate-2Kを区別しています。公開されたベースのチェックポイントは、フレームによるタスクとオムニ参照タスクに分かれています。コンテキストと再生成のコンポーネントはベースの重みとは別なので、公開チェックポイントの名前だけではシステム全体の動作は分かりません。
メーカーの生成フローは非同期です。タスク照会は過去7日間のタスクを取得します。実際の動画結果が返るまでタスク識別情報を保持し、その後は期限付きのダウンロード先だけでなくクリップを保存します。意図した視聴サイズで、視覚的な識別性、小さな文字、物体同士の作用、発話内容、音のタイミングを確認します。メーカーはマルチモーダル理解と細かな視覚表現を継続的な改善領域として挙げており、詳しい指示と元素材との比較が引き続き重要です。
Ailoot Ultra · 動画 POST /v1/videos minimax/hailuo-3
minimax/hailuo-3はじめに
MiniMax H3は、テキスト、フレーム画像、マルチモーダル参照から、ネイティブのステレオ音声付き短編動画を生成します。開始・終了フレームによる制作、参照に基づく編集、動きや声の関係指定に対応し、出力は4〜15秒で、独立した2K再生成フローもあります。
- 対応する入力
- テキスト · 画像 · 音声 · 動画
- 結果
- 動画
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 動画 POST /v1/videos
- 入力の種類
text,image,audio,video- 出力の種類
video- 出力形式
- 元のMP4バイト列(正規化・トランスコードなし)
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 minimax/hailuo-3 | デフォルト— |
フィールドprompt | 種類string | 要件必須 | 値と制限 | デフォルト— |
フィールドduration | 種類integer | 要件必須 | 値と制限 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 最小値: 1 最大値: 600 | デフォルト— |
フィールドresolution | 種類string | 要件任意 | 値と制限 2K | デフォルト— |
フィールドaspect_ratio | 種類string | 要件任意 | 値と制限 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | デフォルト— |
フィールドgenerate_audio | 種類boolean | 要件任意 | 値と制限 false, true | デフォルト— |
フィールドframe_images | 種類array | 要件任意 | 値と制限 最小項目数: 1 最大項目数: 2 入力コンテンツ: フレームオブジェクトの配列。各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_typeを指定します。HTTPS画像URLを使用し、frame_typeをfirst_frameまたはlast_frameに設定してください。各フレームの役割はそれぞれ最大一回まで指定できます。 正確なキー: type, image_url, frame_type 条件: これらのキーは各フレームオブジェクトを記述します。image_urlに含めるのはurlのみです。テキストのみのリクエストではframe_imagesを省略してください。 | デフォルト— |
フィールドinput_references | 種類array | 要件任意 | 値と制限 | デフォルト— |
フィールドcallback_url | 種類string | 要件任意 | 値と制限 パターン: ^https:// | デフォルト— |
フィールドsession_id | 種類string | 要件任意 | 値と制限 | デフォルト— |
フィールドtrace | 種類object | 要件任意 | 値と制限 | デフォルト— |
フィールドuser | 種類string | 要件任意 | 値と制限 | デフォルト— |
入力素材の組み合わせ
テキストから動画へ · テキストのプロンプト。 · 必須: model, prompt, duration
promptをテキスト、durationを整数の秒数で指定してください。サポートされている解像度を選び、必要に応じてアスペクト比を指定します。
model: 種類: string · minimax/hailuo-3
prompt: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい
画像から動画へ · テキストのプロンプトと先頭フレーム画像。 · 必須: model, prompt, duration, frame_images
frame_imagesは配列です。各フレームオブジェクトにはtype、image_url、frame_typeがあり、image_urlにはurlを含めます。typeをimage_urlに設定してください。first_frameを使用し、任意でlast_frameも指定できます。各フレームの役割は、それぞれ最大一回まで指定できます。各フレームには公開HTTPS画像URLを指定してください。一つのリクエストではフレーム画像か参照画像のどちらかを使用し、両者を併用しないでください。サポートされている解像度を選び、必要に応じてアスペクト比を指定します。
正確なキー: type, image_url, frame_type
model: 種類: string · minimax/hailuo-3
prompt: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい
Reference to video · テキストのプロンプトと、サポートされている画像・動画・音声の参照素材。 · 必須: model, prompt, duration, input_references
input_referencesはオブジェクトの配列です。typeをimage_url、video_url、audio_urlに設定し、それぞれに対応するフィールドにurlを含めてください。公開HTTPS URLを使用します。参照モードを選ぶ場合はframe_imagesを省略してください。見積もりには、最初の五枚を超える参照画像についてのみ、表示された画像一枚あたりの料金要素を含めます。最終請求額は実際に課金された設定に従います。参照画像とフレーム画像は併用しないでください。サポートされている解像度を選び、必要に応じてアスペクト比を指定します。
model: 種類: string · minimax/hailuo-3
prompt: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, prompt, duration |
パラメータmaterial_types | 仕様text, image, audio, video |
パラメータadditional_properties | 仕様false |
パラメータoptional_controls | 仕様resolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user |
ライフサイクル: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
料金
最終料金の計算方法
表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
比較用の推定料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 予測数量 | 課金単位 | 課金条件 | 料金 |
|---|---|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 予測数量— | 課金単位— | 課金条件— | 料金 入力 · 入力トークン · 比較専用の見積もり — / 1K トークン 出力 · 出力トークン · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ読み取り · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み、1時間 · 比較専用の見積もり — / 1K トークン |
| 設定動画料金 | 料金表— | 予測数量— | 課金単位動画1秒あたり | 課金条件この価格キーには追加条件が定義されていません。 | 料金 出力 · 動画料金 · 比較専用の見積もり $0.26 動画1秒あたり |
| 設定参照画像 | 料金表— | 予測数量— | 課金単位参照画像あたり | 課金条件— | 料金 入力 · 参照画像 · 比較専用の見積もり $0.08 参照画像あたり |
| 設定生成費用の見積もり | 料金表— | 予測数量生成1回分の概算 | 課金単位— | 課金条件— | 料金 出力 · 推定生成コスト · 比較専用の見積もり $1.3 生成前の見積もり この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。 |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
参考料金の詳細
モデル単位の参照料金表は、メソッド選択、見積もり、課金を変更しません。実際の課金には、選択したAilootメソッドの料金を適用します。
動画設定の料金参照情報
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定動画料金 | 課金条件この価格キーには追加条件が定義されていません。 | 料金 出力 · 動画料金 $0.26 動画1秒あたり 表示されている設定の公開料金の参照値です。最終請求額には、実際に課金された設定が適用されます。 |
| 設定最初の五枚を超える参照画像 | 課金条件この価格キーには追加条件が定義されていません。 | 料金 入力 · 最初の五枚を超える参照画像 $0.08 画像あたり 最初の五枚の参照画像は無料です。一覧の画像一枚あたりの単価は、最初の五枚を超えた分に適用されます。表示された設定に対する公表料金の参照情報です。最終請求額は、実際に課金された設定に従います。 |
リクエスト例
Ailoot Ultra · 動画
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"minimax/hailuo-3","prompt":"A serene mountain landscape at sunset","resolution":"2K"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
結果を受け取って保存
Ailoot Ultra · 動画
所有コンテンツの署名付きURL
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
ジョブのステータスを確認
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
その他のコンテンツ取得
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
完了した結果をすべて保存
完了した動画や返されたファイルをすべて保存し、実際に返されたすべてのアセットURLから取得してください。
実際に得られた所有出力と、返された実測メタデータをすべて保持してください。
元のレスポンスを確認する場合
503 result_pending_check + 元のid + X-Should-Retry:false;元のリクエストを決して再実行しないでください
レスポンスのフィールド
| フィールド | 種類 | 意味 |
|---|---|---|
フィールドindex | 種類integer | 意味出力リスト内での、この動画のゼロ始まりの位置。 |
フィールドcontent_url | 種類string | 意味この完了済み動画の署名付きHTTPSダウンロードURL。 |
フィールドsha256 | 種類string | null | 意味元の動画バイト列のSHA-256ダイジェスト。取得できない場合はnullです。 |
フィールドsize_bytes | 種類integer | null | 意味元の動画ファイルのサイズ(バイト)。取得できない場合はnullです。 |
フィールドduration_ms | 種類integer | null | 意味実測された動画の長さ(ミリ秒)。取得できない場合はnullです。 |
フィールドwidth | 種類integer | null | 意味動画の幅(ピクセル)。取得できない場合はnullです。 |
フィールドheight | 種類integer | null | 意味動画の高さ(ピクセル)。取得できない場合はnullです。 |
フィールドvideo_codec | 種類string | null | 意味動画コーデックの識別子。記録されていない場合はnullです。 |
フィールドhas_audio | 種類boolean | null | 意味動画に音声トラックが含まれるかどうか。未測定の場合はnullです。 |
フィールドaudio_codec | 種類string | null | 意味音声コーデックの識別子。識別子が記録されていない場合はnullです。 |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス404 · not_found_error | 条件動画へのアクセスが利用できないか、この動画IDが見つかりません。 | 次の手順動画へのアクセス権を確認してください。既存の動画には、元の公開IDと同じAPIキーを使用してください。 |
レスポンス401 · authentication_error | 条件APIキーが認証済みアカウントと一致しません。 | 次の手順送信する前に、APIキーとアカウントのアクセス権を確認してください。 |
レスポンス400 · invalid_request_error | 条件リクエストを読み取れないか、ダウンロードのインデックスが無効です。 | 次の手順リクエスト本文を修正してください。ダウンロードする場合は、元のタスクから返された出力インデックスを選択してください。 |
レスポンス422 · price_unavailable | 条件選択された動画設定の料金を算出できません。 | 次の手順サポートされている動画設定を選び、必須オプションをすべて指定してから、修正したリクエストを送信してください。 |
レスポンス422 · invalid_request_error | 条件動画入力、または元の継続タスクが無効です。 | 次の手順有効なHTTPS入力を使用してください。継続する場合は、完了した元の動画の公開IDと、同じAPIキーを使用してください。 |
レスポンス402 · billing_error | 条件利用可能な残高または上限の制約により、料金を仮押さえできません。 | 次の手順新しいリクエストを送る前に、利用可能な残高と上限を確認してください。 |
レスポンス503 · server_error | 条件動画の検証、保存領域、またはサービスへのアクセスを一時的に利用できません。 | 次の手順サービスが利用可能になるまでお待ちください。すでに動画IDがある場合は、別の生成を作成せず、その元のタスクを確認してください。 |
レスポンス503 · result_pending_check | 条件元の動画の結果と請求額を確認する必要があります。 | 次の手順返された動画IDを保持し、そのタスクを確認してください。確認中に、代わりの生成リクエストを送信しないでください。 |
レスポンス503 · owned_result_unavailable | 条件既存の動画のダウンロードを一時的に利用できません。 | 次の手順後で同じ動画タスクを確認し、その既存の出力をダウンロードしてください。新しい生成を行うと、別の操作が作成されます。 |
レスポンス409 · video_not_ready | 条件動画コンテンツは公開されていません。 | 次の手順元のタスクのステータスを確認してください。completedと報告されたらダウンロードします。failedと報告された場合は、その料金確認の通知に従ってください。 |
エイリアス
モデルのエイリアス
Ailoot Ultra minimax/hailuo-3
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · MiniMax: H3
- 利用できる入力と結果は何ですか?
POST /v1/videos·minimax/hailuo-3:text,image,audio,video→video- リクエストはどの項目を使用しますか?
POST /v1/videos·minimax/hailuo-3:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,callback_url,session_id,trace,user- どの制限が適用されますか?
POST /v1/videos·minimax/hailuo-3:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1