Api.Airforce
API REFERENCE

توليد الصورة

أنشئ الصور وحرّرها عبر نقطة نهاية واحدة متوافقة مع OpenAI. الشكل نفسه للطلب يصل إلى كل نموذج صور في الكتالوج.

يتفرّع image endpoint واحد متوافق مع OpenAI ليصل إلى Flux و Nano-Banana و Wan وغيرها من المزوّدين. أرسل شكل الطلب نفسه بغض النظر عن المزوّد الخلفي؛ تُمرَّر الخيارات الخاصة بكل مزوّد ويُتحقَّق منها مقابل قدرات كل موديل.

اكتشف موديلات الصور عبر سرد الـ models endpoint والإبقاء على تلك التي تتضمن output modalities الخاصة بها image.

POST /v1/images/generations

منسدل متوافق مع OpenAI images.generate SDK. تعمل المعلمات الخاصة بالموفر جنبًا إلى جنب مع المعلمات القياسية، حيث تقوم الواجهة الخلفية بإعادة توجيه ما يفهمه كل نموذج.

POSThttps://api.airforce/v1/images/generations

نماذج الصور

…· live

المعلمات المشتركة

ParameterTypeRequiredDescription
modelstringRequiredImage model ID. Find them on /v1/models: image models carry media_type: "image" and an image_caps block.
promptstringRequiredImage description.
nintegerOptionalNumber of variations to generate per request. Capped by the model's image_caps.max_n.
sizestringOptionalOpenAI-style WxH, e.g. "1024x1024". Provider-specific values pass through.
aspect_ratiostringOptionalAlternative to size. "16:9", "1:1", "9:16", … Validated against image_caps.aspect_ratios.
qualitystringOptional"standard" | "hd" (OpenAI) or model-specific labels. Validated.
response_formatstringOptional"url" (default) or "b64_json".
seedintegerOptionalReproducibility seed. Same prompt + same seed = same image (where the upstream supports it).
input_imagesarrayOptional[{ url? } | { b64_json? }] for image-to-image / reference / first-frame.
ssebooleanOptionalWhen true the response is sent as Server-Sent Events. The full JSON arrives in one event followed by [DONE]. Useful to keep long upstream renders from timing out at proxies.

مثال أساسي

curl https://api.airforce/v1/images/generations \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "A cute baby sea otter floating on its back",
    "n": 1,
    "response_format": "url"
  }'

شكل الرد

ParameterTypeRequiredDescription
createdintegerOptionalUnix timestamp.
dataarrayOptionalGenerated assets.
data[].urlstringOptionalImage URL when response_format is "url" (default). The image is re-hosted to a file host and the link ends in /image.jpeg; null if the re-host fails.
data[].b64_jsonstringOptionalBase64-encoded image bytes when response_format is "b64_json". The format follows the upstream provider (often JPEG), not necessarily PNG.
{
  "created": 1715000000,
  "data": [{
    "url": "https://.../image.jpeg"
  }]
}

البديل الجري

يمر sse: true عند استخدام الوكيل من خلال البرامج الوسيطة ذات مهلات الخمول الضيقة. الاستجابة هي حدث SSE واحد مع JSON الكامل [DONE].

data: {"created":1715000000,"data":[{"url":"https://.../image.jpeg"}]}

data: [DONE]

صورة إلى صورة ومرجع

نماذج مع image_caps.max_input_images > 0 قبول الصور المرجعية. قم إما بتمرير عناوين URL أو البيانات المشفرة بـ base64.

curl https://api.airforce/v1/images/generations \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "Same character, now in a snowy forest",
    "aspect_ratio": "16:9",
    "input_images": [
      {"url": "https://example.com/character.jpg"}
    ]
  }'

تعديل الصور

