Open API

GPT Image API

استدعِ gpt-image-2 عبر واجهة LMU AI المتوافقة مع OpenAI Images للتحويل من نص إلى صورة وتحرير الصور والمعلمات وحفظ Base64 والبحث عن النموذج وإصلاح الأخطاء.

توفّر LMU AI واجهة متوافقة مع OpenAI Images من أجل التحويل من نص إلى صورة وتحرير الصور / التحويل من صورة إلى صورة باستخدام gpt-image-2.

Base URL

OpenAI SDK:

https://api.lmuai.com/v1

عند كتابة طلبات HTTP يدويًا، استخدم نقاط النهاية الكاملة:

POST https://api.lmuai.com/v1/images/generations
POST https://api.lmuai.com/v1/images/edits

1. نظرة عامة على الواجهة

الطريقةالمسارContent-Typeالوصف
GET/v1/modelsاستعلام عن النماذج المتاحة لمفتاح API الحالي
POST/v1/images/generationsapplication/jsonتحويل نص إلى صورة عبر GPT، استجابة متزامنة
POST/v1/images/editsmultipart/form-dataتحرير الصور / التحويل من صورة إلى صورة عبر GPT، استجابة متزامنة

لا توجد بعد واجهة دفعية متعددة العناصر لـ GPT

تدعم /v1/images/batches حاليًا Gemini فقط ولا يمكنها قبول gpt-image-2. لتوليد صور GPT متعددة، اجعل العميل يرسل الطلبات واحدًا تلو الآخر وأدِر التزامن ومعدل الطلبات في الدقيقة (RPM) بنفسك.

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

2. المصادقة

Authorization: Bearer YOUR_API_KEY

لا تضع مفتاح API الخاص بك في شيفرة الواجهة الأمامية للمتصفح، أو المستودعات العامة، أو سلاسل استعلام URL، أو السجلات. نوصي بالاستدعاء من خادمك الخاص.

3. الاستعلام عن النماذج

curl https://api.lmuai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

ابحث عن نموذج الصور في data[].id ضمن الاستجابة، على سبيل المثال:

{
  "object": "list",
  "data": [
    {"id": "gpt-image-2", "object": "model"}
  ]
}

تُحدَّد قائمة النماذج بحسب المجموعة التي ينتمي إليها مفتاح API الخاص بك. قد تُعيد مفاتيح API المختلفة على الموقع نفسه نماذج مختلفة.

4. التحويل من نص إلى صورة

POST /v1/images/generations

curl https://api.lmuai.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A red ceramic mug, centered on a light-gray studio background, soft side lighting, no text",
    "n": 1,
    "size": "1024x1024",
    "quality": "low",
    "output_format": "png"
  }'

Python SDK

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

result = client.images.generate(
    model="gpt-image-2",
    prompt="A red ceramic mug, light-gray studio background, soft side lighting, no text",
    size="1024x1024",
    quality="low",
)

item = result.data[0]

if item.b64_json:
    with open("gpt-output.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))
elif item.url:
    print(item.url)
else:
    raise RuntimeError("No valid image in the response")

JavaScript

import OpenAI from "openai";
import fs from "node:fs";

const client = new OpenAI({
  apiKey: process.env.LMU_API_KEY,
  baseURL: "https://api.lmuai.com/v1",
});

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A red ceramic mug, light-gray studio background, soft side lighting, no text",
  size: "1024x1024",
  quality: "low",
  output_format: "png",
});

const item = result.data?.[0];
if (item?.b64_json) {
  fs.writeFileSync("gpt-output.png", Buffer.from(item.b64_json, "base64"));
} else if (item?.url) {
  console.log(item.url);
} else {
  throw new Error("No valid image in the response");
}

5. معلمات التحويل من نص إلى صورة

الحقلالنوعمطلوبالوصف
modelstringموصى بهحاليًا gpt-image-2
promptstringنعموصف الصورة
nintegerلاعدد الصور؛ يُحدَّد النطاق المتاح بحسب النموذج والقناة العلوية
sizestringلاالحجم المطلوب، مثل 1024x1024؛ الأبعاد الفعلية بالبكسل تتبع الصورة المُعادة
qualitystringلامستوى الجودة، مثل low، medium، high؛ حسب قدرات النموذج
backgroundstringلاإعداد الخلفية، مثل خلفية شفافة؛ حسب قدرات النموذج
output_formatstringلاpng، jpeg، webp، إلخ؛ حسب قدرات النموذج
output_compressionintegerلاجودة الضغط لصيغ مثل JPEG / WebP
response_formatstringلامعلمة توافق تنسيق الاستجابة؛ ينبغي على العملاء التحقق من كل من b64_json وurl
moderationstringلامعلمة مراجعة المحتوى؛ حسب قدرات النموذج
streambooleanلامفتاح تبديل لاستجابات الصور المتدفقة؛ في الاستدعاءات العادية من جانب الخادم نوصي بعدم التدفق
partial_imagesintegerلاعدد الصور الجزئية في سيناريوهات التدفق؛ حسب قدرات النموذج

