النماذج

happyhorse-1.1-t2v

Markdown · JSON

happyhorse-1.1-t2v

نموذج لإنشاء فيديو قصير مع صوت من وصف نصي. يناسب المشاهد التي تُحدد فيها الحركة والتكوين والأسلوب البصري بالكلمات.

عن النموذج

يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.

HappyHorse-1.1-T2V هو نموذج من Alibaba لإنشاء مشاهد فيديو قصيرة من النص. يُحدد الوصف الشخصيات والأفعال والمكان والمعالجة البصرية؛ ولا يحتاج هذا الوضع إلى صورة أصلية. يشكّل النموذج الفيديو ويمكنه إنشاء صوت مصاحب له.

يبرز المصنّع فهم معنى المشهد والإخراج السينمائي والتعبير بالحركة. يمكن للنص تحديد الأجواء وأفعال الشخصية وسلوك العناصر والديناميكية الفيزيائية. يتيح ذلك بناء المشهد حول ما ينبغي أن يحدث، ثم توجيهه بالإضاءة وزاوية التصوير وحركة الكاميرا.

الإخراج بالكلمات

الطلب إلزامي ويمكن كتابته بأي لغة. قد يحتوي على حتى 5000 حرف غير صيني أو 2500 حرف صيني؛ ويُحذف الجزء الزائد. يجب وصف الفعل والبيئة والتفاصيل البصرية المهمة ضمن هذه المساحة. يترك هذا الأسلوب للنموذج مجالًا لإنشاء مشهد جديد بدلًا من إعطائه إطارًا أول جاهزًا.

يُستخدم النص في هذا الوضع بوصفه المادة الرئيسية للتحكم. يمكن وصف هيئة الشخصية أو العنصر بالكلمات؛ أما إمكانية تقديم المظهر بصور منفصلة فتتعلق بوضع آخر من العائلة. تعتمد النتيجة على الطلب كاملًا، لذا تساعد بذرة العشوائية الابتدائية نفسها على الحصول على نسخ متشابهة، لكنها لا تضمن التكرار الدقيق.

الفيديو والصوت المصاحب

في HappyHorse-1.1 تُختار مدة الفيديو بعدد صحيح من 3 إلى 15 ثانية. تُدعم مستويات الدقة 480P و720P و1080P. الملف الناتج بصيغة MP4 وبمعدل 24 إطارًا في الثانية. يستطيع النموذج توليد الصوت مع الصورة، وربط الصوت المصاحب بما يجري في المشهد.

يمكن تحديد شكل الإطار مسبقًا. تتوفر 16:9 و9:16 و1:1 و4:3 و3:4 و4:5 و5:4 و9:21 و21:9، من إطار سينمائي عريض إلى فيديو رأسي ممتد. تحدد الدقة والصيغة والمدة أبعاد النتيجة؛ بينما يحدد النص المحتوى والحركة.

هذا الإصدار مخصص لإنشاء مشهد جديد من فكرة مكتوبة. يناسب حلقة قصيرة أو فكرة بصرية أو فيديو ذي أجواء معينة يحتاج إخراجه إلى صياغة نصية.

Ailoot · فيديو POST /v1/videos/generations happyhorse-1.1-t2v

happyhorse-1.1-t2v

Alibaba /happyhorse-1.1-t2v
معرّف النموذج ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

البداية

نموذج لإنشاء فيديو قصير مع صوت من وصف نصي. يناسب المشاهد التي تُحدد فيها الحركة والتكوين والأسلوب البصري بالكلمات.

المدخلات المقبولة
النص
النتائج
فيديو

متاح في Ailoot · المدخلات والطرائق

