Pembuatan gambar
Hasilkan dan edit gambar dengan titik akhir terpadu yang kompatibel dengan OpenAI yang menyebar ke Flux, Nano-Banana, Wan, dan banyak lagi.
Satu endpoint image yang kompatibel dengan OpenAI menyebar ke Flux, Nano-Banana, Wan dan provider lain. Kirim bentuk request yang sama terlepas dari upstream-nya; opsi spesifik provider diteruskan dan divalidasi terhadap kemampuan masing-masing model.
Temukan model image dengan melisting endpoint models dan menyimpan yang output modalities-nya mencakup image.
POST /v1/images/generations
Drop-in kompatibel dengan OpenAI images.generate SDK. Parameter khusus penyedia sama dengan parameter standar — backend meneruskan apa yang dipahami setiap model.
https://api.airforce/v1/images/generationsModel gambar
…· liveParameter umum
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Required | Image model ID. Filter /v1/models by output_modalities.includes("image"). |
| prompt | string | Required | Image description. |
| n | integer | Optional | Number of variations to generate per request. Capped by the model's image_caps.max_n. |
| size | string | Optional | OpenAI-style WxH, e.g. "1024x1024". Provider-specific values pass through. |
| aspect_ratio | string | Optional | Alternative to size. "16:9", "1:1", "9:16", … Validated against image_caps.aspect_ratios. |
| quality | string | Optional | "standard" | "hd" (OpenAI) or model-specific labels. Validated. |
| response_format | string | Optional | "url" (default) or "b64_json". |
| seed | integer | Optional | Reproducibility seed. Same prompt + same seed = same image (where the upstream supports it). |
| input_images | array | Optional | [{ url? } | { b64_json? }] for image-to-image / reference / first-frame. |
| sse | boolean | Optional | When 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. |
Contoh dasar
curl https://api.airforce/v1/images/generations \
-H "Authorization: Bearer sk-air-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-dev",
"prompt": "A cute baby sea otter floating on its back",
"n": 1,
"response_format": "url"
}'Bentuk respons
| Parameter | Type | Required | Description |
|---|---|---|---|
| created | integer | Optional | Unix timestamp. |
| data | array | Optional | Generated assets. |
| data[].url | string | Optional | Image 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_json | string | Optional | Base64-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"
}]
}Varian streaming
Lulus sse: true ketika melakukan proxy melalui middleware yang memiliki waktu tunggu idle yang ketat. Responsnya adalah satu peristiwa SSE dengan JSON lengkap [DONE].
data: {"created":1715000000,"data":[{"url":"https://.../image.jpeg"}]}
data: [DONE]Gambar-ke-gambar & referensi
Model dengan image_caps.max_input_images > 0 menerima gambar referensi. Baik meneruskan URL atau data yang dikodekan base64.
curl https://api.airforce/v1/images/generations \
-H "Authorization: Bearer sk-air-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-dev",
"prompt": "Same character, now in a snowy forest",
"aspect_ratio": "16:9",
"input_images": [
{"url": "https://example.com/character.jpg"}
]
}'Parameter khusus model
Di luar parameter umum di atas, kelompok model individual menerima tambahan. Parameter yang tidak diketahui diteruskan ke upstream apa adanya, sehingga kenop khusus penyedia di masa mendatang juga berfungsi tanpa pembaruan SDK.
Flux
flux-2-klein-4b, flux-2-klein-9b, flux-2-dev
| Parameter | Type | Required | Description |
|---|---|---|---|
| aspect_ratio | string | Optional | "1:1", "16:9", "9:16", "4:3", "3:4", "21:9", "9:21". |
| image_urls | array | Optional | Reference images for img2img mode. |
Nano-Banana
nano-banana-2, nano-banana-2-search, nano-banana-pro
| Parameter | Type | Required | Description |
|---|---|---|---|
| aspect_ratio | string | Optional | "1:1", "16:9", "9:16", "4:3". |
| resolution | string | Optional | "512", "1024", "2048". |
| image_urls | array | Optional | Reference images. |
Suno (music via /v1/images/generations)
suno-v4.5, suno-v5 — Suno historically routes through this endpoint. Native music API at /v1/audio/music is preferred for new code.
| Parameter | Type | Required | Description |
|---|---|---|---|
| custom | boolean | Optional | Switch from "auto" to fully custom mode. |
| instrumental | boolean | Optional | Suppress vocals. |
| style | string | Optional | Genre tag list, e.g. "EDM, Bass". |
Menemukan kemampuan
Setiap model gambar diekspos image_caps pada /v1/models sehingga klien dapat memvalidasi masukan sebelum mengirim:
| Parameter | Type | Required | Description |
|---|---|---|---|
| image_caps.max_n | integer | Optional | Maximum n per request. |
| image_caps.aspect_ratios | array | Optional | Allowed aspect_ratio values. |
| image_caps.qualities | array | Optional | Allowed quality values. |
| image_caps.max_input_images | integer | Optional | 0 = text-only model. Higher = supports reference images. |
| image_caps.supports_url_input | boolean | Optional | Whether input_images may be passed as URLs (vs base64). |
| image_caps.supports_seed | boolean | Optional | Whether the model honours a seed value (most scraping-proxy upstreams ignore it). |
Harga image tidak berada di image_caps — gunakan field harga pada model di /v1/models untuk biayanya.