gpt-image-1, le dernier gpt-image-2, ainsi que les modèles de la série nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro accessibles via la même interface.
Ce document présente principalement le processus d’utilisation de l’API OpenAI Images Edits, ce qui nous permet d’utiliser facilement les fonctionnalités d’édition d’images officielles d’OpenAI.
Processus de Demande
Pour utiliser l’API OpenAI Images Edits, commencez par obtenir votre API Token sur le tableau de bord Ace Data Cloud pour le garder en réserve.
Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter, après quoi vous serez automatiquement renvoyé à la page actuelle.
Un seul API Token suffit pour accéder à tous les services de la plateforme, sans avoir à en demander un pour chaque service. La première demande vous donnera un quota gratuit pour une expérience sans frais ; lorsque le quota est insuffisant, vous pouvez recharger le solde général dans le tableau de bord.
📘 Documentation complète : OpenAI Images Edits API →
Modèle GPT-Image-2
gpt-image-2 présente des améliorations significatives par rapport à gpt-image-1 dans le cadre de l’édition d’images :
- La structure est plus stable : changer de peau, de couleur ou de fond ne déforme presque jamais la mise en page et la composition de l’image d’origine.
- La conservation du texte est plus précise : les images contenant du texte, comme les infographies, les affiches et les menus, restent claires et lisibles après l’édition.
- Support de l’URL directe : en plus du téléchargement de fichiers traditionnel
multipart/form-data,gpt-image-2supporte également l’entrée d’URL d’image au format JSON, sans avoir besoin de télécharger l’image localement, ce qui est idéal pour l’intégration dans des pipelines côté serveur. - Support de l’entrée base64 directe : conformément à l’official, le champ
imagepeut également accepter directement du base64 (data:image/png;base64,...ou base64 brut), permettant d’éditer des images locales sans avoir à les télécharger sur un hébergement d’images. - Support de la redéfinition en haute résolution : vous pouvez soumettre une image d’origine de 1K et demander une sortie en 2K / 4K via le paramètre
size, le modèle agrandissant simultanément pendant le processus d’édition.
Variantes de ligne (:official / :reverse)
gpt-image-2 utilise par défaut la ligne standard. Vous pouvez explicitement choisir la ligne en ajoutant un suffixe au nom du modèle :
gpt-image-2:official: canal officiel, stable et conforme. Les coûts sont déterminés par le Token d’entrée de texte, le Token d’entrée d’image lors de l’édition et le Token de sortie d’image, le tout étant facturé selon l’utilisation réelle indiquée dans la réponse ; le prix affiché pour la qualité/dimension est uniquement une estimation ; le prix client est d’environ 80 % du prix standard d’OpenAI, calculé selon le forfait d’utilisation maximal. Le service gère automatiquement les erreurs entre les canaux disponibles, et les capacités et coûts sont basés sur les résultats réels retournés.gpt-image-2:reverse: équivalent complet àgpt-image-2par défaut, avec un meilleur rapport qualité-prix, sans changement de prix.
Formule de facturation:officialCoût final = Token d’entrée de texte + Token d’entrée d’image (édition uniquement) + Token de sortie d’image. Le prix affiché pourquality × sizeest une estimation avant la demande, le montant réel facturé étant basé sur leusagede la réponse réussie. Par exemple, un coût de sortie d’image d’environ 0,0505 crédits pourlow,1024x1024, plus un petit nombre de Tokens d’entrée ; lors de l’utilisation deauto, le modèle peut choisir une qualité supérieure, et le montant préautorisé sera vérifié de manière conservatrice selon le niveau supérieur.
Valeurs size supportées
La validation du format size pour l’interface d’édition est cohérente avec celle de l’interface de génération — gpt-image-2 nécessite que size soit auto, vide, ou conforme au format WIDTHxHEIGHT, toute autre forme renverra 400. Par défaut, gpt-image-2 et :reverse facturent uniformément par image ; :official calcule simultanément les Tokens d’entrée de texte, d’image de référence et de sortie d’image, l’image d’origine, la taille et la qualité pouvant tous influencer le coût final.
Limites de taille : les dimensions personnalisées doivent être des multiples de 16 pour la largeur et la hauteur, avec une longueur maximale de 3840 et un nombre total de pixels ≤ 8 294 400, tout dépassement renverra 4xx.
Par exemple : si l’image d’origine estVoici deux exemples réels sous différents angles pour ressentir la capacité d’édition de1024x1024, lorsquesizeest2048x2048, le modèle redessinera et sortira une image 2K selon les instructions d’édition ; sisizeest3840x2160, il sortira une image 4K en mode paysage. Les frais pour les trois tailles par défaut degpt-image-2et:reversesont identiques ;:officialest basé sur l’utilisation réelle des Tokens. Omettre le champsizeest équivalent à transmettre explicitementauto:gpt-image-2lira d’abord l’intention de taille explicite dans les mots d’invite, y compris les pixels, le ratio, l’orientation, le niveau de résolution (par exemple 4K / haute résolution) ou le nom du canevas. Lorsqu’une intention de taille est identifiée, la taille spécifique planifiée sera adoptée ; si les mots d’invite ne contiennent pas d’exigences de taille ou si le jugement automatique n’est pas disponible, il reviendra à la taille de la première image de référence. La taille finale sera normalisée à des multiples de 16, avec des limites de longueur et de pixels totaux avant la soumission de la demande ; pour un contrôle absolu, veuillez transmettre directementWIDTHxHEIGHT. Une fois la génération terminée, il n’y aura pas de nouvelle tentative en raison de pixels de sortie différents, afin d’éviter des frais de génération répétée. À propos du paramètrenL’interface d’éditiongpt-image-2prend en chargen > 1: une seule demande peut renvoyer le nombre correspondant de résultats d’édition. Par défaut,gpt-image-2et:reversesont facturés en fonction du nombre de succès ;:officialest facturé en fonction de l’utilisation réelle des tokens pour l’ensemble de la réponse (valeurs dende 1 à 10). Cela s’applique également àgpt-image-1/gpt-image-1.5, ainsi qu’aux sériesnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-pro. Notez queresponse_format=b64_jsonne prend en charge quen=1, pourn>1, veuillez utiliser le retour par défaut de l’URL. Si certaines images échouent à être générées, seules les parties réussies seront renvoyées et facturées.
gpt-image-2.
Méthode d’appel 1 : JSON + URL d’image (recommandé)
Envoyez directement la demande au formatapplication/json, en remplissant le champ image avec l’URL d’une image, le modèle ira chercher cette image et l’éditera selon le prompt.
Par exemple, l’image originale ci-dessous a été générée avec gpt-image-2 :


