الفيديو والمواد
إنشاء مهمة (متوافقة مع Volc)
إنشاء مهمة Seedance باستخدام واجهة برمجة التطبيقات المتوافقة مع Volc.
نظرة عامة
يمكن لعملاء Seedance الحاليين بنمط Volc استخدام TokenLab عن طريق تغيير عنوان API والمفتاح.
تستخدم الأمثلة Seedance 2.0. تدعم نقطة النهاية هذه Seedance 2.5 أيضًا، مع الاختلافات حسب النموذج الموضحة أدناه. تنطبق أمثلة URI مواد TokenLab القابلة لإعادة الاستخدام في هذه الصفحة على Seedance 2.0.
راجع أيضاً نماذج فيديو Seedance 2.0 و توليد الفيديو.
المصادقة ونقاط النهاية (Endpoints)
- استخدم
Authorization: Bearer <TOKENLAB_API_KEY>. - لا يتم قبول توقيع Volc AK/SK. يجب أن تتضمن الطلبات مفتاح TokenLab Bearer.
- استخدم مسار المهمة الرسمي:
POST /api/v3/contents/generations/tasks.
قواعد المحتوى
type: "text"هو نص المطالبة (prompt).type: "image_url"بدونrole، أو معrole: "first_frame"، يتم التعامل معه كإطار أول.- يجب إقران
role: "last_frame"بإطار أول. - تُستخدم
role: "reference_image"وreference_videoوreference_audioكمرجع. - تقبل
image_url.urlرابط صورة عام أو معرف مورد (URI) مثلasset://asset-YYYYMMDDHHMMSS-xxxxx. يحددroleما إذا كانت تلك المادة عبارة عن إطار أول، أو إطار أخير، أو صورة مرجعية. - لا تخلط بين مدخلات الإطار الأول/الأخير ووسائط المرجع في طلب واحد.
- يتم رفض الحقلين
material_asset_idوmaterial_asset_idsعلى المستوى الأعلى. ضع URI مادة TokenLab فيimage_url.url. يُدعمpriorityفي Seedance 2.5 فقط.
ملاحظات حول المعلمات
duration عدد صحيح من الثواني؛ تحدد القيمة -1 المدة التلقائية. تختلف القيم الافتراضية والحدود حسب النموذج:
| المعلمة | Seedance 2.0 | Seedance 2.5 |
|---|---|---|
duration | 4–15 / -1 (الافتراضي: 5) | 4–30 / -1 (الافتراضي: -1) |
resolution | 480p, 720p, 1080p (الافتراضي: 720p) | 480p, 720p (الافتراضي: 720p) |
generate_audio | boolean (الافتراضي: false) | boolean (الافتراضي: true) |
priority | غير مدعوم | integer: 0–9 |
seed | integer: -1–4294967295 (الافتراضي: -1) | غير مدعوم |
في Seedance 2.5، تتطلب طلبات الإطار الأول، والإطارين الأول والأخير، وتمديد الفيديو، والفيديو إلى الفيديو ratio: "adaptive". ويتطلب الفيديو إلى الفيديو أيضًا duration: -1. يقبل output_format القيمتين mp4 أو mov في Seedance 2.5 فقط.
- تقبل
ratioالقيم16:9أو4:3أو1:1أو3:4أو9:16أو21:9أوadaptive. - يتم قبول
watermarkوreturn_last_frameوseedوexecution_expires_afterوsafety_identifierعندما تكون صالحة للنموذج المحدد. - قد تشير
callback_urlإلى نقطة نهاية HTTP(S) عامة.
تسليم رد الاتصال (Callback)
عند وجود callback_url، يرسل TokenLab طلب HTTP POST عند تغير حالة المهمة. حالات رد الاتصال هي queued و running و succeeded و failed و expired. يتطابق نص JSON مع استجابة get-task.
تؤكد استجابة 2xx نجاح التسليم. بالنسبة لحالتي succeeded و failed، إذا لم ينجح التسليم في غضون خمس ثوانٍ، تتم إعادة المحاولة حتى ثلاث مرات. يحتوي رد الاتصال على رأس محتوى JSON القياسي فقط ولا يحتوي على رؤوس تسليم خاصة بـ TokenLab. لا يتم اتباع عمليات إعادة التوجيه، ويتم رفض أهداف الشبكة الخاصة أو المحجوزة.
احفظ معرف المهمة. إذا لم يتم تسليم رد الاتصال، فلا يزال بإمكانك استرداد النتيجة باستخدام نقطة نهاية get-task.
إعداد الصور
تُستخدم روابط صور HTTP(S) العامة وروابط data المدعومة كما أُرسلت، ولا تُحفظ تلقائيًا كمواد قابلة لإعادة الاستخدام. تستخدم مراجع asset://asset-... الصريحة مواد TokenLab الموجودة. يجري التحقق من الملكية والجاهزية قبل التوليد. إذا كانت المادة لا تزال قيد الإعداد، فانتظر حتى تصبح جاهزة ثم أعد المحاولة. عند فشل الإنشاء، افحص error.code وerror.message.
بالنسبة للمواد الموجودة، استخدم معرف asset-YYYYMMDDHHMMSS-xxxxx العام بدلاً من معرف الأصل الأصلي الذي تم إرجاعه بواسطة نظام آخر. يتحقق TokenLab من ملكية المادة قبل التوليد.
استجابة الإنشاء
{
"id": "cgt-20260102030405-a1b2c"
}تحتوي استجابة الإنشاء على معرف المهمة فقط. احفظه حتى تتمكن من استرداد الحالة والنتائج في أي وقت.
منع المهام المكررة
أرسل Idempotency-Key فريداً مع طلبات الإنشاء. إذا تم إغلاق الاتصال قبل وصول الاستجابة، أعد المحاولة باستخدام نفس مفتاح API ومفتاح التكرار (idempotency key) ونص الطلب:
- إذا تم إنشاء المهمة الأصلية، يعيد TokenLab نفس معرف
cgt-...ويضيفIdempotency-Replayed: true. - إذا كان الطلب الأصلي لا يزال قيد التسجيل، يعيد TokenLab الخطأ
409 IdempotencyRequestInProgress. أعد المحاولة لاحقًا بالمفتاح ونص الطلب نفسيهما. - إعادة استخدام المفتاح مع نص مختلف يعيد
409 IdempotencyConflictولا ينشئ مهمة ثانية أبداً.
ينطبق التكرار (Idempotency) على مسار إنشاء REST الرسمي v3. وهو لا يغير شكل استجابة JSON، ولا يتم استنتاجه من X-Request-ID أو من نصوص طلب متطابقة بدون مفتاح.
مثال
إنشاء REST
curl https://api.tokenlab.sh/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Idempotency-Key: $CLIENT_JOB_ID" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{"type": "text", "text": "A cinematic forest at sunset"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/ref.png"}}
],
"ratio": "16:9",
"duration": 5,
"resolution": "720p",
"generate_audio": false,
"callback_url": "https://example.com/webhooks/seedance"
}'بالنسبة للمواد الموجودة، ضع كل معرف مورد (URI) في عنصر content[] الرسمي وحدد دوره:
[
{
"type": "image_url",
"role": "first_frame",
"image_url": {"url": "asset://asset-20260720123458-start"}
},
{
"type": "image_url",
"role": "last_frame",
"image_url": {"url": "asset://asset-20260720123459-end01"}
}
]الخطوة التالية
استخدم معرف cgt-... الذي تم إرجاعه مع الحصول على مهمة (متوافقة مع Volc) حتى تصل المهمة إلى حالة نهائية.
curl -X POST "https://example.com/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -d '{ "model": "doubao-seedance-2-0-260128", "content": [ { "type": "text", "text": "A cinematic forest at sunset" }, { "type": "image_url", "role": "reference_image", "image_url": { "url": "https://example.com/ref.png" } } ], "ratio": "16:9", "duration": 5, "resolution": "720p", "generate_audio": false }'{ "id": "string"}التفويض
BearerAuth مصادقة مفتاح API. قم بإنشاء أو إدارة مفاتيح API في Dashboard > API > API Keys.
الموضع: header
الترويسات
سياسة التسليم لكل طلب. تتجاوز إعدادات API key و Workspace الافتراضية. يحاول النظام تلقائياً استخدام TokenLab Verified أولاً، وقد ينتقل مرة واحدة إلى Official فقط قبل المخرجات، أو قبول الطلب، أو إنشاء مورد دائم.
القيم المتاحة
- "auto"
- "verified"
- "official"
مفتاح تم إنشاؤه بواسطة العميل لإنشاء مهمة REST بشكل متكرر (idempotent). تحت نفس بيانات اعتماد API الخاصة بـ TokenLab، تؤدي إعادة استخدام نفس المفتاح مع نفس نص JSON إلى إرجاع معرف المهمة cgt الأصلي؛ بينما تؤدي إعادة استخدامه مع نص مختلف إلى إرجاع 409. احتفظ ببيانات الاعتماد والمفتاح ونص الطلب دون تغيير عند إعادة المحاولة بعد انتهاء المهلة أو انقطاع الاتصال.
1 <= length <= 255جسم الطلب
application/json
الاستجابة
application/json
application/json
application/json
application/json
application/json
application/json