Skip to main content
ستتناول هذه المقالة توضيح الربط مع SeeDream Images Generation API، والتي يمكن من خلالها توليد صور SeeDream الرسمية من خلال إدخال معلمات مخصصة.

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

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

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

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

يمكننا أن نرى هنا أننا قمنا بتعيين رؤوس الطلب، بما في ذلك:
  • accept: نوع الاستجابة التي ترغب في تلقيها، هنا يتم ملؤها بـ application/json، أي بتنسيق JSON.
  • authorization: مفتاح استدعاء API، يمكن اختياره مباشرة بعد التقديم.
كما تم تعيين جسم الطلب، بما في ذلك:
  • prompt: كلمة التلميح.
  • model: نموذج التوليد، الافتراضي هو doubao-seedream-5-0-260128 (SeeDream 5.0 Lite، الأحدث). يدعم doubao-seedream-5-0-pro-260628، doubao-seedream-5-0-260128 (يقبل أيضًا الاسم المستعار الرسمي doubao-seedream-5-0-lite-260128doubao-seedream-4-5-251128، doubao-seedream-4-0-250828. حيث أن doubao-seedream-5-0-pro-260628 (SeeDream 5.0 Pro) هو نموذج الصورة الفردية الرائد، يقوم بتوليد صورة واحدة فقط، لا يدعم توليد مجموعة صور (sequential_image_generation)، أو التدفق (stream) أو البحث عبر الإنترنت (tools). يجب تمرير سلسلة النموذج الكاملة (doubao-seedream-5-0-260128)، تمرير اختصارات مثل doubao-seedream-5.0-lite سيؤدي إلى إرجاع 400.
  • image: معلومات الصورة المدخلة، تدعم URL أو ترميز Base64. doubao-seedream-5-0-pro-260628 يدعم إدخال صورة واحدة أو عدة صور (من 2 إلى 10 صور، بدءًا من الصورة الثانية يتم احتسابها)، doubao-seedream-5-0-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-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-260128، doubao-seedream-4-5-251128، doubao-seedream-4-0-250828 تدعم هذه المعلمة، الافتراضي هو disabled.
  • stream: التحكم في ما إذا كان سيتم تفعيل وضع الإخراج المتدفق. doubao-seedream-5-0-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-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-260128، doubao-seedream-4-5-251128، doubao-seedream-4-0-250828 تدعم جميعها إدخال الصورة.
  • image: تحميل الصورة التي تحتاج إلى تحريرها، صورة واحدة أو أكثر.
مثال على كيفية التعبئة:

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

تقسيم الطبقات (Seedream 5.0 Pro)

سيقوم تقسيم الطبقات بتفكيك صورة الإدخال إلى صورة أساسية واحدة وما يصل إلى 16 طبقة PNG شفافة يمكن تحريرها بشكل مستقل. الطلب التالي يجعل النموذج يتعرف تلقائيًا على العناصر الرئيسية؛ إذا كنت بحاجة إلى تحديد العناصر، يمكنك إضافة prompt، أو يمكنك استخدام إحداثيات <bbox> العادية في كلمة التوجيه.
تُرتب البيانات المرتجعة حسب 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.

ردود غير متزامنة

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

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

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

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

الاستنتاج

من خلال هذه الوثيقة، لقد فهمت كيفية استخدام واجهة برمجة تطبيقات توليد صور SeeDream من خلال إدخال كلمات التوجيه لتوليد الصور. نأمل أن تساعدك هذه الوثيقة في التوصيل والاستخدام الأفضل لهذه الواجهة. إذا كان لديك أي استفسارات، فلا تتردد في الاتصال بفريق الدعم الفني لدينا.