الانتقال إلى المحتوى الرئيسي
ستعرّف هذه المقالة دليلاً لتكامل SeeDream Images Generation API، والذي يمكنه إنشاء صور SeeDream الرسمية عبر إدخال معلمات مخصصة.

عملية التقديم

لاستخدام SeeDream Images Generation API، انتقل أولاً إلى وحدة تحكم Ace Data Cloud للحصول على API Token الخاص بك، واحتفظ به للاستخدام لاحقًا. إذا لم تقم بتسجيل الدخول أو التسجيل بعد، فسيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك إلى التسجيل وتسجيل الدخول، وبعد الإكمال ستعود تلقائيًا إلى الصفحة الحالية. يمكن لـ API Token واحد استدعاء جميع خدمات المنصة، ولا حاجة للتقديم بشكل منفصل لكل خدمة. سيُمنح طلبك الأول رصيدًا مجانيًا، ويمكنك التجربة مجانًا؛ وعندما لا يكون الرصيد كافيًا، يمكنك شحن الرصيد العام من وحدة التحكم.
📘 الوثائق الكاملة: SeeDream Images Generation API →

الاستخدام الأساسي

تعرّف أولاً على طريقة الاستخدام الأساسية، وهي إدخال كلمة التلميح prompt، وإجراء التوليد action، وحجم الصورة size، ثم يمكنك الحصول على النتيجة المعالجة. تحتاج أولاً إلى تمرير حقل action ببساطة، وتكون قيمته generate، ثم نحتاج أيضًا إلى إدخال كلمة التلميح، والمحتوى المحدد كما يلي:

يمكن ملاحظة أننا قمنا هنا بتعيين Request Headers، وتشمل:
  • accept: التنسيق الذي ترغب في تلقي النتيجة المستجيبة به، ويُملأ هنا بـ application/json، أي تنسيق JSON.
  • authorization: مفتاح استدعاء API، ويمكنك الاختيار مباشرة من القائمة المنسدلة بعد التقديم.
كما تم تعيين Request Body، ويشمل:
  • prompt: كلمة التلميح.
  • model: نموذج التوليد، الافتراضي هو doubao-seedream-5-0-lite-260128 (SeeDream 5.0 Lite، الأحدث). يدعم doubao-seedream-5-0-pro-260628، وdoubao-seedream-5-0-lite-260128، وdoubao-seedream-4-5-251128، وdoubao-seedream-4-0-250828. من بينها، doubao-seedream-5-0-pro-260628 (SeeDream 5.0 Pro) هو نموذج رائد للصورة المفردة، وينشئ صورة مفردة فقط، ولا يدعم مجموعة الصور (sequential_image_generation) أو البث (stream) أو البحث عبر الإنترنت (tools). يجب تمرير سلسلة النموذج الكاملة إلى model (مثل doubao-seedream-5-0-lite-260128)، وتمرير اختصار مثل doubao-seedream-5.0-lite سيؤدي إلى إرجاع 400.
  • image: معلومات الصورة المُدخلة، وتدعم URL أو ترميز Base64. يدعم doubao-seedream-5-0-pro-260628 إدخال صورة واحدة أو صور متعددة (بحد أقصى 10 صور)، بينما يدعم doubao-seedream-5-0-lite-260128، وdoubao-seedream-4-5-251128، وdoubao-seedream-4-0-250828 إدخال صورة واحدة أو صور متعددة.
  • size: تحدد معلومات حجم الصورة المُنشأة، وتدعم الطريقتين التاليتين ولا يمكن خلطهما. الطريقة 1 | تحديد دقة الصورة المُنشأة، ووصف نسبة العرض إلى الارتفاع للصورة بلغة طبيعية في prompt. تختلف الإعدادات المسبقة المدعومة بين النماذج: يدعم doubao-seedream-5-0-pro-260628 ‏1K/1.5K/2K؛ ويدعم doubao-seedream-5-0-lite-260128 ‏2K/3K/4K؛ ويدعم doubao-seedream-4-5-251128 ‏2K/4K فقط؛ ويدعم doubao-seedream-4-0-250828 ‏1K/2K/4K. الطريقة 2 | تحديد قيم بكسل العرض والارتفاع للصورة المُنشأة: الافتراضي هو 2048x2048، ويختلف نطاق إجمالي البكسلات ونسبة العرض إلى الارتفاع حسب النموذج (على سبيل المثال، نطاق إجمالي البكسلات لـ 5.0 Pro هو [921600, 4624220]، والحد الأدنى لإجمالي البكسلات لـ 5.0 Lite / 4.5 هو 3,686,400، ولـ 4.0 هو 921,600).
  • sequential_image_generation: مجموعة صور: مجموعة من الصور المترابطة في المحتوى، يتم إنشاؤها بناءً على المحتوى الذي أدخلته. يدعم doubao-seedream-5-0-lite-260128، وdoubao-seedream-4-5-251128، وdoubao-seedream-4-0-250828 هذه المعلمة، والافتراضي هو disabled.
  • stream: يتحكم فيما إذا كان سيتم تفعيل وضع الإخراج المتدفق. يدعم doubao-seedream-5-0-lite-260128، وdoubao-seedream-4-5-251128، وdoubao-seedream-4-0-250828 هذه المعلمة، والافتراضي هو false.
  • response_format: يحدد تنسيق الإرجاع للصورة المُنشأة. الافتراضي هو url، ويدعم أيضًا b64_json.
  • watermark: ما إذا كانت ستتم إضافة علامة مائية إلى الصورة المُنشأة. الافتراضي هو true.
  • output_format: يحدد تنسيق ملف الصورة المُنشأة، ويدعم jpeg (الافتراضي) وpng. لا يدعمه إلا doubao-seedream-5-0-pro-260628 وdoubao-seedream-5-0-lite-260128.
  • tools: يضبط الأدوات التي سيستدعيها النموذج، ويدعم حاليًا web_search (البحث عبر الإنترنت). يدعمه Seedream 5.0 Lite فقط.
  • optimize_prompt_options: إعدادات تحسين كلمة التلميح. يدعم 5.0 Pro ‏standard/fast؛ ويدعم 5.0 Lite و4.5 ‏standard فقط؛ ويدعم 4.0 ‏standard/fast.
  • background: مدعوم فقط لتحرير الصورة المفردة في 5.0 Pro. يتطلب transparent إدخال PNG واحد مع قناة شفافية، ويجب أن يكون output_format هو png؛ أما opaque فهو خلفية عادية غير شفافة.
  • layer_decomposition: يدعمه 5.0 Pro فقط. عند تعيينه إلى true، يجب إدخال PNG/JPEG واحد، ويمكن عدم تمرير prompt للتقسيم التلقائي، أو تحديد العناصر بلغة طبيعية/<bbox>؛ يدعم size ‏auto/1K/1.5K/2K. لا يمكن استخدام هذا الوضع مع مجموعة الصور أو البث أو البحث عبر الإنترنت أو background.
  • callback_url: عنوان URL الذي يحتاج إلى نتيجة رد نداء.
  • async: ما إذا كانت المعالجة ستكون في وضع غير متزامن. عند تعيينه إلى true، تُرجع الواجهة task_id فورًا، ولا حاجة لتوفير callback_url، ثم يتم الحصول على النتيجة عبر الاستعلام الدوري من /seedream/tasks.
