Api.Airforce
API REFERENCE

画像生成

OpenAI 互換の単一エンドポイントで画像を生成・編集できます。同じリクエスト形式がカタログのすべての画像モデルに届きます。

1 つの OpenAI 互換の image endpoint が Flux、Nano-Banana、Wan などのプロバイダーへ展開されます。upstream にかかわらず同じ request の形を送信でき、プロバイダー固有のオプションはそのまま渡され、各モデルの capabilities に対して検証されます。

image モデルを見つけるには、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 アイドルタイムアウトが厳しいミドルウェアを介してプロキシする場合。応答は完全な JSON を含む 1 つの SSE イベントです。 [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 互換の編集エンドポイントです。元画像をマルチパートのファイルとして送るか(OpenAI SDK の 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)

1 リクエストあたり入力画像は最大 16 枚、各 25 MB まで。モデル固有の上限は 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 はかつてこのエンドポイントで受け付けていました。現在はネイティブ音楽 API に属します: /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 のモデルの価格フィールドを使用してください。