Claude Opus 5.5 متاح الآن على SeedRouter
SeedRouter Docs

GPT Image 2

أنشئ الصور وحرّر المراجع وطبّق الأقنعة عبر نقطة نهاية واحدة غير متزامنة للصور.

View Markdown

يقبل GPT Image 2 نصًا توجيهيًا وصورًا مرجعية اختيارية. أرسل الطلب مرة واحدة، واحتفظ بمعرّف المهمة المُعاد، ثم استعلم عن تلك المهمة للحصول على الصور المكتملة. ويُقدَّم عبر قناتين لكل منهما معرّف نموذج خاص، وكلاهما يقرأ المعاملات نفسها.

معرّفات النموذج

معرّف النموذجالقناةطريقة الاحتساب
gpt-image-2Standardسعر ثابت لكل صورة تُسلَّم، بأي مقاس وجودة
gpt-image-2-officialOfficialالتوكنات التي تبلّغ عنها كل عملية توليد (النص المُدخل ومخرجات الصورة)

يقبل المعرّفان المعاملات نفسها ويدعمان كل الأوضاع، والفرق الوحيد في طريقة الاحتساب. راجع صفحة النموذج للاطلاع على الأسعار الحالية. تستخدم الأمثلة أدناه gpt-image-2؛ استبدله بـ gpt-image-2-official للدفع بحسب التوكنات.

مثال سريع

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "An amber glass bottle on a cream background, studio lighting",
    "size": "1024x1024",
    "quality": "low"
  }'

نقطة النهاية

POST https://api.seedrouter.ai/v1/images/generations
الترويسةالقيمة
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

تتولى نقطة النهاية نفسها الإنشاء والتحرير بالمراجع والتحرير بالقناع. وتحتوي الاستجابة على معرّف مهمة لا على الصورة المكتملة. واحتفظ بمفاتيح API في شفرة تعمل على الخادم.

المعاملات

الاسمالنوعمطلوبالقيمة الافتراضيةملاحظات
modelstringنعم—gpt-image-2 أو gpt-image-2-official
promptstringنعم—لا يكون فارغًا؛ حتى 32,000 حرف.
imagesobject[]لا—من 1 إلى 16 كائنًا بالشكل {"image_url":"https://..."}؛ وتمرير images يفعّل وضع التحرير.
maskobjectلا—{"image_url":"https://..."}؛ ويتطلب images.
sizestringلاautoauto أو WIDTHxHEIGHT، وفق القواعد أدناه.
qualityenumلاautoauto أو low أو medium أو high.
backgroundenumلاautoauto أو opaque أو transparent.
output_formatenumلاpngpng أو jpeg.
output_compressionintegerلا100 مع JPEGمن 0 إلى 100؛ ولا تُرسله إلا مع jpeg. والقيمة صفر صالحة.
nintegerلا1من 1 إلى 10 صور.
moderationenumلاautoauto أو low.
userstringلا—معرّف اختياري للمستخدم النهائي في تطبيقك. تجنّب البيانات الشخصية.

قواعد الحجم

الخيارات الشائعة هي 1024x1024 و1536x1024 و1024x1536. ويجب أن تستوفي الأبعاد المخصصة القواعد كافة:

  • أن يكون العرض والارتفاع من مضاعفات 16.
  • ألا يتجاوز أي ضلع 3840 بكسل.
  • أن تكون نسبة العرض إلى الارتفاع بين 1:3 و3:1.
  • أن تكون المساحة الكلية بين 655,360 و8,294,400 بكسل، شاملة الطرفين.

تترك auto تحديد أبعاد المخرجات للنموذج. ولا ترسل نسب أبعاد مثل 16:9 في الحقل size.

يوفر Playground أدوات التحكم Auto والنسبة والمخصص. ويجمع وضع النسبة بين نسبة الأبعاد وإعداد جاهز لميزانية البكسل بمقدار 1K أو 2K أو 4K، ثم يرسل قيمة size الناتجة فقط. وهذه إعدادات في الواجهة لا معاملات مستقلة في الواجهة البرمجية: فلا ترسل resolution ولا aspect_ratio. فمثلًا يرسل 16:9 + 4K القيمة size: "3840x2160"؛ ويرسل 9:16 + 4K القيمة "2160x3840"؛ ويرسل 1:1 + 2K القيمة "2048x2048". وقد يقلل التقريب وحد الضلع عدد البكسلات للمستوى المختار. وتظهر الأبعاد الدقيقة قبل الإرسال.

