Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

كيفية اختبار توليد الصور من HiDream-I1 عبر API

@apidog

@apidog

Updated on أبريل 22, 2025

يبدو أنه في كل أسبوع نحصل على نماذج جديدة لتوليد الصور بواسطة الذكاء الاصطناعي قادرة على إنشاء صور مذهلة. أحد هذه النماذج القوية هو HiDream-I1-Full. بينما يمكن أن يكون تشغيل هذه النماذج محليًا مكثفًا من حيث الموارد، فإن استخدام واجهات البرمجة التطبيقية (APIs) يوفر وسيلة مريحة وقابلة للتوسع لدمج هذه التقنية في تطبيقاتك أو سير العمل لديك.

سيوجهك هذا الدليل خلال:

  1. فهم HiDream-I1-Full: ما هو وما هي قدراته.
  2. خيارات API: استكشاف منصتين شعبيتين تقدمان HiDream-I1-Full عبر API: Replicate وFal.ai.
  3. الاختبار باستخدام Apidog: دليل خطوة بخطوة حول كيفية التفاعل مع واختبار هذه الواجهات البرمجية باستخدام أداة Apidog.
💡
هل تريد أداة اختبار واجهات برمجة تطبيقات رائعة تولد وثائق واجهة برمجة تطبيقات جميلة?

هل تريد منصة متكاملة، شاملة لفريق المطورين لديك للعمل معًا بكفاءة قصوى?

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أكثر تنافسية!
زر

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

المتطلبات المسبقة:

  • فهم أساسي لواجهات برمجة التطبيقات (طلبات HTTP، JSON).
  • حساب على Replicate و/أو Fal.ai للحصول على مفاتيح API.
  • تثبيت Apidog (أو الوصول إلى الإصدار الويب الخاص به).

ما هو HiDream-I1-Full؟

HiDream AI: الملك الجديد لتوليد الصور بواسطة الذكاء الاصطناعي؟

HiDream-I1-Full هو نموذج متقدم لتحويل النص إلى صورة تم تطويره بواسطة HiDream AI. ينتمي إلى عائلة النماذج المصممة لتوليد صور عالية الجودة، متناسقة، وجميلة من الوصف النصي (المحفزات).

تفاصيل النموذج: يمكنك العثور على البطاقة الرسمية للنموذج ومزيد من المعلومات التقنية على Hugging Face: https://huggingface.co/HiDream-ai/HiDream-I1-Full

الم capabilities الرئيسية (المعتاد في نماذج من هذه الفئة):

  • توليد النص إلى صورة: ينشئ صورًا من محفزات نصية مفصلة.
  • دقة عالية: قادر على توليد صور بدقة عالية بشكل معقول مناسبة لمختلف التطبيقات.
  • التوافق مع الأنماط: غالبًا ما يمكن أن يفسر الإشارات الأسلوبية ضمن المحفز (على سبيل المثال، "على طريقة فان جوخ"، "واقعي"، "أنمي").
  • تكوين مشاهد معقدة: القدرة على توليد صور مع مواضيع متعددة، تفاعلات، وخلفيات مفصلة بناءً على تعقيد المحفز.
  • معلمات التحكم: غالبًا ما يسمح بضبط المعلمات مثل المحفزات السلبية (الأشياء التي يجب تجنبها)، البذور (لإمكانية إعادة الإنتاج)، مقياس التوجيه (مدى قوة اتباع المحفز)، واحتمال وجود تغييرات من صورة إلى أخرى أو مدخلات تحكم (اعتمادًا على تنفيذ API المحدد).
مقارنات HiDream AI مع GOT-4o، Recraft V3، Google Image 3، Ideogram 3.0 وFLUX (المصدر: ArtificialAnalysis)

لماذا تستخدم واجهة برمجة التطبيقات؟

