الانتقال إلى المحتوى الرئيسي

Documentation Index

Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt

Use this file to discover all available pages before exploring further.

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

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

لاستخدام API، يجب أولاً التقدم للحصول على الخدمة المناسبة من خلال صفحة SeeDream Images Generation API. بعد الدخول إلى الصفحة، اضغط على زر “Acquire” كما هو موضح في الصورة: إذا لم تكن مسجلاً أو مسجلاً دخولًا، سيتم توجيهك تلقائيًا إلى صفحة تسجيل الدخول لتسجيل حساب جديد أو تسجيل الدخول، وبعد ذلك ستعود تلقائيًا إلى الصفحة الحالية. عند التقديم لأول مرة، ستحصل على حصة مجانية لاستخدام API مجانًا.

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

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

يمكننا رؤية إعدادات رؤوس الطلب (Request Headers) التي تشمل:
  • accept: نوع الاستجابة المرغوب استلامها، هنا يتم تحديدها كـ application/json أي بصيغة JSON.
  • authorization: مفتاح استدعاء API، يمكن اختياره من القائمة بعد التقديم.
كما تم إعداد جسم الطلب (Request Body) ليشمل:
  • prompt: كلمة التوجيه.
  • model: نموذج التوليد، الافتراضي هو doubao-seedream-5.0-lite. يدعم النماذج doubao-seedream-5.0-lite (الأحدث)، doubao-seedream-4.5، doubao-seedream-4.0، doubao-seedream-3.0-t2i، وdoubao-seededit-3.0-i2i.
  • image: معلومات الصورة المدخلة، تدعم URL أو ترميز Base64. حيث يدعم doubao-seedream-5.0-lite، doubao-seedream-4.5، وdoubao-seedream-4.0 إدخال صورة واحدة أو متعددة، بينما يدعم doubao-seededit-3.0-i2i صورة واحدة فقط، وdoubao-seedream-3.0-t2i لا يدعم هذا المعامل.
  • size: تحديد أبعاد الصورة الناتجة، ويدعم طريقتين لا يمكن دمجهما:
    • الطريقة 1 | تحديد دقة الصورة الناتجة مع وصف نسبة العرض إلى الارتفاع باستخدام لغة طبيعية في prompt. تختلف الإعدادات المسبقة المدعومة حسب النموذج: يدعم doubao-seedream-5.0-lite دقات 2K/3K/4K؛ وdoubao-seedream-4.5 يدعم فقط 2K/4K؛ وdoubao-seedream-4.0 يدعم 1K/2K/4K؛ بينما doubao-seedream-3.0-t2i وdoubao-seededit-3.0-i2i لا يدعمان الإعدادات المسبقة ويقبلان فقط الطريقة 2.
    • الطريقة 2 | تحديد أبعاد الصورة بوحدات البكسل: الافتراضي 2048x2048، مع نطاقات مختلفة لإجمالي البكسلات ونسبة العرض إلى الارتفاع حسب النموذج (مثلاً الحد الأدنى لإجمالي البكسلات في 5.0 / 4.5 هو 3,686,400، وفي 4.0 هو 921,600، ونطاق 3.0-t2i / seededit-3.0-i2i هو [512x512, 2048x2048]).
  • seed: بذرة رقم عشوائي للتحكم في عشوائية المحتوى الناتج. نطاق القيم [-1, 2147483647]. يدعمه فقط doubao-seedream-3.0-t2i.
  • sequential_image_generation: توليد مجموعة صور مرتبطة بناءً على المحتوى المدخل. يدعم هذا المعامل doubao-seedream-5.0-lite، doubao-seedream-4.5، وdoubao-seedream-4.0، والافتراضي هو disabled.
  • stream: التحكم في تفعيل وضع الإخراج المتدفق. يدعمه doubao-seedream-5.0-lite، doubao-seedream-4.5، وdoubao-seedream-4.0، والافتراضي false.
  • guidance_scale: درجة التوافق بين ناتج النموذج وprompt، كلما زادت القيمة زادت الصلة. نطاق القيم [1, 10]. القيمة الافتراضية لـ doubao-seedream-3.0-t2i هي 2.5، ولـ doubao-seededit-3.0-i2i هي 5.5، ولا يدعمها النماذج الأخرى.
  • response_format: تحديد صيغة استرجاع الصورة الناتجة. الافتراضي url، ويدعم أيضًا b64_json.
  • watermark: تحديد ما إذا كانت الصورة الناتجة تحتوي على علامة مائية. الافتراضي true.
  • output_format: تحديد صيغة ملف الصورة الناتجة، يدعم jpeg (الافتراضي) وpng. يدعمه فقط doubao-seedream-5.0-lite.
  • tools: إعداد الأدوات التي يستدعيها النموذج، حاليًا يدعم web_search (بحث عبر الإنترنت). يدعمه فقط doubao-seedream-5.0-lite.
  • callback_url: عنوان URL لاستقبال نتائج الاستدعاء العكسي.