Remarque : Le champimageprend également en charge le passage d’un tableau, par exemple"image": ["url1", "url2", "url3"], permettant de transmettre jusqu’à 16 images de référence simultanément pour que le modèle puisse les utiliser pour l’édition.
Transmission directe en base64 :image(et chaque élément du tableau) peut être une URL ou du base64 —data:image/png;base64,...ou du base64 brut, ce qui est adapté aux images locales que l’on ne souhaite pas d’abord télécharger sur un hébergement d’images. Par exemple :
Méthode d’appel 2 : JSON + plusieurs images de référence
gpt-image-2 prend en charge la référence simultanée à plusieurs images pour générer le résultat final, par exemple en combinant plusieurs photos de produits dans un seul panier-cadeau :
Exemple de scénario : changer de style + conserver la structure
Voici un autre exemple, remplaçant une étagère en bois par une étagère flottante moderne, tout en conservant strictement le nombre et l’arrangement des livres sur chaque étagère. Image originale (étagère en bois générée avecgpt-image-2) :

e9544dba-727e-44a2-81e1-223d49869380) :

Méthode d’appel 3 : multipart/form-data (compatible avec OpenAI SDK)
Si vous utilisez déjà le SDK Python officiel d’OpenAI, l’ancienne méthode de téléchargementmultipart/form-data s’applique également, il suffit de changer model en gpt-image-2 :
OPENAI_BASE_URL doit être défini sur https://api.acedata.cloud/openai, et OPENAI_API_KEY doit être défini sur le token obtenu :
Modèles de la série Nano Banana
La sérienano-banana a également intégré /openai/images/edits dans le cadre de l’édition, il suffit de changer model en l’un des modèles du tableau ci-dessous.
Important : Plage de support des paramètres Nano Banana se connecte au protocole OpenAI via une couche d’adaptation, ne prenant en charge que les paramètres suivants :model,prompt,image,n.
imagepeut être téléchargé viamultipart/form-data(les fichiers locaux seront automatiquement convertis en base64), ou vous pouvez transmettre directement une chaîne d’URL d’image via un champ de formulaire.- Les paramètres
mask,size,response_format, etc. ne sont pas pris en charge ; s’ils sont remplis, ils seront ignorés.n > 1est pris en charge (1–10), renverra et facturera le nombre correspondant de résultats d’édition.- La structure de retour suit le format OpenAI (
data[].url), maiscreatedest fixé à0, etb64_jsonne sera pas renvoyé,revised_promptest toujours égal aupromptd’origine.
Appel via formulaire + URL d’image

