نقاط النهاية
الصور
نقطة النهاية POST /images/generations لتوليد الصور من النص وتحريرها بنماذج GPT image وGemini image وFLUX وغيرها، بنفس مسار OpenAI SDK.
جرّبه في ساحة التجربةولّد الصور وحرّرها بكل نماذج الصور في الكتالوج: GPT image وGemini image وFLUX وSeedream وRecraft وغيرها. تستخدم نقطة النهاية مسار OpenAI SDK نفسه، لذا يعمل client.images.generate(...) دون تغيير.
POST https://api14.com/api/v1/images/generations
المسار POST /api/v1/images مقبول كاسم بديل. كلاهما يمرّر الجسم دون تغيير.
الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
model | string | نعم | معرّف نموذج صور، مثل openai/gpt-5.4-image-2. |
prompt | string | نعم | ما المطلوب رسمه. |
n | integer | لا | عدد الصور. تُحاسَب كل صورة. |
size | string | لا | مثل 1024x1024 و1536x1024. تختلف الأحجام المدعومة من نموذج إلى آخر. |
aspect_ratio | string | لا | مثل 16:9 و1:1، للنماذج التي تأخذ نسبًا بدل الأحجام. |
quality | string | لا | مثل low وmedium وhigh حيث يكون مدعومًا. |
response_format | string | لا | b64_json أو url حيث يكون مدعومًا. |
image | string أو string[] | لا | صورة مرجعية أو أكثر كعناوين URL أو data: URI للتحرير / تحويل الصورة إلى صورة. |
خيارات كل نموذج (الدقة والنسب) مدرجة لكل نموذج في GET /images/models وفي صفحة كل نموذج.
مثال
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.images.generate({
"model": "openai/gpt-5.4-image-2",
"prompt": "A minimalist product photo of a ceramic mug on a wooden table",
"n": 1,
"aspect_ratio": "1:1"
});
import { writeFile } from "node:fs/promises";
await writeFile("image.png", Buffer.from(result.data[0].b64_json, "base64"));
الاستجابة
{
"created": 1791100000,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
],
"usage": { "cost": 0.04 }
}
تُعيد بعض النماذج url بدل b64_json. نزّل العناوين المستضافة سريعًا، فقد تنتهي صلاحيتها.
الصور عبر المحادثة
يمكن استدعاء نماذج الصور التي تُخرج نصًا أيضًا عبر Chat completions مع modalities:
{
"model": "google/gemini-2.5-flash-image",
"modalities": ["image", "text"],
"messages": [{ "role": "user", "content": "A watercolor fox, square" }]
}
تعود الصور المولَّدة في choices[0].message.images[] على هيئة data URLs.
عرض نماذج الصور
# Public, no API key needed
curl https://api14.com/api/v1/images/models
curl "https://api14.com/api/v1/models?category=image"
الأسعار
تُحاسَب نماذج الصور بسعرها المعلن، لكل صورة أو لكل مليون رمز صورة بحسب النموذج. تؤخذ التكلفة الدقيقة من استجابة المزوّد وتُخصم من رصيدك بالدولار.
الأخطاء
| الحالة | الرمز | متى يحدث |
|---|---|---|
| 400 | model_required / invalid_json | model مفقود أو الجسم غير صالح. |
| 402 | insufficient_balance | رصيدك بالدولار يساوي 0. |
| 403 | model_not_allowed / plan_required | قائمة المفتاح المسموح بها أو خطتك تستبعد النموذج. |
| 404 | model_not_found | معرّف نموذج غير معروف أو معطّل. |
| 413 | payload_too_large | الجسم (مثل الصور المرجعية المضمَّنة) يتجاوز حد الحجم. |
تُمرَّر أخطاء التحقق الصادرة من المزوّد (حجم غير مدعوم، سياسة المحتوى) بحالتها. راجع الأخطاء.