Generazione di immagini
Genera e modifica immagini con un unico endpoint compatibile con OpenAI. La stessa forma di richiesta raggiunge ogni modello di immagini del catalogo.
Un unico endpoint di immagini compatibile con OpenAI si dirama verso Flux, Nano-Banana, Wan e altri provider. Invia la stessa struttura di richiesta indipendentemente dall'upstream; le opzioni specifiche del provider vengono passate e validate rispetto alle capacità di ciascun modello.
Individua i modelli di immagini elencando l'endpoint dei modelli e tenendo quelli le cui output modalities includono image.
POST /v1/images/generations
Drop-in compatibile con OpenAI images.generate SDK. I parametri specifici del provider convivono insieme a quelli standard: il backend inoltra ciò che comprende ciascun modello.
https://api.airforce/v1/images/generationsModelli di immagine
…· liveParametri comuni
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Required | Image model ID. Find them on /v1/models: image models carry media_type: "image" and an image_caps block. |
| 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. |
Esempio di base
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"
}'Forma della risposta
| 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"
}]
}Variante in streaming
Passaggio sse: true durante l'inoltro tramite middleware con timeout di inattività ridotti. La risposta è quindi un evento SSE con il JSON completo [DONE].
data: {"created":1715000000,"data":[{"url":"https://.../image.jpeg"}]}
data: [DONE]Immagine per immagine e riferimento
Modelli con image_caps.max_input_images > 0 accettare immagini di riferimento. Passa URL o dati con codifica 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"}
]
}'Parametri specifici del modello
Oltre ai parametri comuni di cui sopra, le singole famiglie di modelli accettano extra. I parametri sconosciuti vengono inoltrati all'upstream così come sono, quindi qualsiasi futura manopola specifica del provider funzionerà anche senza un aggiornamento dell'SDK.
Nano-Banana
nano-banana-2, 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-v5.5 — 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". |
Alla scoperta delle capacità
Ogni modello di immagine espone image_caps SU /v1/models in modo che i client possano convalidare gli input prima di inviare:
| 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). |
Il prezzo delle immagini non è in image_caps — usa i campi di prezzo del modello su /v1/models per il costo.