Skip to Content

Images API

Deux endpoints : génération (texte → image), édition (image + texte → image). Les réponses suivent toutes la structure standard OpenAI data[0].b64_json.

Les modèles d’images de la série Gemini (comme google/gemini-3.1-flash-image-preview) ne peuvent que générer, pas éditer sur cet endpoint. Pour éditer, passez par le protocole natif Gemini.

Générer des images

POST https://api.ofox.ai/v1/images/generations

Avec gpt-image-2

gen.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="openai/gpt-image-2", prompt="A simple red apple on a white table", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Résultat réel :

Pomme rouge générée par gpt-image-2

Avec gemini-3.1-flash-image-preview

Le même endpoint accepte également les modèles d’images Gemini. Ne passez pas n — la passerelle mappe par erreur n vers le champ numberOfImages et renvoie 400. Une seule image est générée à chaque appel.

gen_gemini.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="google/gemini-3.1-flash-image-preview", prompt="A simple red apple on a white table, photorealistic", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Résultat réel :

Pomme rouge générée par Gemini

Paramètres

ParamètreTypeObligatoireDescription
modelstringopenai/gpt-image-2, google/gemini-3.1-flash-image-preview
promptstringDescription en langage naturel
qualitystringauto / low / medium / high / standard / hd
nnumber1–10, par défaut 1. Non pris en charge par les modèles Gemini
sizestringauto / 1024x1024 / 1536x1024 / 1024x1536 / 256x256 / 512x512 / 1792x1024 / 1024x1792
output_formatstringpng / jpeg / webp
backgroundstringtransparent / opaque / auto
streambooleanPar défaut false

Réponse

{ "created": 1777385517, "data": [ { "b64_json": "<Image en Base64>", "index": 0 } ], "model": "openai/gpt-image-2", "size": "1024x1024", "quality": "low", "usage": { "input_tokens": 14, "input_tokens_details": { "text_tokens": 14 }, "output_tokens": 208, "total_tokens": 222 } }

L’image se trouve dans data[0].b64_json ; décodez-la en base64 puis enregistrez-la.

Éditer des images

POST https://api.ofox.ai/v1/images/edits

multipart/form-data, vous devez téléverser un fichier image.

Cet endpoint ne prend en charge que les modèles OpenAI / Azure OpenAI. Un appel avec google/gemini-3.1-flash-image-preview renverra Image editing is not supported for model — passez plutôt par l’édition d’images via le protocole natif Gemini.

Appel

edit.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") with open("apple.png", "rb") as f: resp = client.images.edit( model="openai/gpt-image-2", image=f, prompt="Change la pomme en vert, ne touche à rien d'autre", size="auto", quality="low", ) with open("apple_edited.png", "wb") as out: out.write(base64.b64decode(resp.data[0].b64_json))

Le champ image attend un chemin de fichier local (préfixe @ en cURL), pas une URL.

Comparaison réelle :

Image originaleAprès édition
Pomme rouge originalePomme verte après édition

Paramètres

ParamètreTypeObligatoireDescription
modelstringRecommandé : openai/gpt-image-2
imagefileFichier PNG / JPEG
promptstringInstruction d’édition
qualitystringlow / medium / high
nnumberPar défaut 1
sizestringauto correspond à la taille originale

Réponse

Identique à la génération :

{ "created": 1777385669, "data": [ { "b64_json": "<Image éditée en Base64>", "index": 0 } ], "model": "openai/gpt-image-2", "size": "auto", "quality": "low", "usage": { "input_tokens": 1041, "input_tokens_details": { "image_tokens": 1024, "text_tokens": 17 }, "num_input_images": 1, "output_tokens": 358, "total_tokens": 1399 } }

usage.input_tokens_details.image_tokens correspond aux tokens consommés par l’image en entrée et num_input_images au nombre d’images en entrée.

Pour les modèles pris en charge et leurs tarifs, consultez le catalogue des modèles .

Last updated on