بعد الاختيار، يمكنك رؤية الكود المقابل على الجانب الأيمن، كما هو موضح:

اضغط على زر “Try” للاختبار، وستحصل على النتيجة التالية:
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "a white siamese cat",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.xhuoapi.ai/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
تتضمن النتيجة عدة حقول، وهي:
  • success: حالة مهمة توليد الصورة.
  • task_id: معرف مهمة توليد الصورة.
  • trace_id: معرف تتبع المهمة.
  • data: قائمة نتائج مهمة توليد الصورة.
    • image_url: رابط الصورة الناتجة.
    • prompt: كلمة التوجيه.
    • size: أبعاد الصورة الناتجة بالبكسل.
يمكننا رؤية أننا حصلنا على معلومات صورة مرضية، ونحتاج فقط إلى استخدام رابط الصورة في data للحصول على صورة SeeDream الناتجة. إذا أردت توليد كود التكامل مباشرة، يمكنك نسخه مثلًا كود CURL التالي:
curl -X POST 'https://api.xhuoapi.ai/v1/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-4-0-250828",
  "prompt": "a white siamese cat"
}'

مهمة تحرير الصور

إذا أردت تحرير صورة معينة، يجب أولاً تمرير معلمة image التي تحتوي على رابط الصورة المراد تحريرها.
  • model: النموذج المستخدم لمهمة تحرير الصورة، يدعم doubao-seedream-5.0-lite، doubao-seedream-4.5، وdoubao-seedream-4.0 إدخال صورة واحدة أو متعددة، وdoubao-seededit-3.0-i2i يدعم صورة واحدة فقط.
  • image: تحميل الصورة أو الصور المراد تحريرها.
مثال تعبئة النموذج:

الكود المقابل:
import requests

url = "https://api.xhuoapi.ai/v1/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "Keep the model pose and the liquid garment flowing shape unchanged. Change the clothing material from silver metal to completely transparent water (or glass). Through the liquid flow, the details of the model skin are visible. The light and shadow effect shifts from reflection to refraction.",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
بعد التشغيل، ستحصل على النتيجة فورًا كما يلي:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Keep the model pose and the liquid garment flowing shape unchanged. Change the clothing material from silver metal to completely transparent water (or glass). Through the liquid flow, the details of the model skin are visible. The light and shadow effect shifts from reflection to refraction.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.xhuoapi.ai/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
يمكن ملاحظة أن النتيجة تمثل تأثير تحرير الصورة الأصلية، والنتيجة مشابهة لما سبق.

الاستدعاء العكسي غير المتزامن

نظرًا لأن توليد الصور عبر SeeDream Images Generation API يستغرق وقتًا نسبيًا طويلًا (حوالي 1-2 دقيقة)، وإذا لم يستجب API لفترة طويلة، سيظل اتصال HTTP مفتوحًا مما يستهلك موارد النظام. لذلك، توفر هذه الواجهة دعم الاستدعاء العكسي غير المتزامن. العملية كالتالي: عند إرسال العميل للطلب، يحدد حقل callback_url لاستقبال النتيجة. بعد إرسال طلب API، يعيد API فورًا نتيجة تحتوي على حقل task_id الذي يمثل معرف المهمة. عند اكتمال المهمة، يتم إرسال نتيجة الصورة عبر POST بصيغة JSON إلى عنوان callback_url المحدد، وتتضمن النتيجة أيضًا حقل task_id لربط النتائج بالمهمة. فيما يلي مثال عملي: بعد التشغيل، ستحصل فورًا على النتيجة التالية:
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
المحتوى:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Keep the model pose and the liquid garment flowing shape unchanged. Change the clothing material from silver metal to completely transparent water (or glass). Through the liquid flow, the details of the model skin are visible. The light and shadow effect shifts from reflection to refraction.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.xhuoapi.ai/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
يمكن ملاحظة وجود حقل task_id في النتيجة، وبقية الحقول مماثلة لما سبق، مما يتيح ربط نتائج المهام باستخدام هذا المعرف.

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

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

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

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

الخلاصة

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