يتطلب تشغيل نماذج الذكاء الاصطناعي الكبيرة مثل HiDream-I1-Full محليًا موارد حسابية كبيرة (وحدات معالجة رسومية قوية، ذاكرة RAM كبيرة، وتخزين) وإعدادات فنية (إدارة الاعتماديات، أوزان النموذج، تكوينات البيئة). توفر استخدام واجهة برمجة التطبيقات العديد من المزايا:

  • عدم وجود متطلبات للأجهزة: تخفيف عبء الحساب إلى بنية تحتية سحابية قوية.
  • قابلية التوسع: التعامل بسهولة مع أحمال متغيرة دون إدارة البنية التحتية.
  • سهولة التكامل: دمج قدرات توليد الصور في مواقع الويب، التطبيقات، أو السكربتات باستخدام طلبات HTTP القياسية.
  • خالية من الصيانة: يتولى مزود API تحديثات النموذج، الصيانة، وإدارة البرمجيات الخلفية.
  • الدفع حسب الاستخدام: غالبًا، تحتاج فقط لدفع أجر الوقت الذي استخدمته.

كيفية استخدام HiDream-I1-Full عبر API

تستضيف عدة منصات نماذج الذكاء الاصطناعي وتوفر الوصول إلى واجهات برمجة التطبيقات. سنركز على خيارين شعبيين لـ HiDream-I1-Full:

الخيار 1: استخدام واجهة برمجة تطبيقات HiDream من Replicate

Replicate هي منصة تجعل من السهل تشغيل نماذج التعلم الآلي عبر واجهة برمجة تطبيقات بسيطة، دون الحاجة إلى إدارة البنية التحتية. يستضيفون مكتبة ضخمة من النماذج المنشورة من قبل المجتمع.

  • صفحة Replicate لـ HiDream-I1-Full: https://replicate.com/prunaai/hidream-l1-full (ملاحظة: عنوان URL يذكر l1-full، لكنه الرابط المعني المقدم في المحفز لنموذج HiDream على Replicate. افترض أنها تتعلق بالنموذج المقصود لهذا الدليل).

كيفية عمل Replicate:

  1. التحقق: تحتاج إلى رمز API الخاص بـ Replicate، والذي يمكنك العثور عليه في إعدادات حسابك. يتم تمرير هذا الرمز في رأس Authorization.
  2. بدء توقع: ترسل طلب POST إلى نقطة النهاية الخاصة بـ API Replicate للتوقعات. يحتوي جسم الطلب على إصدار النموذج ومعلمات الإدخال (مثل prompt، negative_prompt، seed، إلخ).
  3. عملية غير متزامنة: عادةً ما تعمل Replicate بصورة غير متزامنة. يرجع طلب POST الأول على الفور مع معرف التوقع وURLs للتحقق من الحالة.
  4. الحصول على النتائج: تحتاج إلى استعلام URL الحالة (المقدم في الاستجابة الأولية) باستخدام طلبات GET حتى تصبح الحالة succeeded (أو failed). ستحتوي الاستجابة النهائية الناجحة على URL أو URLs للصورة المولدة.

مثال Python مفاهيمي (باستخدام requests):

import requests
import time
import os

REPLICATE_API_TOKEN = "YOUR_REPLICATE_API_TOKEN" # استخدم المتغيرات البيئية في الإنتاج
MODEL_VERSION = "TARGET_MODEL_VERSION_FROM_REPLICATE_PAGE" # على سبيل المثال، "9a0b4534..."

# 1. بدء التوقع
headers = {
    "Authorization": f"Token {REPLICATE_API_TOKEN}",
    "Content-Type": "application/json"
}
payload = {
    "version": MODEL_VERSION,
    "input": {
        "prompt": "مدينة سايبربانك مهيبة عند غروب الشمس، أضواء نيون تنعكس على الشوارع المبللة، توضيح مفصل",
        "negative_prompt": "قبيح، مشوه، ضبابي، سيء الجودة، نص، علامة مائية",
        "width": 1024,
        "height": 1024,
        "seed": 12345
        # أضف متغيرات أخرى كما هو مطلوب بناءً على صفحة نموذج Replicate
    }
}

