ByteDance: Seedance 1.0 Pro
يولّد Seedance 1.0 Pro فيديو صامتًا من نص أو صورة افتتاحية. صف الفعل والكاميرا، أو حرّك تكوينًا موجودًا، مع مدة 2–12 ثانية ومعدل 24 fps وعناصر تحكم صريحة في تأطير المخرجات ودقتها.
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
يولّد Seedance 1.0 Pro فيديو من نص أو مشهد تقوده صورة. يدعم معرّف الاختيار doubao-seedance-1-0-pro-250528 نمطي الإدخال، لذا يمكن أن تكون نقطة البداية تصورًا مكتوبًا أو تكوينًا بصريًا موجودًا. استخدم موجزًا نصيًا لإنشاء مشهد جديد، أو قدّم صورة عندما يجب تحديد الموضوع والترتيب والمنظر الافتتاحي بصريًا. ينتج إصدار 1.0 هذا فيديو صامتًا؛ ويخص الصوت المتزامن إصدار 1.5 Pro الموصوف منفصلًا.
لتحويل النص إلى فيديو، حدّد الموضوع والبيئة والحركة والتأطير والكاميرا ضمن مشهد متماسك. ينتقل المثال الموثّق تدريجيًا من حقل أقحوان إلى لقطة قريبة لزهرة عليها ندى فوق بتلاتها. تصلح هذه البنية لإظهارات أخرى: أسّس المكان، واقترب من الموضوع، واختم بالتفصيل المهم. ولتصور منتج، صف المادة والإضاءة إلى جانب الفعل، وحدّد للكاميرا مسارًا قابلًا للتنفيذ خلال اللقطة القصيرة.
لتحويل الصورة إلى فيديو، ضع المرجع في عنصر محتوى image_url واشرح ما ينبغي أن يتغير انطلاقًا من ذلك المنظر. يمكن لصورة شخصية مجهّزة أن تحدد الشخص والاقتصاص، بينما يصف الموجز استدارة صغيرة أو شعرًا يتحرك أو تراجعًا هادئًا للكاميرا. ويمكن لصورة منتج ثابتة أن تحدد الشيء والخلفية، بينما يطلب الموجّه كشفه بحركة مضبوطة. اجعل الحركة المطلوبة متوافقة مع تكوين المصدر؛ فصورة أحد جوانب الشيء لا توفر منظرًا دقيقًا غير مرئي لكل جانب آخر.
يقبل حقل الصورة رابط URL متاحًا أو رابط data URL يتضمن بيانات صورة Base64. التنسيقات الموثّقة هي JPEG وPNG وWEBP وBMP وTIFF وGIF. يجب أن تكون الصور أصغر من 30 MB، وأن تقع نسبة العرض إلى الارتفاع حصرًا بين 0.4 و2.5، وكل بعد حصرًا بين 300 و6000 بكسل. جهّز مصدرًا واضحًا بالاقتصاص المقصود بدل الاعتماد على صورة مصغرة تفتقد أصلًا تفاصيلها المميزة. ولتوليد الفيديو من الصورة، يوصي الدليل بالتأطير adaptive لاتباع نسب المرجع.
المدة الموثّقة لـ1.0 من ثانيتين إلى اثنتي عشرة ثانية، ومعدل الإطارات 24 fps. تشمل عناصر تحكم المخرجات مستويات 480p و720p و1080p، مع 1080p افتراضيًا في Pro؛ ويستبعد الدليل 1080p في سيناريو الصورة المرجعية. تشمل الأشكال الثابتة 16:9 و4:3 و1:1 و3:4 و9:16 و21:9. اختر توليفة متوافقة مع الصور للّقطة القائمة على صورة بدل نقل كل إعداد لتحويل النص إلى فيديو كما هو. افحص التأطير الفعلي المعاد قبل وضع المقطع في تصميم.
توثَّق عناصر تحكم seed والعلامة المائية إلى جانب camerafixed. تعليمة تثبيت الكاميرا غير مدعومة في سيناريو الصورة المرجعية، وحتى حيث تنطبق لا يضمن الدليل كاميرا ثابتة تمامًا. تتقدم تعليمات المعاملات المضمّنة في الموجّه على الحقول الاختيارية المنفصلة. احتفظ بإعداد مرجعي واحد للمدة والدقة والنسبة، واجعل وصف الكاميرا متفقًا معه. يمنع ذلك موجز المشهد من تجاوز الإعدادات المختارة للطلب دون انتباه.
يُقاس الاستخدام برموز الفيديو: عرض الفيديو الناتج × ارتفاع الفيديو الناتج × معدل الإطارات × مدة الفيديو الناتج / 1024. تُبلغ المهمة المكتملة عن هذه الكمية في usage.completion_tokens. احتفظ بالاستخدام المبلّغ عنه مع المقطع النهائي وإعداداته المطلوبة.
يُرجع سير العمل معرّف مهمة أولًا وموقع فيديو مكتمل بعد المعالجة. احتفظ بالمعرّف أثناء التحقق من حالة الانتظار أو التنفيذ؛ وتوفر المهمة الناجحة content.video_url ومعلومات الاستخدام. مدة الاحتفاظ الموثّقة بالملفات المولّدة سبعة أيام. احفظ المقطع المكتمل والصورة المصدرية والموجّه الدقيق كسجل للمراجعة، ثم افحص مظهر الموضوع وحركته واستمرارية الصورة والتكوين الختامي عبر النتيجة كلها.
Ailoot Ultra · فيديو POST /v1/videos doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528البداية
يولّد Seedance 1.0 Pro فيديو صامتًا من نص أو صورة افتتاحية. صف الفعل والكاميرا، أو حرّك تكوينًا موجودًا، مع مدة 2–12 ثانية ومعدل 24 fps وعناصر تحكم صريحة في تأطير المخرجات ودقتها.
- المدخلات المقبولة
- النص · الصور
- النتائج
- فيديو
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · فيديو POST /v1/videos
- الإدخال
text,image- الإخراج
video
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود doubao-seedance-1-0-pro-250528 | القيمة الافتراضية— |
الحقلcontent | النوعarray | المتطلبمطلوب | القيم والحدود الشروط: كائنات نصية أو وسائط بصيغتها الأصلية؛ يجب ألا تكون المصفوفة الخارجية فارغة. لا يتحقق مُنشئ الطلبات العام هذا في Ailoot من أنواع العُقد المتداخلة. | القيمة الافتراضية— |
الحقلduration | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 2 الحد الأقصى: 12 الشروط: المخطط الأساسي للإصدار 1.x يحدد 2–12؛ ويصف نص مشترك لاحق الإصدار 1.5 بأنه 4–12 أو -1. يستخدم المثال القيمة 5 الموثّقة في الموضعين. | القيمة الافتراضية5 |
الحقلresolution | النوعstring | المتطلباختياري | القيم والحدود الشروط: القيم المؤكدة لتحويل النص إلى فيديو هي 480p و1080p. يستبعد إدخال صورة مرجعية دقة 1080p. تتعارض قيمة 720p في التعداد المشترك مع الوصف الخاص بالنموذج؛ لذا يبقى دعم 720p غير محسوم في كلا النمطين. | القيمة الافتراضية1080p |
الحقلratio | النوعstring | المتطلباختياري | القيم والحدود 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive الشروط: تختلف القيم الافتراضية باختلاف المشهد والنموذج؛ ويوصي توثيق إدخال الصور باستخدام adaptive. | القيمة الافتراضية— |
الحقلservice_tier | النوعstring | المتطلباختياري | القيم والحدود default, flex الشروط: default=online، flex=offline؛ اختر قبل الإنشاء. | القيمة الافتراضيةdefault |
الحقلseed | النوعinteger | المتطلبمطلوب | القيم والحدود الحد الأدنى: -1 الحد الأقصى: 4,294,967,295 | القيمة الافتراضية-1 |
الحقلcamerafixed | النوعboolean | المتطلبمطلوب | القيم والحدود الشروط: مطلوب من Ailoot؛ يوضح التوثيق أن التحكم بالكاميرا باستخدام صورة مرجعية غير مدعوم، ولا يُضمن تأثيره. | القيمة الافتراضيةfalse |
الحقلwatermark | النوعboolean | المتطلبمطلوب | القيم والحدود | القيمة الافتراضيةfalse |
الحقلexecution_expires_after | النوعinteger | المتطلبمطلوب | القيم والحدود الحد الأدنى: 3,600 الحد الأقصى: 259,200 الوحدة: ثوانٍ | القيمة الافتراضية172,800 |
تركيبات مواد الإدخال
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتcamerafixed, content, execution_expires_after, model, seed, watermark |
المعلمةoptional | المواصفاتduration, resolution, ratio, service_tier |
المعلمةmaterial_types | المواصفاتtext, image |
المعلمةadditional_properties | المواصفاتtrue |
المعلمةvalidation_scope | المواصفاتتتحقق Ailoot من أنواع الحقول المطلوبة ومن أن قيمة model ومصفوفة content غير فارغتين. تُحفظ حقول الطلب الأخرى للنموذج المختار. |
المعلمةimage_constraints | المواصفات{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
الأسماء البديلة للطريقة: /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/videos/generations/{request_id}/content
أنشئ مرة واحدة واحتفظ بالقيم المُعادة للحقلين العامين id/polling_url.
استعلم دورياً عن المهمة الأصلية؛ ونزّل المحتوى الفعلي المملوك لك في content.video_url بعد succeeded.
الباقات
كيفية احتساب الرسوم النهائية
تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- غير محدد عند اختيار الوضع السريع
- الوضع المرن
- غير محدد عند اختيار وضع flex
- أقصى جهد للاستدلال
- غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
تعرفات تقديرية للمقارنة
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | الكمية المتوقعة | وحدة الفوترة | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | الكمية المتوقعة— | وحدة الفوترة— | الرسوم الإدخال · رموز الإدخال · تقدير للمقارنة فقط — / 1K من الرموز الإخراج · رموز الإخراج · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط — / 1K من الرموز |
| الإعداداتUltra | جدول التعرفة— | الكمية المتوقعة— | وحدة الفوترةلكل 1K من رموز الفيديو | الرسوم الإخراج · تقدير للمقارنة فقط $0.0044 لكل 1K من رموز الفيديو |
| الإعداداتتكلفة التوليد التقديرية | جدول التعرفة— | الكمية المتوقعةتقدير لتوليد واحد | وحدة الفوترة— | الرسوم الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط $0.2112 تقدير قبل الإنشاء هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة. |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · فيديو
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-0-pro-250528","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
JSON_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_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
استلام النتائج وحفظها
Ailoot Ultra · فيديو
JSON أصلي يتضمن id/polling_url عامين. بعد النشر، يحتوي content.video_url على عنوان URL موقّع أو أكثر تابع لـAiloot؛ وقبل النشر تُفرَّغ عناوين URL للمخرجات المختارة.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
الاحتفاظ بكل النتائج المكتملة
احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.
احتفظ بكل عنوان URL فعلي في content.video_url؛ ويجب أن يحدد index مخرجاً فعلياً مُعاداً.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بالاستجابة والترويسات والمعرّف الأصلية، واستعلم دورياً عن تلك العملية؛ ولا تعِد إرسال طلب إنشاء مجهول النتيجة مطلقاً.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلprovider_task_id | النوعstring |
الحقلpolling_url | النوعstring |
الحقلstatus | النوعstring when supplied |
الحقلcontent.video_url | النوعstring|string[] |
الحقلusage | النوعobject when supplied |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطJSON أو النموذج أو أنواع الحقول المطلوبة أو فهرس المحتوى غير صالحة. | الخطوة التالية |
الاستجابة401 · authentication_error | الشرطمفتاح API الخاص بـAiloot غير صالح. | الخطوة التالية |
الاستجابة404 · not_found_error | الشرطالمهمة أو المخرج غير موجود، أو غير مملوك للمستخدم ومفتاح API والمجموعة نفسها. | الخطوة التالية |
الاستجابة502 · result_pending_check | الشرطالإرسال الأصلي أو حالته غير مكتملين؛ احتفظ بالمعرّف الأصلي ولا تعِد الإرسال. | الخطوة التالية |
الاستجابة503 · result_pending_check | الشرطالوسائط أو المسار أو التسوية الأصلية قيد التحقق؛ تابع العملية الأصلية. | الخطوة التالية |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra doubao-seedance-1-0-pro-250528
الأسماء البديلة لمسارات الطرائق
/v1/videos/generations
معرّفات النماذج ذات الصلة IDs
FAQ · ByteDance: Seedance 1.0 Pro
- ما المدخلات والنتائج المتاحة؟
POST /v1/videos·doubao-seedance-1-0-pro-250528:text,image→video- ما الحقول التي يستخدمها الطلب؟
POST /v1/videos·doubao-seedance-1-0-pro-250528:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after- ما الحدود المطبقة؟
POST /v1/videos·doubao-seedance-1-0-pro-250528:duration.minimum:2;duration.maximum:12;seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200