模型

MiniMax-Hailuo-2.3

Markdown · JSON

MiniMax-Hailuo-2.3

MiniMax Hailuo 2.3 可根據文字或起始圖片建立影片,並控制動作及運鏡。可選六秒 768P 或 1080P,或十秒 768P,適合可檢查及剪輯的角色演出、風格化場景與產品鏡頭。

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。

MiniMax Hailuo 2.3 是提供文字轉影片及圖片轉影片模式的影片生成模型。它以 Hailuo 02 為基礎,著重身體動作、視覺風格、角色細微表情,以及對動作指示的回應。提供文字場景即可從頭建立鏡頭,也可用起始圖片確立開場畫面,再描述接續動態。

肢體演出是此版本的主要改善領域之一。Hailuo 2.3 旨在讓身體動作更流暢、可控,包括攝影機移動中的場景。加入裝飾細節前,請先規劃重要動作。角色拿起物件、轉向另一個人或穿越房間,都是可供鏡頭評估的可見事件。先決定哪個動作承載故事,再讓周邊指示與之保持一致。

風格化是另一重點。模型支援動漫與插畫,以及水墨畫、遊戲 CG 等風格。請描述所需視覺處理,並讓外觀與場景一致。若起始圖片已確立繪畫風格,文字應引導動畫,而非再引入互相競爭的角色設計描述。請檢查整段短片,確認這種處理在動作中仍清楚可辨。

模型也著重臉部演出及細微表情變化。角色鏡頭應圍繞重要反應準備,例如注意到物件、產生好奇,或以淡淡微笑回應。近景較容易評估變化,大量手勢序列則可能分散注意。請檢查反應前、中、後的臉部,不要只判斷一張代表性的靜態影格。

物件動態適合以產品為中心的場景。一份原創簡述可以讓小陶瓷花瓶在暖色側光中旋轉,攝影機逐漸靠近。請指出必須維持可辨識的特性,例如輪廓、瓶口及表面質感。檢查它們在動作中的狀態,因為氣氛可信不代表產品畫面忠實。

文字轉影片的必要描述最多 2,000 個字元。請以連貫順序交代主體、動作、場景與視覺風格。圖片轉影片需要起始影格圖片,可選填最多 2,000 個字元的描述。圖片固定開場構圖,因此要求動作前,請先準備主體與畫框。手臂、物件或角色需要移動之處,應保留可見空間。

起始圖片接受 JPG、JPEG、PNG 或 WebP,必須小於 20 MB、短邊大於 300 像素,長寬比介於 2:5 與 5:2。可透過公開圖片 URL 或 Base64 資料 URL 提供。請選擇清楚開場圖片,不要依賴動畫修復被遮擋的臉部或已遭裁切的動作。

Hailuo 2.3 以每秒 24 格生成。六秒鏡頭可用 768P 或 1080P,十秒鏡頭使用 768P。預設為六秒及 768P。請依想看見的動作選擇長度:簡短反應適合短鏡頭,較慢動作則需更多時間。將短片放入剪輯時,請讀取完成結果的實際寬高,因為解析度名稱不足以完整決定構圖。

攝影機指示可使用方括號指令。可用控制涵蓋橫向移動、水平搖攝、推近、垂直升降、俯仰、變焦、晃動、追蹤與靜態鏡頭。像 [Push in] 的指令可引導推近;同一括號內的一組指令同時作用,依序放置的指令則描述動作序列。MiniMax 建議同時最多三個指令。運鏡應與主體動作相容,讓主要事件容易理解。

自動提示詞最佳化預設啟用,也可停用,以更直接控制提供的文字。最佳化啟用時,選用的快速前處理可縮短最佳化時間;此設定與選擇 Hailuo 2.3 Fast 模型不同。標準 Hailuo 2.3 支援兩種創作模式,Fast 則是獨立的圖片轉影片版本。請依專案從純文字或現有影格開始,選擇版本。

生成流程回傳非同步工作識別碼,接著回報準備、排隊、處理、成功或失敗。成功時,結果提供檔案識別碼及實際影片尺寸,再擷取完成影片下載。請在下載位址有效期間保存短片。原廠目前影片下載參考文件列出的下載 URL 有效期為一小時。製作剪輯段落時,請將每個鏡頭與提示詞、起始圖片一併保存,讓所選創意方向在修訂中可追溯。

請在保存的短片中檢查動作、物理連續性、臉部或產品細節、視覺風格及攝影機行為。先觀看整段鏡頭,再檢查與其他素材銜接的開頭及結尾。若請求包含太多互相競爭的動態,請簡化主要動作;若開場設計不清楚,則改善起始圖片。選出能傳達預期事件的鏡頭,再於剪輯流程加入旁白、標題與轉場。