Ailoot · فيديو POST /v1/videos/generations
الإدخال
text
الإخراج
video
صيغة الإخراج
mp4
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
happyhorse-1.1-t2v
القيمة الافتراضية—
الحقلpromptالنوعstringالمتطلبمطلوبالقيم والحدود
الحد الأدنى للطول: ⁦1⁩
القيمة الافتراضية—
الحقلdurationالنوعintegerالمتطلباختياريالقيم والحدود
الحد الأدنى: ⁦3⁩
الحد الأقصى: ⁦15⁩
الوحدة: ثوانٍ
القيمة الافتراضية⁦5⁩
الحقلresolutionالنوعstringالمتطلباختياريالقيم والحدود
480P, 720P, 1080P
القيمة الافتراضية720P
الحقلratioالنوعstringالمتطلباختياريالقيم والحدود
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
القيمة الافتراضية16:9
الحقلimage_urlsالنوعhttps_url|data_image_url[]المتطلباختياريالقيم والحدود
الحد الأدنى للعناصر: ⁦0⁩
الحد الأقصى للعناصر: ⁦0⁩
الحد الأقصى للبايتات بعد فك الترميز: ⁦20,971,520⁩
أنواع MIME: image/jpeg, image/png, image/webp
القيمة الافتراضية—
تركيبات مواد الإدخال

تحويل النص إلى فيديو · مطلوب: prompt

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةcontent_typeالمواصفاتapplication/json
المعلمةrequiredالمواصفاتmodel, prompt
المعلمةmaterial_typesالمواصفاتtext
المعلمةoptionalالمواصفاتduration, resolution, ratio
المعلمةduration_integer_rangeالمواصفات3, 15
المعلمةdefault_durationالمواصفات5
المعلمةresolutionالمواصفات480P, 720P, 1080P
المعلمةdefault_resolutionالمواصفات720P
المعلمةratioالمواصفات16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
المعلمةratio_must_omitالمواصفاتfalse
المعلمةimage_urlsالمواصفات{"max_count":0}

دورة الحياة: 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

بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.

الباقات

تعرفات طرائق Ailoot

Ailoot فيديوPOST /v1/videos/generations
الإخراج
⁦‏0.18 US$⁩ لكل ثانية بدقة 1080p
الإخراج
⁦‏0.07 US$⁩ لكل ثانية بدقة 480p
الإخراج
⁦‏0.14 US$⁩ لكل ثانية بدقة 720p

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

أمثلة للطلبات

Ailoot · فيديو

مثال للمشهد
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

استلام النتائج وحفظها

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_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/generations/$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/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
الاحتفاظ بكل النتائج المكتملة

احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.

احتفظ بكل عنصر بيانات أو فهرس مخرج مُعاد. يشير content_url إلى الأول فقط؛ اجلب كل مسار محتوى أو أصل فعلي. لا يعيد طلب GET للمحتوى دون index جميع المخرجات.

عند الحاجة إلى التحقق من الاستجابة الأصلية

اقرأ المهمة الأصلية الموجودة؛ ولا تعِد إرسال طلب مجهول النتيجة مطلقاً.

حقول الاستجابة
الحقلالنوع
الحقل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الشرطمحتوى النتيجة الأصلية غير متاح بعدالخطوة التاليةاستعلم دورياً باستخدام المعرّف الأصلي المُعاد والتزم بـRetry-After.
الاستجابةserver_errorالشرطتشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحققالخطوة التاليةاحتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · فيديو POST /v1/videos/generations happyhorse-t2v

happyhorse-t2v

Alibaba /happyhorse-t2v
معرّف النموذج ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

البداية

نموذج لإنشاء فيديو قصير مع صوت من وصف نصي. يناسب المشاهد التي تُحدد فيها الحركة والتكوين والأسلوب البصري بالكلمات.

المدخلات المقبولة
النص
النتائج
فيديو

متاح في Ailoot · المدخلات والطرائق