size ليس ضمانًا للاقتصاص

قد تُعيّن الحسابات العلوية المختلفة وخلفيات الصور size أو تُطبّعها وفق قدراتها. حتى لو طلبت 1024x1024، قد تختلف بكسلات الصورة الفعلية. عندما تحتاج نسبة أو حجم بكسل ثابتًا، اقرأ أبعاد ملف الإخراج واقتص أو غيّر الحجم من جانبك.

6. تحرير الصور / التحويل من صورة إلى صورة

POST /v1/images/edits

يستخدم تحرير الصور عبر GPT multipart/form-data:

curl https://api.lmuai.com/v1/images/edits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Keep the mug's shape, composition, and lighting; change the mug from red to green; no text" \
  -F "image=@./input.png" \
  -F "size=1024x1024" \
  -F "quality=low" \
  -F "output_format=png"

Python SDK:

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

with open("input.png", "rb") as image_file:
    result = client.images.edit(
        model="gpt-image-2",
        image=image_file,
        prompt="Keep the subject and composition; change the background to a neon street on a rainy night",
        size="1024x1024",
        quality="low",
    )

item = result.data[0]
if item.b64_json:
    with open("gpt-edited.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))

إذا كان النموذج والقناة يدعمان التحرير بالقناع، يمكنك إضافة:

-F "mask=@./mask.png"

تقبل نقطة نهاية التحرير أيضًا معلمات مثل input_fidelity وbackground وoutput_format وoutput_compression؛ ويعتمد التأثير الفعلي على قدرات النموذج.

7. تنسيق الاستجابة

استجابة صورة GPT نموذجية:

{
  "created": 1760000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAA..."
    }
  ],
  "background": "opaque",
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "model": "gpt-image-2",
  "usage": {
    "input_tokens": 48,
    "output_tokens": 186,
    "total_tokens": 234
  }
}

ينبغي على العملاء إجراء ثلاثة مستويات من التحقق:

  1. ما إذا كان رمز حالة HTTP هو 2xx؛
  2. ما إذا كان data مصفوفة غير فارغة؛
  3. ما إذا كان يوجد b64_json أو url غير فارغ في data[].

عندما تحصل على HTTP 200 دون حقل صورة صالح، عامله كفشل على مستوى العمل.

8. الأخطاء الشائعة

HTTPالسبب الشائعالإجراء الموصى به
400جسم طلب أو صيغة صورة أو معلمة أو نموذج غير صحيحتحقّق من JSON / multipart وأسماء الحقول ومعرّف النموذج
401مفتاح API غير صالحتحقّق من ترويسة Bearer ولا تضع مسافات حول المفتاح
403المجموعة التي ينتمي إليها مفتاح API لا تملك تفعيل توليد الصورتواصل مع المسؤول للتحقق من صلاحيات الصور للمجموعة
404مسار خاطئ، أو أن واجهة الصور غير مدعومة للمجموعة الحاليةتأكّد من أنك تستخدم /v1/images/generations أو /v1/images/edits
429قيود التزامن أو RPM أو حصة القناة العلويةاستخدم التراجع الأسّي وقلّل التزامن وRPM
5xxالقناة العلوية أو مُرحّل API غير متاح مؤقتًاسجّل معرّف الطلب وأعد المحاولة عددًا محدودًا من المرات

عند استكشاف الأخطاء، احفظ معرّف الطلب من ترويسات الاستجابة وقدّمه للمسؤول؛ ولا ترسل مفتاح API كاملاً.

9. الاختلافات عن واجهات الصور الأخرى

الحاجةالمستند الموصى به
التحويل من نص إلى صورة ومن صورة إلى صورة أصلي في Gemini، بدقة 1K / 2K / 4KGemini Image API
التحويل من نص إلى صورة والتحرير في GPTهذه الصفحة
التحويل من نص إلى صورة والتحرير في GrokGrok Image API
إرسال عدة موجّهات Gemini دفعة واحدةGemini Batch Image API

آخر تحديث:

في هذه الصفحة