MiniMax: Hailuo 02
Hailuo 02 tạo video từ văn bản hoặc ảnh khung đầu, đồng thời hỗ trợ quy trình khung đầu và cuối được tài liệu hóa. Lệnh máy quay, tối ưu prompt và lựa chọn thời lượng, độ phân giải theo từng chế độ giúp định hình cảnh quay dự kiến.
Về mô hình
Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.
Hailuo 02 là mô hình video của MiniMax cho cảnh được chỉ dẫn bằng văn bản, làm ảnh chuyển động và quy trình khung đầu, khung cuối. Yêu cầu viết mô tả chủ thể, hành động và máy quay, còn ảnh khung hình được cung cấp có thể xác lập điểm bắt đầu thị giác hoặc đích của chuyển tiếp. Chọn chế độ tạo theo tài liệu đã có và phần cảnh quay cần điều khiển.
Với tạo video từ văn bản, mô tả hành động nhất quán với bối cảnh và góc nhìn rõ ràng. Cảnh có thể cho thấy thuyền buồm nhỏ đi ngang cầu tàu khi máy quay theo từ bờ. Xác định phần di chuyển, chi tiết cần tiếp tục nhìn thấy và cách cảnh quay kết thúc. Giữ yêu cầu tập trung vào sự kiện quan sát được, thay vì danh sách đặc tính hình ảnh không liên quan.
Với tạo video từ ảnh, chuẩn bị khung đầu đã xác lập chủ thể và khuôn hình dự kiến. Nhà sản xuất chấp nhận ảnh JPG, JPEG, PNG và WebP nhỏ hơn 20 MB, cạnh ngắn lớn hơn 300 pixel và tỷ lệ khung từ 2:5 đến 5:2. Dùng ảnh có đường bao và đặc điểm quan trọng nhìn thấy rõ, rồi mô tả chuyển động cần phát triển từ đó.
Hailuo 02 cũng có chế độ khung đầu và cuối được tài liệu hóa. Chuẩn bị hai ảnh như trạng thái mở đầu, kết thúc dự kiến của cùng chuỗi hình và mô tả cách cảnh chuyển động giữa chúng. Khung đầu quyết định khuôn hình; nhà sản xuất nêu khung cuối có kích thước khác sẽ được cắt để khớp. Căn chỉnh bố cục các ảnh trước nếu chủ thể phải tiếp tục nhìn thấy trong chuyển tiếp.
Prompt có thể chứa tối đa 2 000 ký tự. Hailuo 02 hỗ trợ lệnh máy quay đặt trong ngoặc, gồm push, pull, truck, pan, pedestal, tilt, zoom, tracking và cảnh quay tĩnh. Các lệnh đặt cùng trong một ngoặc yêu cầu chuyển động đồng thời; các lệnh đặt ở những điểm khác nhau trong mô tả yêu cầu chuỗi chuyển động. Nhà sản xuất khuyến nghị kết hợp không quá ba chuyển động, nên chọn hành động máy quay giúp nhìn chủ thể rõ hơn.
Thời lượng và độ phân giải gắn với chế độ. Tạo video từ văn bản được tài liệu hóa với sáu hoặc mười giây ở 768P và sáu giây ở 1080P. Tạo video từ ảnh còn có 512P với sáu hoặc mười giây. Quy trình khung đầu và cuối ghi nhận 768P với sáu hoặc mười giây, 1080P với sáu giây. Chọn tổ hợp được hỗ trợ cho cảnh quay, thay vì áp dụng lựa chọn độ phân giải của một chế độ cho mọi chế độ khác.
Tối ưu prompt tự động là thiết lập được tài liệu hóa và bật mặc định trong quy trình của nhà sản xuất. Giữ thiết lập này khi so sánh phiên bản, vì yêu cầu được viết lại thay đổi điều mô hình nhận. Lưu văn bản chính xác, các khung tham chiếu và thiết lập đầu ra đã chọn cùng clip tạo ra để lần sửa tập trung vào hành động hoặc khuôn hình cần cải thiện.
Xem toàn bộ chuỗi hình hoàn chỉnh: bố cục mở đầu, tính liên tục của chủ thể, thời gian hành động và khung cuối. Với chuyển tiếp, kiểm tra cả hai đầu và chuyển động ở giữa. Lưu video thực tế để dựng cùng prompt và tham chiếu; dùng lần sửa tiếp theo để xử lý vấn đề hình ảnh cụ thể như chi tiết bị che, máy quay chuyển động đột ngột hoặc phần kết đến quá sớm.
Ailoot Ultra · Tạo video POST /v1/videos minimaxi-hailuo-02
minimaxi-hailuo-02Bắt đầu
Hailuo 02 tạo video từ văn bản hoặc ảnh khung đầu, đồng thời hỗ trợ quy trình khung đầu và cuối được tài liệu hóa. Lệnh máy quay, tối ưu prompt và lựa chọn thời lượng, độ phân giải theo từng chế độ giúp định hình cảnh quay dự kiến.
- Đầu vào được chấp nhận
- Văn bản · Ảnh
- Kết quả
- Video
Có trên Ailoot · đầu vào & phương thức
Ailoot Ultra · Tạo video POST /v1/videos
- Đầu vào
text,image- Đầu ra
video
| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn minimaxi-hailuo-02 Điều kiện: Dùng bộ chọn mô hình Ailoot chính xác. | Mặc định— |
Trườngprompt | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn Điều kiện: Mô tả cảnh và chuyển động. | Mặc định— |
Trườngduration | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 6, 10 Điều kiện: Gửi một trong các giá trị thời lượng được liệt kê; không khẳng định giá trị mặc định. | Mặc định— |
Trườngend_image | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Khung hình kết thúc chỉ áp dụng trong chế độ đầu vào ảnh được hỗ trợ. | Mặc định— |
Trườngimage | Loạistring or array<string> | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Dùng URL ảnh thực tế có thể truy cập công khai hoặc chuỗi ảnh base64; không khẳng định số ảnh tối đa ở đây. | Mặc định— |
Trườngresolution | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 512P, 768P, 1080P Điều kiện: Gửi một trong các giá trị độ phân giải được liệt kê; không khẳng định giá trị mặc định. | Mặc định— |
Tham số phương thức và vòng đời
| Tham số | Hợp đồng |
|---|---|
Tham sốcontent_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, prompt |
Tham sốoptional | Hợp đồngduration, end_image, image, resolution |
Tham sốmaterial_types | Hợp đồngtext, image |
Tham sốconditions | Hợp đồngDùng bộ chọn mô hình Ailoot chính xác., Mô tả cảnh và chuyển động., Gửi một trong các giá trị thời lượng được liệt kê; không khẳng định giá trị mặc định., Khung hình kết thúc chỉ áp dụng trong chế độ đầu vào ảnh được hỗ trợ., Dùng URL ảnh thực tế có thể truy cập công khai hoặc chuỗi ảnh base64; không khẳng định số ảnh tối đa ở đây., Gửi một trong các giá trị độ phân giải được liệt kê; không khẳng định giá trị mặc định. |
Bí danh phương thức: /v1/videos/generations
Vòng đời: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Bảng giá
Cách tính phí cuối cùng
Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.
Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.
- Chế độ nhanh
- Chưa chỉ định Khi chọn chế độ nhanh
- Chế độ Flex
- Chưa chỉ định Khi chọn chế độ flex
- Mức độ suy luận tối đa
- Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa
Mức phí ước tính để so sánh
Giá theo cấu hình
Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.
| Cấu hình | Biểu mức phí | Số lượng dự báo | Phí |
|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Số lượng dự báo— | Phí Đầu vào · Token đầu vào · Ước tính chỉ để so sánh — / 1K token Đầu ra · Token đầu ra · Ước tính chỉ để so sánh — / 1K token Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh — / 1K token |
| Cấu hìnhChi phí tạo ước tính | Biểu mức phí— | Số lượng dự báoước tính cho một lần tạo | Phí Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh $0.2 ước tính trước khi tạo Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất. |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Tạo video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "minimaxi-hailuo-02",
"prompt": "A cat is walking on grass."
}
JSON
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
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
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())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Nhận và lưu kết quả
Ailoot Ultra · Tạo video
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Lưu tất cả kết quả đã hoàn tất
Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.
Giữ lại toàn bộ phản hồi và tiêu đề, các mã định danh gốc, mọi đầu ra thực tế và tất cả trường mức sử dụng/hạch toán. Lưu từng tài sản duy nhất thuộc quyền sở hữu và giữ lại mọi vai trò tham chiếu đến tài sản đó.
Nếu cần kiểm tra phản hồi gốc
Giữ lại id tác vụ hoặc thao tác công khai được trả về và tất cả tiêu đề. Chỉ đọc tác vụ ban đầu; unknown hoặc result_pending_check không cho phép tạo thêm tác vụ.
Trường phản hồi
| Trường | Loại |
|---|---|
Trườngid | Loạistring |
Trườngpolling_url | Loạistring |
Trườngprovider_task_id | Loạistring |
Trườngtask_id | Loạistring |
Trườngstatus | Loạistring |
Trườngvideo_url | Loạistring |
Bí danh
Bí danh mô hình
Ailoot Ultra minimaxi-hailuo-02
Bí danh đường dẫn phương thức
/v1/videos/generations
ID gọi liên quan
FAQ · MiniMax: Hailuo 02
- Có những đầu vào và kết quả nào?
POST /v1/videos·minimaxi-hailuo-02:text,image→video- Yêu cầu sử dụng những trường nào?
POST /v1/videos·minimaxi-hailuo-02:model,prompt,duration,end_image,image,resolution