بعد الاختيار، يمكنك ملاحظة أنه تم أيضًا إنشاء الكود المقابل على الجانب الأيمن، كما هو موضح في الصورة:

انقر على زر «Try» لإجراء الاختبار، كما هو موضح في الصورة أعلاه، وهنا حصلنا على النتيجة التالية:
تتضمن نتيجة الإرجاع عدة حقول، وتفاصيلها كما يلي:
  • success، حالة مهمة إنشاء الفيديو في هذا الوقت.
  • task_id، معرّف مهمة إنشاء الفيديو في هذا الوقت.
  • trace_id، معرّف تتبع إنشاء الفيديو في هذا الوقت.
  • data، قائمة نتائج مهمة إنشاء الصور في هذا الوقت.
    • image_url، رابط مهمة إنشاء الصورة في هذا الوقت.
    • prompt، نص التلميح.
    • size: بكسلات الصورة المُنشأة
يمكن ملاحظة أننا حصلنا على معلومات صورة مرضية، ونحتاج فقط إلى الحصول على صورة SeeDream المُنشأة وفقًا لعنوان رابط الصورة في data ضمن النتيجة. بالإضافة إلى ذلك، إذا أردت إنشاء كود التكامل المقابل، فيمكنك نسخه مباشرةً لإنشائه، على سبيل المثال، كود CURL كما يلي:

مهمة تعديل الصور

إذا أردت تعديل صورة معينة، فيجب أولاً تمرير رابط الصورة التي تحتاج إلى تعديل في المعلمة image
  • model: النموذج المستخدم في مهمة تعديل الصور هذه، تدعم كل من doubao-seedream-5-0-pro-260628 وdoubao-seedream-5-0-lite-260128 وdoubao-seedream-4-5-251128 وdoubao-seedream-4-0-250828 إدخال الصور.
  • image: رفع الصورة أو الصور التي تحتاج إلى تعديل
مثال على التعبئة كما يلي:

الكود المقابل:
انقر للتشغيل، ويمكن ملاحظة أنه سيتم الحصول على نتيجة فورًا، كما يلي:
يمكن ملاحظة أن التأثير المُنشأ هو تأثير تعديل الصورة الأصلية، والنتيجة مشابهة لما ورد أعلاه.