Ailoot · فيديو POST /v1/videos/generations
الإدخال
text
الإخراج
video
صيغة الإخراج
mp4
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
happyhorse-t2v
القيمة الافتراضية—
الحقلpromptالنوعstringالمتطلبمطلوبالقيم والحدود
الحد الأدنى للطول: ⁦1⁩
القيمة الافتراضية—
الحقلdurationالنوعintegerالمتطلباختياريالقيم والحدود
الحد الأدنى: ⁦3⁩
الحد الأقصى: ⁦15⁩
الوحدة: ثوانٍ
القيمة الافتراضية⁦5⁩
الحقلresolutionالنوعstringالمتطلباختياريالقيم والحدود
480P, 720P, 1080P
القيمة الافتراضية720P
الحقلratioالنوعstringالمتطلباختياريالقيم والحدود
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
القيمة الافتراضية16:9
الحقلimage_urlsالنوعhttps_url|data_image_url[]المتطلباختياريالقيم والحدود
الحد الأدنى للعناصر: ⁦0⁩
الحد الأقصى للعناصر: ⁦0⁩
الحد الأقصى للبايتات بعد فك الترميز: ⁦20,971,520⁩
أنواع MIME: image/jpeg, image/png, image/webp
القيمة الافتراضية—
تركيبات مواد الإدخال

تحويل النص إلى فيديو · مطلوب: prompt

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةmaterial_typesالمواصفاتtext
المعلمة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

بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.

الباقات

تعرفات طرائق Ailoot

Ailoot فيديوPOST /v1/videos/generations
الإخراج
⁦‏0.18 US$⁩ لكل ثانية بدقة 1080p
الإخراج
⁦‏0.07 US$⁩ لكل ثانية بدقة 480p
الإخراج
⁦‏0.14 US$⁩ لكل ثانية بدقة 720p

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

أمثلة للطلبات

Ailoot · فيديو

مثال للمشهد
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

استلام النتائج وحفظها

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_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/generations/$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/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
الاحتفاظ بكل النتائج المكتملة

احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.

احتفظ بكل عنصر بيانات أو فهرس مخرج مُعاد. يشير content_url إلى الأول فقط؛ اجلب كل مسار محتوى أو أصل فعلي. لا يعيد طلب GET للمحتوى دون index جميع المخرجات.

عند الحاجة إلى التحقق من الاستجابة الأصلية

اقرأ المهمة الأصلية الموجودة؛ ولا تعِد إرسال طلب مجهول النتيجة مطلقاً.

حقول الاستجابة
الحقلالنوع
الحقل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الشرطمحتوى النتيجة الأصلية غير متاح بعدالخطوة التاليةاستعلم دورياً باستخدام المعرّف الأصلي المُعاد والتزم بـRetry-After.
الاستجابةserver_errorالشرطتشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحققالخطوة التاليةاحتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · فيديو POST /v1/videos/generations happyhorse-t2v-latest

happyhorse-t2v-latest

Alibaba /happyhorse-t2v-latest
معرّف النموذج ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

البداية

نموذج لإنشاء فيديو قصير مع صوت من وصف نصي. يناسب المشاهد التي تُحدد فيها الحركة والتكوين والأسلوب البصري بالكلمات.

المدخلات المقبولة
النص
النتائج
فيديو

متاح في Ailoot · المدخلات والطرائق

Ailoot · فيديو POST /v1/videos/generations
الإدخال
text
الإخراج
video
صيغة الإخراج
mp4
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
happyhorse-t2v-latest
القيمة الافتراضية—
الحقلpromptالنوعstringالمتطلبمطلوبالقيم والحدود
الحد الأدنى للطول: ⁦1⁩
القيمة الافتراضية—
الحقلdurationالنوعintegerالمتطلباختياريالقيم والحدود
الحد الأدنى: ⁦3⁩
الحد الأقصى: ⁦15⁩
الوحدة: ثوانٍ
القيمة الافتراضية⁦5⁩
الحقلresolutionالنوعstringالمتطلباختياريالقيم والحدود
480P, 720P, 1080P
القيمة الافتراضية720P
الحقلratioالنوعstringالمتطلباختياريالقيم والحدود
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
القيمة الافتراضية16:9
الحقلimage_urlsالنوعhttps_url|data_image_url[]المتطلباختياريالقيم والحدود
الحد الأدنى للعناصر: ⁦0⁩
الحد الأقصى للعناصر: ⁦0⁩
الحد الأقصى للبايتات بعد فك الترميز: ⁦20,971,520⁩
أنواع MIME: image/jpeg, image/png, image/webp
القيمة الافتراضية—
تركيبات مواد الإدخال