Appel via formulaire + fichier local
Rappel asynchrone
Le mécanisme de rappel asynchronecallback_url est également valable pour nano-banana, le processus d’appel est identique à celui des autres modèles, voir la section Rappel asynchrone ci-dessous.
Utilisation de base
Vous pouvez maintenant utiliser le code pour faire des appels, ci-dessous un appel via CURL :authorization, que vous pouvez sélectionner directement dans la liste déroulante. Un autre paramètre est model, model est la catégorie de modèle que nous choisissons d’utiliser sur le site officiel d’OpenAI, ici nous avons principalement 1 type de modèle, les détails peuvent être consultés dans les modèles que nous fournissons. Un autre paramètre est prompt, prompt est le mot d’invite que nous entrons pour générer l’image. Le dernier paramètre est image, ce paramètre nécessite le chemin de l’image à éditer, l’image à éditer est illustrée ci-dessous :
Remarque :image[]peut apparaître plusieurs fois pour télécharger plusieurs images de référence, par exemple-F "image[]=@a.png" -F "image[]=@b.png", les modèles de la série GPT Image prennent en charge jusqu’à 16 images (chaque image ne dépassant pas 50 Mo, au format png/webp/jpg). Un dépassement du nombre entraînera un retour 400.

OPENAI_BASE_URL, qui peut être définie sur https://api.acedata.cloud/openai, et une autre variable d’authentification OPENAI_API_KEY, cette valeur est obtenue à partir de authorization, sur Mac OS, vous pouvez définir les variables d’environnement avec la commande suivante :
gift-basket.png sera générée dans le répertoire actuel, le résultat est le suivant :

gpt-image-1 et gpt-image-2, dont gpt-image-2 est le modèle recommandé à utiliser, voir la section ci-dessus Modèle GPT-Image-2.
Rappel asynchrone
Étant donné que l’API OpenAI Images Edits peut prendre un certain temps pour éditer une image, si l’API ne répond pas pendant une longue période, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. C’est pourquoi cette API propose également un support de rappel asynchrone. Le processus global est le suivant : lorsque le client initie une requête, il spécifie un champcallback_url supplémentaire. Après que le client a lancé la requête API, l’API renvoie immédiatement un résultat contenant un champ task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de l’édition de l’image est envoyé au callback_url spécifié par le client sous forme de POST JSON, incluant également le champ task_id, permettant ainsi de lier le résultat de la tâche par ID.
Voyons comment procéder à travers un exemple.
Tout d’abord, le rappel Webhook est un service capable de recevoir des requêtes HTTP, les développeurs doivent le remplacer par l’URL de leur propre serveur HTTP. Pour des raisons de démonstration, nous utilisons un site Web de Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme illustré ci-dessous :
Copiez cette URL, elle peut être utilisée comme Webhook, l’exemple ici est https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab.
Ensuite, nous pouvons définir le champ callback_url sur l’URL Webhook ci-dessus, tout en remplissant les paramètres correspondants, comme le montre le code suivant :
task_id dans le résultat, le champ data contient les mêmes résultats d’édition d’image que l’appel synchrone, et le champ task_id permet de lier la tâche.
Gestion des erreurs
Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :400 token_mismatched: Mauvaise requête, probablement en raison de paramètres manquants ou invalides.400 api_not_implemented: Mauvaise requête, probablement en raison de paramètres manquants ou invalides.401 invalid_token: Non autorisé, jeton d’autorisation invalide ou manquant.429 too_many_requests: Trop de requêtes, vous avez dépassé la limite de taux.500 api_error: Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