نقطة التعديل المتوافقة مع OpenAI. أرسل الصورة المصدر كملف multipart، كما تفعل حزم OpenAI البرمجية في images.edit، أو أرسل جسم JSON الموضح أعلاه مع input_images. تسلك المسار نفسه الذي يسلكه /v1/images/generations: النماذج والأسعار وشكل الاستجابة نفسها.

POSThttps://api.airforce/v1/images/edits
ParameterTypeRequiredDescription
modelstringRequiredAn image model with image_caps.max_input_images > 0 (see Discovering capabilities below).
promptstringRequiredWhat to change or create from the input image(s).
imagefileRequiredThe source image. Repeat as image[] for several references; images, images[] and input_images are accepted too, as files or as image URLs.
maskfileOptionalForwarded as is, but no listed model declares mask support, so the serving model may ignore it.
nintegerOptionalNumber of images to generate.
sizestringOptionalOutput size, e.g. "1024x1024", where the model supports it.
aspect_ratiostringOptionalOutput aspect ratio, e.g. "16:9", where the model supports it.
qualitystringOptionalModel-specific quality level.
response_formatstringOptional"url" or "b64_json", as on /v1/images/generations.
curl https://api.airforce/v1/images/edits \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "model=nano-banana-2" \
  -F "prompt=Same character, now in a snowy forest" \
  -F "[email protected]" \
  -F "aspect_ratio=16:9"
from openai import OpenAI

client = OpenAI(base_url="https://api.airforce/v1", api_key="sk-air-YOUR_API_KEY")

with open("character.png", "rb") as image:
    result = client.images.edit(
        model="nano-banana-2",
        image=image,
        prompt="Same character, now in a snowy forest",
    )
print(result.data[0].url)

حتى 16 صورة إدخال لكل طلب، بحجم 25 ميغابايت لكل منها؛ والحد الخاص بالنموذج هو image_caps.max_input_images. يُرفض الطلب الذي لا يحتوي على صورة إدخال بالرمز 400 بدلًا من أن يصبح استدعاءً لتحويل النص إلى صورة. قد تزيد كل صورة إدخال السعر، كما هو موضح في صفحة النموذج.


المعلمات الخاصة بالنموذج

بالإضافة إلى المعايير المشتركة المذكورة أعلاه، تقبل العائلات النموذجية الفردية الإضافات. تتم إعادة توجيه المعلمات غير المعروفة إلى المنبع كما هي، لذا فإن أي مقبض مستقبلي خاص بالموفر يعمل أيضًا بدون تحديث SDK.

Nano-Banana

nano-banana-2, nano-banana-pro

ParameterTypeRequiredDescription
aspect_ratiostringOptional"1:1", "16:9", "9:16", "4:3".
resolutionstringOptional"512", "1024", "2048".
image_urlsarrayOptionalReference images.

Suno (music)

كانت suno-v4.5 وsuno-v5 وsuno-v5.5 مقبولة تاريخيًا على نقطة النهاية هذه. أصبحت الآن تابعة لواجهة الموسيقى الأصلية على /v1/audio/music — وتُرفض الاستدعاءات هنا بخطأ `wrong_endpoint`.


اكتشاف القدرات

يعرض كل نموذج الصورة image_caps على /v1/models حتى يتمكن العملاء من التحقق من صحة المدخلات قبل الإرسال:

ParameterTypeRequiredDescription
image_caps.max_nintegerOptionalMaximum n per request.
image_caps.aspect_ratiosarrayOptionalAllowed aspect_ratio values.
image_caps.qualitiesarrayOptionalAllowed quality values.
image_caps.max_input_imagesintegerOptional0 = text-only model. Higher = supports reference images.
image_caps.supports_url_inputbooleanOptionalWhether input_images may be passed as URLs (vs base64).
image_caps.supports_seedbooleanOptionalWhether the model honours a seed value (most scraping-proxy upstreams ignore it).

تسعير الصور ليس ضمن image_caps — استخدم حقول السعر الخاصة بالنموذج على /v1/models لمعرفة التكلفة.