Hailuo 2.3 Fast
MiniMax Hailuo 2.3 Fast 依簡短動作提示,將首幀圖片動態化。商品鏡頭、角色姿勢或分鏡靜態圖片可選用此圖片轉影片設定檔。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
MiniMax Hailuo 2.3 Fast 是圖片轉影片生成的具名 Fast 規格。請先提供構圖完成的首格圖片,再描述主體或攝影機應如何移動。產品靜態圖片、角色姿勢或分鏡影格,都能為鏡頭提供具體視覺起點。
準備圖片與動作簡述
透過 HTTPS URL 提供方形 PNG 或 JPEG 圖片,每邊介於 300 與 4,096 像素。下載後的圖片檔案不得超過 20,000,000 位元組。提示詞長度維持 1–199 個字元,聚焦於一個可見動作與鏡頭所需的重要移動。
追蹤短片直到完成
此規格設定為一段 768 × 768 MP4 短片,標稱片長六秒。只提交一次請求,保存回傳 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 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 片段名目時長(秒) | 解析度 | 計費單位 | 費用 |
|---|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 片段名目時長(秒)— | 解析度— | 計費單位— | 費用 輸入 · 輸入 Token — / 1K Token 輸出 · 輸出 Token — / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定Ultra | 費率表— | 片段名目時長(秒)6 | 解析度768P | 計費單位每個標稱 6s 輸出片段 | 費用 輸出 · 標稱 6s 輸出片段 $0.4 每個標稱 6s 輸出片段 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
MiniMax-Hailuo-2.3-Fast
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入 US$0.00 每次呼叫 輸出 · 輸出 US$0.40 每次呼叫 |
MiniMax-Hailuo-2.3-Fast
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入 US$0.00 每次呼叫 輸出 · 輸出 US$0.80 每次呼叫 |
MiniMax-Hailuo-2.3-Fast
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定MiniMax-Hailuo-2.3-Fast · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入 US$0.00 每次呼叫 輸出 · 輸出 US$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