start_response = requests.post("<https://api.replicate.com/v1/predictions>", json=payload, headers=headers)
start_response_json = start_response.json()

if start_response.status_code != 201:
    print(f"خطأ في بدء التوقع: {start_response_json.get('detail')}")
    exit()

prediction_id = start_response_json.get('id')
status_url = start_response_json.get('urls', {}).get('get')

print(f"بدأ التوقع بمعرف: {prediction_id}")
print(f"رابط الحالة: {status_url}")

# 2. الاستعلام عن النتائج
output_image_url = None
while True:
    print("التحقق من الحالة...")
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status')
    if status == 'succeeded':
        output_image_url = status_response_json.get('output') # عادةً قائمة من URLs
        print("نجح التوقع!")
        print(f"المخرج: {output_image_url}")
        break
    elif status == 'failed' or status == 'canceled':
        print(f"فشل التوقع أو أُلغي: {status_response_json.get('error')}")
        break
    elif status in ['starting', 'processing']:
        # انتظر قبل الاستعلام مرة أخرى
        time.sleep(5) # عدل فترة الاستعلام حسب الحاجة
    else:
        print(f"حالة غير معروفة: {status}")
        print(status_response_json)
        break

# الآن يمكنك استخدام output_image_url

التسعير: تفرض Replicate رسومًا بناءً على وقت تنفيذ النموذج على أجهزة الكمبيوتر الخاصة بهم. تحقق من صفحة التسعير الخاصة بهم للحصول على التفاصيل.

الخيار 2: Fal.ai

Fal.ai هو منصة أخرى تركز على توفير استنتاج سريع، قابل للتوسع، وفعال من حيث التكلفة لنماذج الذكاء الاصطناعي عبر واجهات برمجة التطبيقات. غالبًا ما يبرزون الأداء الفوري.

كيفية عمل Fal.ai:

  1. التحقق: تحتاج إلى بيانات اعتماد واجهة برمجة تطبيقات Fal (معرف المفتاح وسر المفتاح، غالبًا ما يتم دمجهما كـ KeyID:KeySecret). يتم تمرير ذلك في رأس Authorization، عادةً كـ Key YourKeyID:YourKeySecret.
  2. نقطة نهاية API: توفر Fal.ai رابط نقطة النهاية المباشر لوظيفة النموذج المحددة.
  3. شكل الطلب: ترسل طلب POST إلى رابط نقطة النهاية الخاصة بالنموذج. جسم الطلب عادةً ما يكون JSON يحتوي على معلمات الإدخال المطلوبة من قبل النموذج (مشابه لReplicate: prompt، إلخ).
  4. متزامن مقابل غير متزامن: يمكن أن تقدم Fal.ai كليهما. للمهمات التي قد تستغرق وقتًا طويلاً مثل توليد الصور، قد يستخدمون:
  • وظائف بدون خادم: دورة طلب/استجابة قياسية، ربما مع مهلات طويلة.
  • قوائم الانتظار: نمط غير متزامن مشابه لReplicate، حيث تقوم بإرسال مهمة وتستعلم عن النتائج باستخدام معرف الطلب. ستفصل صفحة واجهة برمجة التطبيقات المحددة النمط المطلوب للتفاعل.

مثال Python مفاهيمي (باستخدام requests - المفترض قائمة انتظار غير متزامنة):

import requests
import time
import os

FAL_API_KEY = "YOUR_FAL_KEY_ID:YOUR_FAL_KEY_SECRET" # استخدم المتغيرات البيئية
MODEL_ENDPOINT_URL = "<https://fal.run/fal-ai/hidream-i1-full>" # تحقق من الرابط المحدد على Fal.ai