تحويل النص إلى فيديو · مطلوب: prompt

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةmaterial_typesالمواصفاتtext
المعلمة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

بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.

الباقات

تعرفات طرائق Ailoot

Ailoot فيديوPOST /v1/videos/generations
الإخراج
⁦‏0.18 US$⁩ لكل ثانية بدقة 1080p
الإخراج
⁦‏0.07 US$⁩ لكل ثانية بدقة 480p
الإخراج
⁦‏0.14 US$⁩ لكل ثانية بدقة 720p

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

أمثلة للطلبات

Ailoot · فيديو

مثال للمشهد
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

استلام النتائج وحفظها

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_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/generations/$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/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
الاحتفاظ بكل النتائج المكتملة

احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.

احتفظ بكل عنصر بيانات أو فهرس مخرج مُعاد. يشير content_url إلى الأول فقط؛ اجلب كل مسار محتوى أو أصل فعلي. لا يعيد طلب GET للمحتوى دون index جميع المخرجات.

عند الحاجة إلى التحقق من الاستجابة الأصلية

اقرأ المهمة الأصلية الموجودة؛ ولا تعِد إرسال طلب مجهول النتيجة مطلقاً.

حقول الاستجابة
الحقلالنوع
الحقل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الشرطمحتوى النتيجة الأصلية غير متاح بعدالخطوة التاليةاستعلم دورياً باستخدام المعرّف الأصلي المُعاد والتزم بـRetry-After.
الاستجابةserver_errorالشرطتشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحققالخطوة التاليةاحتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

FAQ · happyhorse-1.1-t2v
ما المدخلات والنتائج المتاحة؟

POST /v1/videos/generations · happyhorse-1.1-t2v: text → video

POST /v1/videos/generations · happyhorse-t2v: text → video

POST /v1/videos/generations · happyhorse-t2v-latest: text → video

ما الحقول التي يستخدمها الطلب؟

POST /v1/videos/generations · happyhorse-1.1-t2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-t2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-t2v-latest: model, prompt, duration, resolution, ratio, image_urls

ما الحدود المطبقة؟

POST /v1/videos/generations · happyhorse-1.1-t2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-t2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-t2v-latest: duration.minimum: 3; duration.maximum: 15

المزيد من التفاصيل

اربط Ailoot بخدمة Claude Code أوOpenCode أوHermes أوتطبيقك.

الشركة ومحفظة مشاريعها

الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.

اشتر الرموز بخصم.

خصم اشتراك للعمل المنتظم. الرموز الترويجية حتى 50% على شراء الرموز.

الاشتراك
اختر خطة بخصم لطلباتك المنتظمة.
رمز خصم حتى 50%
أدخل الرمز عند الشراء. يعاد حساب السعر وفق العرض الساري.
المصروفات في السجل
يحفظ النموذج والرموز والمبلغ لكل طلب.

اختر اشتراكا · اعرض أسعار النماذج

اربط API بالمنتج الذي تبيعه.

SaaS والتطبيقات والبوتات وفق العرض واتفاقية ترخيص Ailoot. لإعادة البيع، اطلب ترخيص موزع.

تطبيق تجاري
أضف توليد النص والصور والفيديو والصوت إلى ميزات خدمتك المدفوعة.
ترخيص إعادة البيع
أرسل وصف المشروع وطريقة توفير الوصول. اطلب شروط استخدام وإعادة بيع مكتوبة.
المستندات على الموقع
العرض واتفاقية الترخيص وسياسة معالجة البيانات متاحة قبل الربط.

اطلب ترخيص إعادة بيع · العرض واتفاقية الترخيص