تفكيك الطبقات (Seedream 5.0 Pro)

سيؤدي تفكيك الطبقات إلى تقسيم صورة إدخال واحدة إلى صورة خلفية واحدة وما يصل إلى 16 طبقة PNG شفافة قابلة للتحرير بشكل مستقل. يتيح الطلب التالي للنموذج التعرّف تلقائيًا على العناصر الرئيسية؛ وإذا أردت تحديد العناصر، يمكنك إضافة prompt، كما يمكنك استخدام إحداثيات <bbox> المعيارية في نص التلميح.
يتم ترتيب data المُعاد وفقًا لـ z_index من الأسفل إلى الأعلى. قيمة z_index لصورة الخلفية هي 0؛ وتتضمن الطبقات أيضًا name وdescription وbounding_box.absolute/normalized. عند إعادة التجميع باستخدام الإحداثيات المطلقة، قم بتحجيم الطبقة إلى [right-left, bottom-top]، وضعها عند [left, top]، ثم رصّها بترتيب تصاعدي لـ z_index. عند فشل إنشاء أي طبقة، يفشل التفكيك بالكامل.

الإخراج المتدفق

عند تعيين stream: true لـ Lite/4.x، استخدم رأس الطلب accept: application/x-ndjson. تُرجع الواجهة سطرًا بسطر image_generation.partial_succeeded أو image_generation.partial_failed، ثم تُرجع في النهاية حدث image_generation.completed الوحيد وusage النهائي؛ ولا يتم احتساب الرسوم إلا مرة واحدة عند حدث الإكمال. لا يمكن استخدام الوضع المتدفق مع async أو callback_url في الوقت نفسه.

معاودة الاتصال غير المتزامنة

نظرًا لأن وقت الإنشاء في SeeDream Images Generation API طويل نسبيًا، إذ يستغرق حوالي 1-2 دقيقة، فإذا لم تستجب API لفترة طويلة، سيظل طلب HTTP محتفظًا بالاتصال، مما يؤدي إلى استهلاك إضافي لموارد النظام، لذا توفر هذه API أيضًا دعمًا لمعاودة الاتصال غير المتزامنة. العملية العامة هي: عند بدء العميل للطلب، يتم تحديد حقل إضافي callback_url، وبعد أن يبدأ العميل طلب API، ستُرجع API نتيجة فورًا تتضمن معلومات الحقل task_id، والذي يمثل معرّف المهمة الحالية. بعد اكتمال المهمة، سيتم إرسال نتيجة الصورة المُنشأة بصيغة POST JSON إلى callback_url الذي حدده العميل، وتتضمن أيضًا الحقل task_id، وبهذه الطريقة يمكن ربط نتيجة المهمة عبر المعرّف. إذا لم يكن لديك عنوان عام متاح لمعاودة الاتصال، يمكنك أيضًا عدم تحديد callback_url، وبدلاً من ذلك تعيين الحقل async إلى true في الطلب. في هذه الحالة، ستُرجع الواجهة أيضًا task_id فورًا، لكنها لن تدفع النتيجة، ويجب عليك حمل task_id هذا لاستدعاء واجهة /seedream/tasks واستعلام حالة المهمة دوريًا للحصول على النتيجة النهائية. فيما يلي نتعرف من خلال مثال على كيفية التشغيل بالتحديد. انقر للتشغيل، ويمكن ملاحظة أنه سيتم الحصول على نتيجة فورًا، كما يلي:
المحتوى كما يلي:
يمكن ملاحظة وجود حقل task_id في النتيجة، بينما الحقول الأخرى مشابهة لما سبق، ويمكن تحقيق ربط المهمة من خلال هذا الحقل.

معالجة الأخطاء

عند استدعاء واجهة API، إذا واجهت خطأً، فستُرجع واجهة API رمز الخطأ والمعلومات المقابلة. على سبيل المثال:
  • 400 token_mismatched:طلب غير صالح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 400 api_not_implemented:طلب غير صالح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 401 invalid_token:غير مصرح، رمز التفويض غير صالح أو مفقود.
  • 429 too_many_requests:طلبات كثيرة جدًا، لقد تجاوزت حد معدل الطلبات.
  • 500 api_error:خطأ داخلي في الخادم، حدث خطأ ما على الخادم.

مثال على استجابة الخطأ

الخلاصة

من خلال هذا المستند، تعرفت على كيفية استخدام واجهة SeeDream Images Generation API لإنشاء الصور عبر إدخال كلمات التوجيه. نأمل أن يساعدك هذا المستند على التكامل مع واجهة API هذه واستخدامها بشكل أفضل. إذا كانت لديك أي أسئلة، فيُرجى التواصل مع فريق الدعم الفني لدينا في أي وقت.