Ailoot · 影片 POST /v1/videos/generations MiniMax-Hailuo-2.3

MiniMax-Hailuo-2.3

MiniMax /MiniMax-Hailuo-2.3

入門

MiniMax Hailuo 2.3 可根據文字或起始圖片建立影片,並控制動作及運鏡。可選六秒 768P 或 1080P,或十秒 768P,適合可檢查及剪輯的角色演出、風格化場景與產品鏡頭。

接受的輸入
文字 · 圖片
結果
影片

Ailoot 可用 · 輸入與方法

Ailoot · 影片 POST /v1/videos/generations
輸入
text, image
輸出
video
輸出格式
mp4
欄位類型要求值與限制預設值
欄位model類型string要求必填值與限制
MiniMax-Hailuo-2.3
預設值—
欄位prompt類型string要求必填值與限制
長度下限: 1
長度上限: 2,000
單位: Unicode 字元
預設值—
欄位duration類型integer要求選填值與限制
6, 10
條件: 10 秒需使用 768P
單位: 秒
預設值6
欄位resolution類型string要求選填值與限制
768P, 1080P
條件: 1080P 要求 6 秒
預設值768P
欄位first_frame_image類型https_url|data_image_url要求選填值與限制
解碼後位元組數上限: 20,971,520
MIME 類型: image/jpeg, image/png, image/webp
尺寸下限(不含下限值): 300
長寬比範圍: 2:5, 5:2
預設值—
欄位prompt_optimizer類型boolean要求選填值與限制預設值—
欄位fast_pretreatment類型boolean要求選填值與限制預設值—
輸入素材組合

圖片生成影片 · 必填: prompt, first_frame_image

文字生成影片 · 必填: prompt

方法參數與生命週期
參數規格
參數material_types規格text, image
參數required規格null
參數optional_controls規格null

生命週期: 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 均為精確值;供應商能力與准入狀態分開。

方案

Ailoot 方法費率

Ailoot 影片POST /v1/videos/generations
輸出
US$0.28 每部 768p、6 秒影片

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

參考費率詳情

模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。

MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$0.60 每次呼叫
MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$1.20 每次呼叫
MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$1.20 每次呼叫

請求範例

Ailoot · 影片

影片範例
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "MiniMax-Hailuo-2.3", "prompt": "A person walks slowly through a quiet garden as the camera tracks from the side.", "duration": 6, "resolution": "768P"}'

接收並儲存結果

Ailoot · 影片

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
查看工作狀態
GET · 取得狀態
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_VIDEO_ID
video_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ["AILOOT_VIDEO_ID"], safe=""))') || exit 1
curl "https://api.ailoot.ai/v1/videos/generations/$video_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY"
其他內容讀取方式
GET · 取得內容
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_VIDEO_ID
video_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ["AILOOT_VIDEO_ID"], safe=""))') || exit 1
curl "https://api.ailoot.ai/v1/videos/generations/$video_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  --output video.mp4
保留所有已完成的結果

請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 URL 取得素材。

請保留每個回傳的資料項目/輸出索引。content_url 僅代表第一個輸出;請取得每個實際內容路徑/資產。不帶 index 的 GET 內容請求並不代表所有輸出。

需要檢查原始回應時

請讀取現有的原始作業;切勿重新提交傳送結果不明的請求。

回應欄位
欄位類型
欄位id類型string
欄位object類型string
欄位model類型string
欄位status類型string
欄位content_url類型signed URL
欄位data[]類型signed URL
欄位usage類型object
欄位result_pending_check類型boolean
錯誤與後續步驟
回應條件下一步
回應400 · invalid_request_error條件必要欄位、素材表示方式或參數值無效下一步提出新的建立請求前,先修正指定欄位。
回應409 · video_not_ready條件原始結果內容尚無法取得下一步請輪詢原始回傳的 ID,並遵守 Retry-After。
回應server_error條件回傳的回應表示該作業或結果需要檢查下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。

別名

模型別名

Ailoot MiniMax-Hailuo-2.3
Ailoot Ultra MiniMax-Hailuo-2.3

方法路徑別名

/v1/videos/generations, /videos, /videos/generations

相關呼叫用 ID

MiniMax-Hailuo-2.3, MiniMax-Hailuo-2.3

Ailoot Ultra · 影片 POST /v1/videos MiniMax-Hailuo-2.3

MiniMax-Hailuo-2.3

MiniMax /MiniMax-Hailuo-2.3

入門

MiniMax Hailuo 2.3 可根據文字或起始圖片建立影片,並控制動作及運鏡。可選六秒 768P 或 1080P,或十秒 768P,適合可檢查及剪輯的角色演出、風格化場景與產品鏡頭。

接受的輸入
文字
結果
影片

Ailoot 可用 · 輸入與方法