تصف OpenAI الدقات التي تتجاوز 2560×1440 بأنها تجريبية. وهي مقبولة ضمن الحدود أعلاه؛ غير أن الدقة الأعلى لا تضمن تفاصيل أفضل.

مستويات الجودة

استخدم low للمسودات وقارن النتائج قبل اختيار مستوى أعلى. وتترك auto الاختيار للنموذج؛ وهي لا تضمن مستوى بعينه ولا تكلفة بعينها.

الخلفيات الشفافة

خاصية الشفافية في GPT Image 2 ما زالت في مرحلة المعاينة. وللحصول على خلفية شفافة اضبط background: "transparent" واستخدم PNG. ولا يدعم JPEG الشفافية. ولا ينطبق الضغط إلا على JPEG.

الحقل user متاح لعمليات التكامل عبر الواجهة البرمجية، لكنه لا يظهر في Playground ولا يُملأ تلقائيًا فيه.

تقبل الإعدادات القياسية الاختيارية (n وsize وquality وbackground وoutput_format وoutput_compression وmoderation) القيمة null للدلالة على الإغفال. وتُرفض الحقول غير المعروفة. ولا يمكن ضبط input_fidelity في GPT Image 2؛ إذ تُعالج المدخلات المرجعية دائمًا بدقة عالية. أما style وresponse_format فتخصّان نماذج صور أخرى ولا تُقبلان هنا.

الأوضاع

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

العمليةالمعاملات
من نص إلى صورةprompt
التحرير بصورة مرجعيةprompt + images
التحرير بالقناعprompt + images + mask

تحرير الصور المرجعية

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Make the bottle blue. Preserve the composition and lighting.",
    "images": [{"image_url": "https://example.com/reference.png"}],
    "mask": {"image_url": "https://example.com/mask.png"},
    "output_format": "jpeg",
    "output_compression": 90
  }'

استبدل رابطَي المثال بصورك أنت بحيث يمكن الوصول إليها. واحذف mask إذا أردت تحريرًا بصورة مرجعية دون تحديد منطقة بعينها.

مدخلات الوسائط

لا تقبل هذه الواجهة سوى الإشارة عبر الروابط. ولا تُقبل معرّفات OpenAI Files ولا روابط data بصيغة base64 ولا الرفع بصيغة multipart. ويرفع Playground الملفات المختارة إلى التخزين أولًا ثم يرسل روابطها.

يجب أن تكون الصور المرجعية روابط HTTP(S) عامة تشير إلى ملفات PNG أو JPEG أو WebP بحجم أقل من 50 ميغابايت لكل ملف. ويجب أن يكون القناع ملف PNG بحجم أقل من 4 ميغابايت وبالأبعاد نفسها للصورة المرجعية الأولى؛ وتحدّد منطقته الشفافة ما سيجري تحريره. والقناع يوجّه النموذج ولا يضمن حدودًا دقيقة على مستوى البكسل. وعند وجود عدة مراجع ينطبق القناع على الصورة الأولى. ويجري التحقق من الوسائط المشار إليها بالروابط أثناء المعالجة؛ وقد تؤدي الوسائط غير الصالحة أو التي يتعذّر الوصول إليها إلى فشل المهمة.

يرفع Playground الملفات المختارة ويرسل روابطها. وتستخدم طلبات الواجهة البرمجية كائنات روابط بصيغة JSON: فلا ترسل بايتات الملفات ولا base64 ولا روابط data: ولا روابط blob: ولا بيانات نماذج multipart.

عوامل التكلفة

راجع قسم أسعار النموذج للاطلاع على الأسعار الحالية. يحتسب gpt-image-2 (Standard) سعرًا ثابتًا لكل صورة تُسلَّم، بصرف النظر عن الجودة والمقاس والموجّه. أما في gpt-image-2-official (Official) فتعتمد التكلفة النهائية على استهلاك المدخلات والمخرجات، ويؤثّر فيها كلٌّ من الجودة وأبعاد المخرجات والصور المرجعية وطول الموجّه وعدد الصور.