# 1. تقديم الطلب إلى قائمة الانتظار (نموذج - تحقق من الوثائق الخاصة بـ Fal للحصول على الهيكل الدقيق)
headers = {
    "Authorization": f"Key {FAL_API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    # المعلمات غالبًا ما تكون مباشرة في الحمولة لوظائف Fal بدون خادم
    # أو ضمن كائن "input" حسب الإعداد. تحقق من الوثائق!
    "prompt": "بورتريه هايبرواقعي لرائد فضاء يطفو في الفضاء، الأرض تنعكس في نظارات الخوذة",
    "negative_prompt": "رسوم كاريكاتورية، رسم، توضيح، تخطيط، نص، أحرف",
    "seed": 98765
    # أضف معلمات أخرى مدعومة من قبل تنفيذ Fal.ai
}

# قد تحتاج Fal.ai لإضافة '/queue' أو معلمات الاستعلام المحددة لغير المتزامن
# مثال: POST <https://fal.run/fal-ai/hidream-i1-full/queue>
# تحقق من الوثائق الخاصة بهم! بافتراض نقطة نهاية تعيد رابط الحالة:

submit_response = requests.post(f"{MODEL_ENDPOINT_URL}", json=payload, headers=headers, params={"fal_webhook": "رابط الويب الاختياري"}) # تحقق من الوثائق للمعلمات مثل webhook

if submit_response.status_code >= 300:
    print(f"خطأ في تقديم الطلب: {submit_response.status_code}")
    print(submit_response.text)
    exit()

submit_response_json = submit_response.json()

# قد تختلف استجابة Fal.ai الغير متزامنة - قد تعيد request_id أو رابط الحالة المباشر
# بافتراض أنها تعيد رابط الحالة مشابه لReplicate لهذا المثال المفهومي
status_url = submit_response_json.get('status_url') # أو بناء من request_id، تحقق من الوثائق
request_id = submit_response_json.get('request_id') # معرف بديل

if not status_url and request_id:
     # قد تحتاج لبناء رابط الحالة، على سبيل المثال <https://fal.run/fal-ai/hidream-i1-full/requests/{request_id}/status>
     # أو استعلام عن نقطة حالة عامة: <https://fal.run/requests/{request_id}/status>
     print("تحتاج إلى بناء رابط الحالة أو استخدام request_id، تحقق من الوثائق لـ Fal.")
     exit() # يحتاج إلى تنفيذ محدد بناءً على وثائق Fal

print(f"تم تقديم الطلب. رابط الحالة: {status_url}")

# 2. استعلام عن النتائج (إذا كانت غير متزامنة)
output_data = None
while status_url: # استعلم فقط إذا كان لدينا رابط حالة
    print("التحقق من الحالة...")
    # قد يتطلب الاستعلام أيضًا تحقق
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status') # تحقق من وثائق Fal للحصول على مفاتيح الحالة ('COMPLETED'، 'FAILED'، إلخ)

    if status == 'COMPLETED': # حالة المثال
        output_data = status_response_json.get('response') # أو 'result'، 'output'، تحقق من الوثائق
        print("تم إكمال الطلب!")
        print(f"المخرج: {output_data}") # هيكل المخرج يعتمد على النموذج على Fal.ai
        break
    elif status == 'FAILED': # حالة المثال
        print(f"فشل الطلب: {status_response_json.get('error')}") # تحقق من حقل الخطأ
        break
    elif status in ['IN_PROGRESS', 'IN_QUEUE']: # حالات المثال
        # انتظر قبل الاستعلام مرة أخرى
        time.sleep(3) # عدل فترة الاستعلام
    else:
        print(f"حالة غير معروفة: {status}")
        print(status_response_json)
        break

# استخدم output_data (والذي قد يحتوي على URLs صور أو معلومات أخرى)

التسعير: عادةً ما تتقاضى Fal.ai رسوما بناءً على وقت التنفيذ، غالبًا مع فواتير بالثانية. تحقق من تفاصيل تسعيرهم للنموذج المحدد والموارد الحاسوبية.

اختبر واجهة برمجة تطبيقات HiDream باستخدام Apidog

