Génération d'images
Générez et modifiez des images avec un point de terminaison unifié et compatible OpenAI qui s'étend sur Flux, Nano-Banana, Wan et plus encore.
Un seul endpoint d'image compatible OpenAI se déploie vers Flux, Nano-Banana, Wan et d'autres providers. Envoyez la même forme de requête quel que soit l'upstream ; les options spécifiques au provider sont transmises et validées par rapport aux capacités de chaque modèle.
Découvrez les modèles d'image en listant l'endpoint models et en conservant ceux dont les output modalities incluent image.
POST /v1/images/generations
Drop-in compatible avec l'OpenAI images.generate SDK. Les paramètres spécifiques au fournisseur cohabitent avec les paramètres standard : le backend transmet ce que chaque modèle comprend.
https://api.airforce/v1/images/generationsModèles d'images
…· liveParamètres communs
| 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. |
Exemple de base
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"
}'Forme de réponse
| 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 de streaming
Passer sse: true lors du proxy via un middleware qui a des délais d'inactivité serrés. La réponse est un événement SSE avec le JSON complet, puis [DONE].
data: {"created":1715000000,"data":[{"url":"https://.../image.jpeg"}]}
data: [DONE]Image à image et référence
Modèles avec image_caps.max_input_images > 0 accepter les images de référence. Transmettez soit des URL, soit des données codées en 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"}
]
}'Paramètres spécifiques au modèle
Au-delà des paramètres communs ci-dessus, les familles modèles individuelles acceptent des extras. Les paramètres inconnus sont transmis tels quels à l'amont, de sorte que tout futur bouton spécifique au fournisseur fonctionne également sans mise à jour du 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". |
Découverte des capacités
Chaque modèle d'image expose image_caps sur /v1/models afin que les clients puissent valider les entrées avant d'envoyer :
| 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). |
La tarification des images ne figure pas dans image_caps — utilisez les champs de prix du modèle sur /v1/models pour le coût.