يستند التقدير في Playground إلى عيّنة مقيسة وإلى الأسعار الحالية؛ وهو ليس عرض سعر مضمونًا. راجع الرسوم النهائية في سجل الاستخدام الخاص بحسابك. ولا تُحتسب رسوم على المهام الفاشلة.

بنية المخرجات

يعيد الإرسال مرجعًا للمهمة:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "processing",
  "created_at": 1789970508
}

الاستعلام عن المهمة

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

استعلم على فترات معتدلة، كل ثلاث ثوانٍ مثلًا، حتى تصبح قيمة status هي completed أو failed. وانتهاء مهلة الشبكة أثناء الاستعلام لا يعني فشل الإنشاء: احتفظ بمعرّف المهمة واستأنف التحقق. ولا تنشئ مهمة أخرى لمعرفة التقدّم.

مثال استعلام كامل

شغّل هذا بعد مثال الإرسال بلغة Python الوارد أعلاه. يستخدم المثال task_id المُعاد وينتظر حتى عشر دقائق. وبلوغ هذه المهلة المحلية يوقف الاستعلام فحسب؛ احتفظ بالمعرّف واستأنف الاستعلام عن المهمة نفسها.

import time

print(f"Task ID: {task_id}")
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        for image in task["output"]["data"]:
            print(image["url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(3)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

المهمة المكتملة

تعيد المهمة المكتملة روابط الصور المستضافة وبيانات الاستخدام:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "completed",
  "created_at": 1789970508,
  "finished_at": 1789970538,
  "output": {
    "created": 1789970532,
    "data": [{"url": "https://static.seedrouter.ai/media/tasks/task_example/0.png"}],
    "usage": {
      "input_tokens": 29,
      "output_tokens": 196,
      "total_tokens": 225
    }
  }
}
الحقلالمعنى
idاحتفظ بهذا المعرّف للاستعلامات اللاحقة.
statusprocessing أو completed أو failed.
created_at، finished_atطوابع زمنية Unix بالثواني؛ ويكون وقت الاكتمال فارغًا أو صفرًا أثناء المعالجة.
output.data[].urlروابط الصور المولّدة، وتتوفر عند الاكتمال.
output.sizeأبعاد المخرجات الفعلية عند الإبلاغ عنها.
output.qualityمستوى الجودة الفعلي عند الإبلاغ عنه.
output.backgroundالخلفية الفعلية عند الإبلاغ عنها.
output.output_formatصيغة الصورة الفعلية عند الإبلاغ عنها.
output.usageاستخدام الرموز المُبلّغ عنه عند توفره. وقد تتضمن كائنات التفاصيل عدد رموز النص والصورة.
errorخطأ مُهيكل في حال فشل المهمة.

تسلّم هذه الواجهة النتائج عبر مهام غير متزامنة. وهي ليست بديلًا عن Images SDK المتزامن؛ ولا تدعم stream ولا partial_images.

الأخطاء

الطلبات المرفوضة قبل إنشاء المهمة تعيد خطأ HTTP مصحوبًا بكائن error. أما المهمة التي تفشل بعد قبولها فتعيد عند الاستعلام رمز HTTP 200 مع status: "failed" وكائن error.

راجع كتالوج الأخطاء المشترك للاطلاع على الرموز وحالات HTTP وإرشادات إعادة المحاولة. وتستخدم جميع واجهات النماذج البنية نفسها للأخطاء.

{
  "id": "task_...",
  "status": "failed",
  "error": {
    "code": 60002,
    "message": "Generation could not be completed. Please try again."
  }
}

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

نصائح

  • صف الخامات والتكوين والإضاءة في النص التوجيهي.
  • عند التحرير، حدّد التغيير المطلوب وما ينبغي أن يبقى دون تغيير معًا.
  • استخدم قناعًا عندما يقتصر التغيير على منطقة محددة.
  • احفظ الصور المُعادة في تخزينك الخاص إذا احتجت إلى نسخة دائمة.

مواضيع ذات صلة