Hailuo 2.3 Fast
MiniMax Hailuo 2.3 Fastは、動きを短く指示するプロンプトで、最初のフレームの画像をアニメーションにします。商品ショット、人物のポーズ、絵コンテの静止画には、この画像から動画を作るプロファイルを選べます。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
MiniMax Hailuo 2.3 Fastは、画像から動画を生成する名前付きのFastプロファイルです。構図を整えた最初のフレーム画像から始め、被写体やカメラをどう動かすかを記述します。商品の静止画、キャラクターのポーズ、絵コンテのフレームが、ショットの具体的な視覚上の出発点になります。
画像と動きの指示を準備する
各辺300〜4,096ピクセルの正方形のPNGまたはJPEG画像を、HTTPS URLで指定します。ダウンロードされる画像ファイルは20,000,000バイト以下である必要があります。プロンプトは1〜199文字に収め、一つの見える動作と、ショットに重要な動きに集中させます。
クリップの完了まで追跡する
このプロファイルは、公称6秒の768 × 768のMP4クリップ1本を生成するよう設定されています。リクエストは一度送信し、返されたIDを保存して、その元リクエストが完了するまで追跡します。返された動画をダウンロードし、報告された寸法と測定した長さを結果とともに保存します。作成結果が不確かな場合は、再作成せず元リクエストの確認を続けます。
Ailoot Ultra · 動画 POST /v1/videos MiniMax-Hailuo-2.3-Fast
MiniMax-Hailuo-2.3-Fastはじめに
MiniMax Hailuo 2.3 Fastは、動きを短く指示するプロンプトで、最初のフレームの画像をアニメーションにします。商品ショット、人物のポーズ、絵コンテの静止画には、この画像から動画を作るプロファイルを選べます。
- 対応する入力
- テキスト · 画像
- 結果
- 動画
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 動画 POST /v1/videos
- 入力の種類
text,image- 出力の種類
video- 出力形式
- mp4
- 出力数
- 最大 1 出力
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 MiniMax-Hailuo-2.3-Fast | デフォルト— |
フィールドprompt | 種類string | 要件必須 | 値と制限 最小の長さ: 1 最大の長さ: 199 単位: Unicode 文字 | デフォルト— |
フィールドduration | 種類integer | 要件必須 | 値と制限 6 単位: 秒 | デフォルト— |
フィールドresolution | 種類string | 要件必須 | 値と制限 768P | デフォルト— |
フィールドfirst_frame_image | 種類https_url | 要件必須 | 値と制限 最大ファイルサイズ(バイト): 20,000,000 MIMEタイプ: image/png, image/jpeg 最小サイズ: 300 最大サイズ: 4,096 正方形のみ: はい | デフォルト— |
入力素材の組み合わせ
画像から動画へ · 必須: prompt, first_frame_image
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, prompt, duration, resolution, first_frame_image |
パラメータother_options | 仕様false |
パラメータduration | 仕様6 |
パラメータresolution | 仕様768P |
パラメータprompt_max_characters | 仕様199 |
パラメータfirst_frame_image | 仕様{"type":"https_url","format":["png","jpeg"],"dimensions":"正方形、300..4096ピクセル","full_image_validation_before_send":true,"maximum_file_bytes":20000000} |
パラメータmaterial_types | 仕様text, image |
パラメータadditional_properties | 仕様false |
メソッドのエイリアス: /v1/videos/generations, /videos, /videos/generations
ライフサイクル: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
作成は一度だけ行い、返されたIDを保存してください。
元のステータスをポーリングし、完了したすべてのアセットと長さを保持してください。
料金
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
Ailootの料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | クリップの名目上の長さ(秒) | 解像度 | 課金単位 | 料金 |
|---|---|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | クリップの名目上の長さ(秒)— | 解像度— | 課金単位— | 料金 入力 · 入力トークン — / 1K トークン 出力 · 出力トークン — / 1K トークン 入力 · キャッシュ読み取り — / 1K トークン 入力 · キャッシュ書き込み — / 1K トークン 入力 · キャッシュ書き込み、1時間 — / 1K トークン |
| 設定Ultra | 料金表— | クリップの名目上の長さ(秒)6 | 解像度768P | 課金単位公称長6sの出力クリップあたり | 料金 出力 · 公称6sの出力クリップ $0.4 公称長6sの出力クリップあたり |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
参考料金の詳細
モデル単位の参照料金表は、メソッド選択、見積もり、課金を変更しません。実際の課金には、選択したAilootメソッドの料金を適用します。
MiniMax-Hailuo-2.3-Fast
設定別の価格
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · 標準設定 | 課金条件デフォルト設定 | 料金 入力 · 入力 $0.00 呼び出しあたり 出力 · 出力 $0.40 呼び出しあたり |
MiniMax-Hailuo-2.3-Fast
設定別の価格
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · 標準設定 | 課金条件デフォルト設定 | 料金 入力 · 入力 $0.00 呼び出しあたり 出力 · 出力 $0.80 呼び出しあたり |
MiniMax-Hailuo-2.3-Fast
設定別の価格
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · デフォルト設定 | 課金条件デフォルト設定 | 料金 入力 · 入力 $0.00 呼び出しあたり 出力 · 出力 $0.80 呼び出しあたり |
リクエスト例
Ailoot Ultra · 動画
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the actual HTTPS first-frame image URL}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "MiniMax-Hailuo-2.3-Fast", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 6, "resolution": "768P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Choose the actual HTTPS first-frame image URL")
p["first_frame_image"]=u
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
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
結果を受け取って保存
Ailoot Ultra · 動画
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_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から取得してください。
完了したdata[]には、所有するすべての署名付きコンテンツURLが含まれます。返された各URLを取得するか、コンテンツエンドポイントでindexに実際の出力インデックスを指定してください。元のジョブが失敗した場合、charge_pending_checkが返されることがあります。ジョブを作り直さず、その元のジョブを確認してください。
元のレスポンスを確認する場合
既存の元のジョブを読み取ってください。結果不明の送信を決して再実行しないでください。
最大出力数: 1.
レスポンスのフィールド
| フィールド | 種類 | 意味 |
|---|---|---|
フィールドid | 種類string | 意味— |
フィールドobject | 種類string | 意味— |
フィールドmodel | 種類string | 意味— |
フィールドstatus | 種類string | 意味— |
フィールドdata[] | 種類signed content URL | 意味— |
フィールドcharge_pending_check | 種類boolean | 意味— |
フィールドerror.code | 種類string | 意味— |
フィールドerror.message | 種類string | 意味— |
フィールドrequested_nominal_duration_seconds | 種類integer | 意味— |
フィールドmeasured_duration_seconds | 種類number | 意味— |
フィールドwidth | 種類integer | 意味— |
フィールドheight | 種類integer | 意味— |
フィールドoperation_id | 種類string | 意味status=unknownの場合に返されます。実際の元の公開動画操作IDです |
フィールドrequest_id | 種類string | 意味status=unknownの場合は任意です。元のタスクにリクエストIDがある場合にのみ返されます。 |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件動画プロファイルの解析前に、未加工のリクエスト本文の読み取りに失敗します | 次の手順返されたレスポンスを保持し、読み取りできないリクエスト本文を修正してください。 |
レスポンス422 · price_unavailable | 条件正確な動画プロファイルを解析できないか、解析済みの完全なプロファイルに一致する利用可能な料金表がありません | 次の手順レスポンスを保持してください。利用が許可された正確で完全なプロファイルと、その公開料金表を使用します。この分岐は、プロバイダーへの送信前に実行されます。 |
レスポンス409 · video_not_ready | 条件元の結果のコンテンツはまだ利用できません | 次の手順元の返却IDをポーリングし、Retry-Afterに従ってください。 |
レスポンスserver_error | 条件返されたレスポンスは、操作または結果の確認が必要であることを示しています | 次の手順最初に返された操作/タスク ID、リクエストヘッダー、レスポンスを保存し、その元の操作に対してサポートされている読み取りを継続してください。作成リクエストを再送しないでください。 |
レスポンス200 · video_result_unverified | 条件元のFastタスクの状態は不明です。status=unknownかつcharge_pending_check=trueです | 次の手順実際に返されたid/operation_idと、任意のrequest_idを保持してください。元のタスクだけを読み取ってください。決して再送信しないでください。 |
エイリアス
モデルのエイリアス
Ailoot Ultra MiniMax-Hailuo-2.3-Fast
メソッドパスのエイリアス
/v1/videos/generations, /videos, /videos/generations
関連する呼び出し用ID
FAQ · Hailuo 2.3 Fast
- 利用できる入力と結果は何ですか?
POST /v1/videos·MiniMax-Hailuo-2.3-Fast:text,image→video- リクエストはどの項目を使用しますか?
POST /v1/videos·MiniMax-Hailuo-2.3-Fast:model,prompt,duration,resolution,first_frame_image- どの制限が適用されますか?
POST /v1/videos·MiniMax-Hailuo-2.3-Fast:prompt.maximum_length:199