MiniMax: Hailuo 02
ينشئ Hailuo 02 فيديو من نص أو صورة إطار أول، ويدعم مسارًا موثقًا لإطاري البداية والنهاية. وتساعد أوامر الكاميرا وتحسين الموجّه وخيارات المدة والدقة الخاصة بكل وضع على تشكيل اللقطة المقصودة.
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
Hailuo 02 هو نموذج الفيديو لدى MiniMax للمشاهد الموجّهة بالنص وتحريك الصور ومسار إطاري البداية والنهاية. يصف التكليف المكتوب الموضوع والفعل والكاميرا، بينما تستطيع صور الإطارات المقدمة تحديد نقطة البداية المرئية أو وجهة الانتقال. اختر وضع التوليد وفق المادة المتاحة لديك والجانب الذي تحتاج إلى التحكم فيه من اللقطة.
لتوليد فيديو من نص، صف فعلًا متسقًا بمكان وزاوية رؤية واضحين. فقد يعرض مشهد قاربًا شراعيًا صغيرًا يمر بجوار رصيف بينما تتبعه الكاميرا من الشاطئ. حدد ما يتحرك والتفاصيل التي ينبغي أن تظل ظاهرة وكيف تنتهي اللقطة. وأبقِ الوصف مركزًا على أحداث يمكن ملاحظتها بدلًا من قائمة صفات مرئية غير مترابطة.
لتوليد فيديو من صورة، جهّز إطارًا أول يثبت الموضوع والتأطير المقصودين أصلًا. تقبل الشركة المصنّعة صور JPG وJPEG وPNG وWebP بحجم أقل من 20 MB، وضلع قصير يزيد على 300 بكسل، ونسبة أبعاد بين 2:5 و5:2. استخدم صورة تظهر ملامحها وحدودها المهمة، ثم صف الحركة التي ينبغي أن تتطور انطلاقًا منها.
يوفر Hailuo 02 أيضًا وضعًا موثقًا لإطاري البداية والنهاية. جهّز الصورتين كحالتي افتتاح وختام مقصودتين لتسلسل واحد، وصف كيف ينتقل المشهد بينهما. يحدد الإطار الأول التأطير؛ وتذكر الشركة المصنّعة أن إطار النهاية المختلف حجمًا يُقص ليتوافق معه. نسّق تكوين الصورتين مسبقًا عندما يجب أن يظل الموضوع ظاهرًا خلال الانتقال.
يمكن أن يتضمن الموجّه ما يصل إلى 2,000 محرف. ويدعم Hailuo 02 أوامر كاميرا داخل أقواس، تشمل push وpull وtruck وpan وpedestal وtilt وzoom وtracking واللقطة الثابتة. وتطلب الأوامر الموضوعة معًا داخل قوس حركة متزامنة؛ أما الأوامر الموضوعة في نقاط مختلفة من الوصف فتطلب تسلسلًا. وتوصي الشركة المصنّعة بألا يجمع الطلب أكثر من ثلاث حركات، لذا اختر فعل الكاميرا الذي يجعل الموضوع أوضح للمشاهد.
ترتبط المدة والدقة بالوضع. فمسار النص إلى فيديو يوثق ستًا أو عشر ثوانٍ بدقة 768P وست ثوانٍ بدقة 1080P. ويوثق مسار الصورة إلى فيديو أيضًا دقة 512P لمدة ست أو عشر ثوانٍ. ويوثق مسار إطاري البداية والنهاية دقة 768P لمدة ست أو عشر ثوانٍ ودقة 1080P لمدة ست ثوانٍ. اختر توليفة مدعومة للّقطة بدلًا من تعميم خيارات الدقة في وضع واحد على كل الأوضاع الأخرى.
يُعد تحسين الموجّه التلقائي ضابطًا موثقًا، وهو مفعّل افتراضيًا في مسار العمل لدى الشركة المصنّعة. احتفظ بإعداده عند مقارنة النسخ، لأن إعادة صياغة الوصف تغير ما يتلقاه النموذج. واحتفظ بالنص الدقيق والإطارات المرجعية وإعدادات الإخراج المختارة مع المقطع المولد حتى يستهدف التنقيح الفعل أو التأطير الذي يحتاج إلى تحسين.
راجع التسلسل المكتمل كله: التكوين الافتتاحي واستمرارية الموضوع وتوقيت الفعل والإطار النهائي. ولانتقال، تحقق من الطرفين والحركة بينهما. احفظ الفيديو الفعلي للتحرير، مع الموجّه والمراجع؛ واستخدم التنقيح التالي لمعالجة مشكلة مرئية ملموسة، مثل تفصيل محجوب أو حركة كاميرا مفاجئة أو نهاية تصل مبكرًا أكثر من اللازم.
Ailoot Ultra · فيديو POST /v1/videos minimaxi-hailuo-02
minimaxi-hailuo-02البداية
ينشئ Hailuo 02 فيديو من نص أو صورة إطار أول، ويدعم مسارًا موثقًا لإطاري البداية والنهاية. وتساعد أوامر الكاميرا وتحسين الموجّه وخيارات المدة والدقة الخاصة بكل وضع على تشكيل اللقطة المقصودة.
- المدخلات المقبولة
- النص · الصور
- النتائج
- فيديو
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · فيديو POST /v1/videos
- الإدخال
text,image- الإخراج
video
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود minimaxi-hailuo-02 الشروط: استخدم محدِّد نموذج Ailoot الدقيق. | القيمة الافتراضية— |
الحقلprompt | النوعstring | المتطلبمطلوب | القيم والحدود الشروط: صِف المشهد والحركة. | القيمة الافتراضية— |
الحقلduration | النوعinteger | المتطلباختياري | القيم والحدود 6, 10 الشروط: أرسل إحدى قيم المدة المدرجة؛ ولا تُفترض قيمة افتراضية. | القيمة الافتراضية— |
الحقلend_image | النوعstring | المتطلباختياري | القيم والحدود الشروط: ينطبق إطار النهاية في نمط إدخال صور مدعوم فقط. | القيمة الافتراضية— |
الحقلimage | النوعstring or array<string> | المتطلباختياري | القيم والحدود الشروط: استخدم عنوان URL فعلياً لصورة يمكن الوصول إليها علناً أو سلسلة صورة بترميز base64؛ ولا يُفترض هنا حد أقصى لعدد الصور. | القيمة الافتراضية— |
الحقلresolution | النوعstring | المتطلباختياري | القيم والحدود 512P, 768P, 1080P الشروط: أرسل إحدى قيم الدقة المدرجة؛ ولا تُفترض قيمة افتراضية. | القيمة الافتراضية— |
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, prompt |
المعلمةoptional | المواصفاتduration, end_image, image, resolution |
المعلمةmaterial_types | المواصفاتtext, image |
المعلمةconditions | المواصفاتاستخدم محدِّد نموذج Ailoot الدقيق., صِف المشهد والحركة., أرسل إحدى قيم المدة المدرجة؛ ولا تُفترض قيمة افتراضية., ينطبق إطار النهاية في نمط إدخال صور مدعوم فقط., استخدم عنوان URL فعلياً لصورة يمكن الوصول إليها علناً أو سلسلة صورة بترميز base64؛ ولا يُفترض هنا حد أقصى لعدد الصور., أرسل إحدى قيم الدقة المدرجة؛ ولا تُفترض قيمة افتراضية. |
الأسماء البديلة للطريقة: /v1/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/media/assets
GET /v1/media/assets/{asset_id}
الباقات
كيفية احتساب الرسوم النهائية
تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- غير محدد عند اختيار الوضع السريع
- الوضع المرن
- غير محدد عند اختيار وضع flex
- أقصى جهد للاستدلال
- غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
تعرفات تقديرية للمقارنة
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | الكمية المتوقعة | الرسوم |
|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | الكمية المتوقعة— | الرسوم الإدخال · رموز الإدخال · تقدير للمقارنة فقط — / 1K من الرموز الإخراج · رموز الإخراج · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط — / 1K من الرموز |
| الإعداداتتكلفة التوليد التقديرية | جدول التعرفة— | الكمية المتوقعةتقدير لتوليد واحد | الرسوم الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط $0.2 تقدير قبل الإنشاء هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة. |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · فيديو
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
استلام النتائج وحفظها
Ailoot Ultra · فيديو
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}
الاحتفاظ بكل النتائج المكتملة
احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.
احتفظ بالاستجابة والترويسات كاملة، والمعرّفات الأصلية، وكل مخرج فعلي، وجميع حقول الاستخدام والمحاسبة. احفظ كل أصل فريد مملوك لك، واحتفظ بكل دور يشير إليه.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بالمعرّف العام المُعاد للمهمة أو العملية وبجميع الترويسات. اقرأ المهمة الأصلية فقط؛ فالحالة unknown أو result_pending_check لا تمنح الإذن بإنشاء مهمة أخرى.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلpolling_url | النوعstring |
الحقلprovider_task_id | النوعstring |
الحقلtask_id | النوعstring |
الحقلstatus | النوعstring |
الحقلvideo_url | النوعstring |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra minimaxi-hailuo-02
الأسماء البديلة لمسارات الطرائق
/v1/videos/generations
معرّفات النماذج ذات الصلة IDs
FAQ · MiniMax: Hailuo 02
- ما المدخلات والنتائج المتاحة؟
POST /v1/videos·minimaxi-hailuo-02:text,image→video- ما الحقول التي يستخدمها الطلب؟
POST /v1/videos·minimaxi-hailuo-02:model,prompt,duration,end_image,image,resolution