Apidog هو أداة قوية لتصميم وتطوير واختبار واجهات برمجة التطبيقات. يوفر واجهة مستخدم سهلة الاستخدام لإرسال طلبات HTTP، تفقد الردود، وإدارة تفاصيل واجهة برمجة التطبيقات، مما يجعلها مثالية لاختبار واجهتي Replicate وFal.ai قبل دمجهما في الشيفرة.

زر

خطوات لاختبار واجهة برمجة تطبيقات HiDream-I1-Full باستخدام Apidog:

الخطوة 1. تثبيت وفتح Apidog: قم بتنزيل وتثبيت Apidog أو استخدم الإصدار الويب الخاص به. أنشئ حسابًا إذا لزم الأمر.

الخطوة 2. أنشئ طلبًا جديدًا:

  • في Apidog، أنشئ مشروعًا جديدًا أو افتح مشروعًا موجودًا.
  • اضغط على زر "+" لإضافة طلب HTTP جديد.

الخطوة 3. اضبط أسلوب HTTP ورابط URL:

  • الطريقة: حدد POST.
  • URL: أدخل رابط نقطة النهاية لواجهة برمجة التطبيقات.
  • لـ Replicate (بدء التوقع): https://api.replicate.com/v1/predictions
  • لـ Fal.ai (تقديم الطلب): استخدم رابط نقطة النهاية الخاصة بالنموذج المحدد المذكور في صفحتهم (على سبيل المثال، https://fal.run/fal-ai/hidream-i1-full - تحقق مما إذا كان يحتاج إلى /queue أو معلمات استعلام للغیر متزامن).

الخطوة 4. تكوين الرؤوس:

  • اذهب إلى علامة تبويب Headers.

أضف رأس Content-Type:

  • المفتاح: Content-Type
  • القيمة: application/json

أضف رأس Authorization:

لـ Replicate:

  • المفتاح: Authorization
  • القيمة: Token YOUR_REPLICATE_API_TOKEN (استبدل بمفتاحك الفعلي)

لـ Fal.ai:

  • المفتاح: Authorization
  • القيمة: Key YOUR_FAL_KEY_ID:YOUR_FAL_KEY_SECRET (استبدل بمسؤوليتك الفعلية)
  • نصيحة احترافية: استخدم متغيرات البيئة في Apidog لتخزين مفاتيح API الخاصة بك بأمان بدلاً من تشفيرها مباشرةً في الطلب. أنشئ بيئة (على سبيل المثال، "Replicate Dev"، "Fal Dev") وعرّف المتغيرات مثل REPLICATE_TOKEN أو FAL_API_KEY. ثم، في قيمة الرأس، استخدم Token {{REPLICATE_TOKEN}} أو Key {{FAL_API_KEY}}.

الخطوة 5. تكوين جسم الطلب:

اذهب إلى علامة تبويب Body.

اختر تنسيق raw واختر JSON من القائمة المنسدلة.

ألصق الحمولة JSON وفقًا لمتطلبات المنصة.

مثال للحمولة JSON لReplicate:

{
  "version": "PASTE_MODEL_VERSION_FROM_REPLICATE_PAGE_HERE",
  "input": {
    "prompt": "لوحة مائية لركن مكتبة دافئة مع قطة نائمة",
    "negative_prompt": "واقعي للغاية، تصوير ثلاثي الأبعاد، فن سيء، مشوه",
    "width": 1024,
    "height": 1024,
    "seed": 55555
  }
}

مثال للحمولة JSON لـ Fal.ai

{
  "prompt": "لوحة مائية لركن مكتبة دافئة مع قطة نائمة",
  "negative_prompt": "واقعي للغاية، تصوير ثلاثي الأبعاد، فن سيء، مشوه",
  "width": 1024,
  "height": 1024,
  "seed": 55555
  // يمكن أن تكون هناك حاجة إلى معلمات أخرى مثل 'model_name' حسب إعداد Fal.ai
}

مهم: ارجع إلى الوثائق المحددة على صفحات Replicate أو Fal.ai للحصول على المعلمات المطلوبة والاختيارية بالضبط لإصدار نموذج HiDream-I1-Full الذي تستخدمه. قد تكون معلمات مثل guidance_scale، num_inference_steps، إلخ، متاحة.

الخطوة 6. إرسال الطلب:

  • اضغط على زر "إرسال".
  • سيعرض Apidog رمز حالة الاستجابة والرؤوس والجسم.
  • لـ Replicate: يجب أن تحصل على حالة 201 Created. يحتوي جسم الاستجابة على id للتوقع ورابط urls.get. انسخ هذا الرابط get.
  • لـ Fal.ai (غير متزامن): قد تحصل على 200 OK أو 202 Accepted. قد يحتوي جسم الاستجابة على request_id، رابط status_url مباشر، أو تفاصيل أخرى حسب تنفيذهم. انسخ الرابط أو المعرف ذي الصلة اللازم للاستعلام. إذا كانت متزامنة، قد تحصل على النتيجة مباشرة بعد المعالجة (أقل احتمالًا لتوليد الصور).

استعلم عن النتائج (لواجهات برمجة التطبيقات غير المتزامنة):

  • أنشئ طلبًا جديدًا آخر في Apidog.
  • الطريقة: حدد GET.
  • URL: ألصق رابط الحالة الذي نسخته من الاستجابة الأولية (على سبيل المثال، الـ urls.get من Replicate أو رابط الحالة من Fal.ai). إذا أعطى Fal.ai request_id، قم ببناء رابط الحالة وفقًا للوثائق الخاصة بهم (على سبيل المثال، https://fal.run/requests/{request_id}/status).
  • تكوين الرؤوس: أضف نفس رأس Authorization كما في طلب POST. (عادةً ما لا تحتاج إلى Content-Type في GET).
  • إرسال الطلب: اضغط على "إرسال".
  • فحص الاستجابة: تحقق من حقل status في الاستجابة JSON.
  • إذا كانت processing، starting، IN_PROGRESS، IN_QUEUE، إلخ، انتظر بضع ثوانٍ واضغط "إرسال" مرة أخرى.
  • إذا كانت succeeded أو COMPLETED، ابحث عن حقل output (Replicate) أو response/result (Fal.ai) والذي يجب أن يحتوي على URL أو URLs للصور المولدة لديك.
  • إذا كانت failed أو FAILED، تحقق من حقل error لمزيد من التفاصيل.

عرض الصورة: انسخ عنوان URL للصورة من الاستجابة النهائية الناجحة والصقه في متصفح الويب الخاص بك لعرض الصورة المولدة.

💡
هل تريد أداة اختبار واجهات برمجة تطبيقات رائعة تولد وثائق واجهة برمجة تطبيقات جميلة?

هل تريد منصة متكاملة، شاملة لفريق المطورين لديك للعمل معًا بكفاءة قصوى?

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أكثر تنافسية!
زر

الخاتمة

يقدم HiDream-I1-Full قدرات قوية لتوليد الصور، ويجعل استخدام واجهات برمجة التطبيقات من منصات مثل Replicate أو Fal.ai هذه التقنية متاحة بدون الحاجة لإدارة بنية تحتية معقدة. من خلال فهم سير العمل API (الطلب، الاستعلام المحتمل، الاستجابة) واستخدام أدوات مثل Apidog للاختبار، يمكنك بسهولة التجريب ودمج توليد الصور المتقدمة بالذكاء الاصطناعي في مشاريعك.

تذكر دائمًا الرجوع إلى الوثائق المحددة على Replicate وFal.ai للحصول على أحدث روابط نقاط النهاية، المعلمات المطلوبة، طرق التحقق، وتفاصيل التسعير، حيث يمكن أن تتغير هذه بمرور الوقت. نتمنى لك تجربة إبداعية!