Ailoot Ultra · 影片 POST /v1/videos
輸入
text
輸出
video
輸出格式
mp4
輸出數量
最多 1 輸出
欄位類型要求值與限制預設值
欄位model類型string要求必填值與限制
MiniMax-Hailuo-2.3
預設值—
欄位prompt類型string要求必填值與限制
長度下限: 1
長度上限: 2,000
條件: 768P:最多 2000 個 Unicode 碼位。1080P:少於 200 個 Unicode 碼位(最多 199 個)。提示詞必須包含非空白文字。
單位: Unicode 字元
預設值—
欄位duration類型integer要求必填值與限制
6
單位: 秒
預設值—
欄位resolution類型string要求必填值與限制
768P, 1080P
預設值—
輸入素材組合

文字生成影片 · 必填: prompt

方法參數與生命週期
參數規格
參數content_type規格application/json
參數required規格model, prompt, duration, resolution
參數other_options規格false
參數duration規格6
參數resolution規格768P, 1080P
參數prompt_max_characters規格2000
參數material_types規格text
參數prompt_max_characters_by_resolution規格{"768P":2000,"1080P":199}

方法別名: /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解析度1080P計費單位每個標稱 6s 輸出片段費用
輸出 · 標稱 6s 輸出片段 $1.2 每個標稱 6s 輸出片段
設定Ultra費率表—片段名目時長(秒)6解析度768P計費單位每個標稱 6s 輸出片段費用
輸出 · 標稱 6s 輸出片段 $0.6 每個標稱 6s 輸出片段

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

參考費率詳情

模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。

MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$0.60 每次呼叫
MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$1.20 每次呼叫
MiniMax-Hailuo-2.3

各設定的價格

設定計費條件費用
設定MiniMax-Hailuo-2.3 · 預設設定計費條件預設設定費用
輸入 · 輸入 US$0.00 每次呼叫
輸出 · 輸出 US$1.20 每次呼叫

請求範例

Ailoot Ultra · 影片

curlcurl · 1080P / 6 秒
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "MiniMax-Hailuo-2.3", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 6, "resolution": "768P"}')

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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "MiniMax-Hailuo-2.3", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 6, "resolution": "1080P"}')

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}/content
  • GET /v1/videos/generations/{request_id}/content
查看工作狀態
GET · 取得狀態
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
儲存所有已完成的素材
GET · 取得所有已完成的素材
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
其他內容讀取方式
GET · 取得內容
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
保留所有已完成的結果

請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 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
錯誤與後續步驟
回應條件下一步
回應400 · invalid_request_error條件必要欄位、素材表示方式或參數值無效下一步提出新的建立請求前,先修正指定欄位。
回應409 · video_not_ready條件原始結果內容尚無法取得下一步請輪詢原始回傳的 ID,並遵守 Retry-After。
回應server_error條件回傳的回應表示該作業或結果需要檢查下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。

別名

模型別名

Ailoot MiniMax-Hailuo-2.3
Ailoot Ultra MiniMax-Hailuo-2.3

方法路徑別名

/v1/videos/generations, /videos, /videos/generations

相關呼叫用 ID

MiniMax-Hailuo-2.3, MiniMax-Hailuo-2.3

FAQ · MiniMax-Hailuo-2.3
可以使用哪些輸入與結果?

POST /v1/videos/generations · MiniMax-Hailuo-2.3: text, image → video

POST /v1/videos · MiniMax-Hailuo-2.3: text → video

請求使用哪些欄位?

POST /v1/videos/generations · MiniMax-Hailuo-2.3: model, prompt, duration, resolution, first_frame_image, prompt_optimizer, fast_pretreatment

POST /v1/videos · MiniMax-Hailuo-2.3: model, prompt, duration, resolution

適用哪些限制?

POST /v1/videos/generations · MiniMax-Hailuo-2.3: prompt.maximum_length: 2000

POST /v1/videos · MiniMax-Hailuo-2.3: prompt.maximum_length: 2000

更多詳情

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

公司及其專案組合

公司及其專案組合:數百萬客戶,每月銷售額達數十億。

優惠購買 token。

訂閱優惠適合持續工作,折扣碼購買 token 最高可折 50%。

訂閱
為定期請求選擇優惠方案。
最高 50% 折扣碼
購買時輸入代碼,價格依活動重算。
歷史中的費用
每次請求保存模型、token 與金額。

選擇訂閱 · 查看模型價格

將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人;轉售請申請經銷授權。

商用應用程式
在付費功能加入文字、圖片、影片與聲音生成。
經銷授權
提供專案說明與存取方式,要求書面使用和轉售條件。
網站文件
串接前可閱讀正式服務條款、授權合約與資料處理政策。

申請經銷授權 · 正式服務條款與授權合約