Skip to main content
L’API OpenAI Images Generations prend actuellement en charge plusieurs modèles de génération d’images, y compris le classique dall-e-3, le gpt-image-1 avec une capacité de rendu de texte plus forte, la dernière génération de gpt-image-2, ainsi que la série de modèles nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro accessibles via la même interface. Tous peuvent générer des images de haute qualité à partir de descriptions textuelles. Ce document présente principalement le processus d’utilisation de l’API OpenAI Images Generations, qui nous permet d’utiliser facilement les fonctionnalités de génération d’images de la série OpenAI.

Processus de demande

Pour utiliser l’API OpenAI Images Generations, 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 vous invitant à 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 Generations API →

Modèle GPT-Image-2

gpt-image-2 est le nouveau modèle de génération d’images lancé par OpenAI, qui présente des améliorations significatives par rapport à dall-e-3 et gpt-image-1 dans les domaines suivants :
  • Capacité de suivi des instructions améliorée : capable de comprendre avec précision des instructions structurées complexes concernant la composition, le comptage, les relations de position, etc.
  • Rendu de texte plus clair : dans des scénarios tels que des affiches, des menus, des infographies, des logos, l’anglais et les chiffres ne présentent presque jamais de désordre.
  • Expression de style plus riche : prend en charge nativement divers styles tels que les portraits cinématographiques, les affiches rétro, les illustrations pour enfants, la photographie de produits, les infographies, etc.
  • Support natif pour plusieurs rapports + haute résolution : couvre 5 rapports (1:1, 4:3, 3:4, 16:9, 9:16) avec 3 niveaux de résolution (1K / 2K / 4K).
La méthode d’appel est identique à celle des autres modèles, il suffit de définir le champ model sur gpt-image-2. L’URL dans le résultat retourné est un lien vers une image hébergée de manière permanente sur platform.cdn.acedata.cloud, que vous pouvez ouvrir directement dans un navigateur ou intégrer dans une page web.

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 frais sont déterminés par le Token d’entrée de texte et le Token de sortie d’image, et sont finalement réglés en fonction de l’utilisation réelle dans la réponse ; le prix affiché pour la qualité/dimension sur la page est uniquement une estimation ; selon le forfait d’utilisation maximum, le prix client est d’environ 80 % du prix standard officiel d’OpenAI. Le service effectuera automatiquement une tolérance d’erreur entre les canaux disponibles, les capacités et les coûts étant basés sur les résultats retournés.
  • gpt-image-2:reverse : équivalent complet à gpt-image-2 par défaut, avec un meilleur rapport qualité-prix, sans changement de prix.
Formule de facturation :official Coût final = Token d’entrée de texte + Token d’entrée d’image (uniquement pour l’édition) + Token de sortie d’image. Le prix affiché quality × size est une estimation avant la demande, le coût réel étant basé sur l’utilisation réussie de usage. Par exemple, low, 1024x1024 coûte généralement environ 0,0505 crédits pour la sortie d’image, plus un petit nombre de Tokens d’entrée ; lors de l’utilisation de auto, le modèle peut choisir une qualité supérieure, le montant préautorisé sera vérifié de manière conservatrice selon un niveau plus élevé.

Valeurs size prises en charge

gpt-image-2 vérifie uniquement le format de size, tant qu’il n’est pas auto ou une chaîne vide, il doit correspondre à WIDTHxHEIGHT (par exemple 1024x1024, 2048x1152, 800x600) ; toute autre forme renverra 400. Le gpt-image-2 par défaut et :reverse facturent uniformément par image ; les dimensions et la qualité de :official affecteront le Token de sortie d’image, le règlement final étant basé sur l’utilisation réelle des Tokens. 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 sera renvoyé avec un code 4xx.
Lorsque vous transmettez explicitement size: "auto", la plateforme planifiera le canevas dans l’espace de rapport continu et déterminera selon les priorités suivantes : pixels ou rapports explicites dans les mots-clés, normes de nommage (papier / impression / emplacement de plateforme / publicité / appareil / photographie / cinéma), pratiques de support, et enfin inférence de composition. Ainsi, en plus des rapports courants 1:1, 4:5, 9:16, 21:9, il est également possible de conserver des rapports non prédéfinis tels que 1.91:1, 1.85:1, 2.39:1, et le papier ISO 1:√2 ; la taille finale sera automatiquement ajustée pour être un multiple de 16 et respecter le budget de pixels. Si le jugement automatique n’est pas disponible, il reviendra au format par défaut du modèle, sans bloquer la génération. Si le champ size est omis, le format par défaut du modèle sera utilisé ; pour des exigences strictes en matière de pixels, il est toujours conseillé de transmettre directement WIDTHxHEIGHT. La sortie en dessous de 1K ne garantit pas un alignement strict des pixels - vous pouvez transmettre 1024x1024 et obtenir 1254x1254, le rapport restant cohérent. Si vous le transmettez à nouveau en tant que size, la facturation ne changera pas. Un appel unique en 4K nécessite généralement 4 à 8 minutes, il est conseillé de l’utiliser avec le callback_url pour un rappel asynchrone. À propos du paramètre n gpt-image-2 prend en charge n > 1 (valeurs de 1 à 10) : il est possible de retourner le nombre correspondant d’images en une seule demande. Par défaut, gpt-image-2 et :reverse facturent en fonction du nombre d’images réussies ; la réponse usage de :official a déjà été résumée pour l’ensemble de la demande de Token, et ne sera pas multipliée par n à nouveau. Pour que plusieurs résultats aient des différences, il est conseillé de transmettre simultanément différents prompt ou seed. Cela s’applique également à gpt-image-1 / gpt-image-1.5, ainsi qu’aux séries nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro ; dall-e-3 ne prend en charge que n = 1. Notez que response_format=b64_json ne prend en charge que n=1, pour n>1, veuillez utiliser le retour d’URL par défaut. Si certaines images échouent à être générées, seules les parties réussies seront retournées et facturées.
Voici quelques exemples réels sous différents angles pour ressentir intuitivement la capacité de gpt-image-2.

Scène 1 : Portrait cinématographique

Des termes cinématographiques (film 35 mm, faible profondeur de champ, lumière néon, etc.) peuvent être utilisés dans le prompt pour contrôler précisément l’ambiance et la texture. Exemple de code d’appel Python :
Le résultat retourné est le suivant :
L’image générée est montrée ci-dessous :

Scène 2 : Affiche de voyage rétro (avec rendu de texte)

gpt-image-2 montre une performance stable en matière de mise en page et de rendu de police, ce qui le rend très adapté pour générer des affiches, des menus, des cartes de vœux et d’autres conceptions contenant du texte.
L’image correspondant au champ url dans le résultat retourné est la suivante :

On peut voir que le modèle a non seulement restitué avec précision le style visuel de l’affiche Art Deco, mais que le texte du titre AMALFI et ITALIA 1958 a également été rendu de manière claire et correcte.

Scène 3 : Composition complexe et comptage

Le prompt suivant est utilisé pour tester la capacité du modèle à suivre des instructions structurées concernant “quantité” et “position”.
L’image générée est la suivante :

On peut voir que le nombre de livres sur les trois étagères (1 / 3 / 7) correspond exactement au prompt, ce qui est difficile à réaliser de manière stable à l’époque de dall-e-3.

Scène 4 : Style d’illustration (paysage)

En spécifiant le médium artistique et des mots-clés émotionnels, on peut guider le modèle à produire des illustrations stylisées.
L’illustration en paysage générée est la suivante :

Asynchrone et rappel

L’appel unique à gpt-image-2 nécessite généralement 60 à 90 secondes. Si vous ne souhaitez pas maintenir une connexion longue, vous pouvez utiliser le mécanisme de rappel asynchrone callback_url décrit plus loin dans cet article, le processus d’appel étant identique à celui des autres modèles.

Modèles de la série Nano Banana

La série nano-banana est un modèle de génération d’images basé sur Gemini, qui a été intégré via la même interface /openai/images/generations, sans avoir besoin de changer d’endpoint, il suffit de modifier model pour 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, et ne prend en charge que les paramètres suivants par rapport à gpt-image-* : model, prompt, size, n.
  • size sera mappé à aspect_ratio interne selon le tableau ci-dessous, les tailles non listées seront dégradées à 1:1 :
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Les paramètres quality, style, response_format, background, output_format, etc. ne sont pas pris en charge ; s’ils sont remplis, ils seront ignorés. n > 1 est pris en charge (1–10), et renverra le nombre correspondant d’images facturées par image.
  • La structure de retour suit le format OpenAI (data[].url), mais created est fixé à 0, et b64_json ne sera pas renvoyé, revised_prompt est toujours égal au prompt original.

Appel de base

Le résultat retourné est le suivant :
L’image générée peut être directement accessible via le champ url retourné :

Mise à niveau vers le modèle phare nano-banana-pro

Il suffit de changer model en nano-banana-pro, les autres paramètres restent identiques :
Exemple de retour :

Callback asynchrone

Le mécanisme de callback asynchrone callback_url est également valable pour nano-banana, le processus d’appel est identique à celui des autres modèles, voir la section Callback asynchrone ci-dessous.

Utilisation de base

Vous pouvez maintenant remplir le contenu correspondant sur l’interface, comme illustré ci-dessous :

Lors de la première utilisation de cette interface, nous devons remplir au moins trois contenus, l’un est authorization, que vous pouvez sélectionner directement dans la liste déroulante. L’autre paramètre est model, model est la catégorie de modèle que nous choisissons d’utiliser sur le site officiel d’OpenAI DALL-E, ici nous avons principalement 1 type de modèle, les détails peuvent être consultés dans les modèles que nous fournissons. Le dernier paramètre est prompt, prompt est le mot d’invite que nous entrons pour générer l’image. Vous pouvez également remarquer qu’il y a un code d’appel correspondant généré à droite, vous pouvez copier le code et l’exécuter directement, ou cliquer directement sur le bouton « Essayer » pour tester.

Exemple de code d’appel Python :
Après l’appel, nous constatons que le résultat retourné est le suivant :
Le résultat retourné contient plusieurs champs, décrits comme suit :
  • created, l’ID généré pour cette image, utilisé pour identifier de manière unique cette tâche.
  • data, contenant les informations sur le résultat de la génération d’image.
Parmi data, il y a des informations spécifiques sur l’image générée par le modèle, où url est le lien détaillé de l’image générée, comme illustré ci-dessous.

Paramètre de qualité d’image quality

Nous allons maintenant expliquer comment définir certains paramètres détaillés des résultats de génération d’image, où le paramètre de qualité d’image quality comprend deux types, le premier standard indique que l’image générée est standard, l’autre hd indique que l’image créée a des détails plus fins et une plus grande cohérence. Voici comment définir le paramètre de qualité d’image sur standard, les réglages spécifiques sont illustrés ci-dessous :

Vous pouvez également remarquer qu’il y a un code d’appel correspondant généré à droite, vous pouvez copier le code et l’exécuter directement, ou cliquer directement sur le bouton « Essayer » pour tester.

Exemple de code d’appel Python :
Après l’appel, nous avons constaté que le résultat retourné est le suivant :
Le résultat retourné est cohérent avec le contenu de base utilisé, on peut voir que l’image générée avec le paramètre de qualité standard est illustrée ci-dessous :

Avec la même opération ci-dessus, il suffit de définir le paramètre de qualité de l’image sur hd, et on peut obtenir l’image illustrée ci-dessous :

On peut voir que hd génère des images avec des détails plus fins et une plus grande cohérence par rapport à standard.

Paramètre de taille d’image size

Nous pouvons également définir la taille de l’image générée, nous pouvons effectuer les réglages suivants. Voici le réglage de la taille de l’image à 1024 * 1024, les réglages spécifiques sont illustrés ci-dessous :

Vous pouvez également remarquer qu’il y a un code d’appel correspondant à droite, vous pouvez copier le code et l’exécuter directement, ou cliquer directement sur le bouton « Essayer » pour tester.

Exemple de code d’appel Python :
Après l’appel, nous avons constaté que le résultat retourné est le suivant :
Le résultat retourné est cohérent avec le contenu de base utilisé, on peut voir que l’image générée avec la taille de 1024 * 1024 est illustrée ci-dessous :

Avec la même opération ci-dessus, il suffit de définir la taille de l’image à 1792 * 1024, et on peut obtenir l’image illustrée ci-dessous : On peut voir que la taille de l’image est clairement différente, et il est également possible de définir d’autres tailles, pour plus d’informations, veuillez consulter notre documentation officielle.

Paramètre de style d’image style

Le paramètre de style d’image style contient deux paramètres, le premier vivid indique que l’image générée est plus vivante, l’autre natural indique que l’image générée est plus naturelle. Voici le réglage du paramètre de style d’image sur vivid, les réglages spécifiques sont illustrés ci-dessous :

Vous pouvez également remarquer qu’il y a un code d’appel correspondant à droite, vous pouvez copier le code et l’exécuter directement, ou cliquer directement sur le bouton « Essayer » pour tester.

Exemple de code d’appel Python :
Après l’appel, nous avons constaté que le résultat retourné est le suivant :
Le résultat retourné est cohérent avec le contenu d’utilisation de base, et on peut voir que l’image générée avec le paramètre de style d’image vivid est illustrée ci-dessous :

En effectuant la même opération qu’auparavant, il suffit de définir le paramètre de style d’image sur natural, ce qui donne l’image illustrée ci-dessous :

On peut voir que vivid produit des images plus vivantes et réalistes que natural.

Paramètre de format de lien d’image response_format

Le dernier paramètre de format de lien d’image response_format a également deux options, la première b64_json est un encodage Base64 du lien d’image, l’autre url est simplement un lien d’image normal, que l’on peut consulter directement. Voici comment définir le paramètre de format de lien d’image sur url, les réglages spécifiques sont illustrés ci-dessous :

Vous pouvez également remarquer qu’il y a un code d’appel correspondant à droite, que vous pouvez copier et exécuter directement, ou cliquer sur le bouton « Essayer » pour tester.

Exemple de code d’appel Python :
Après l’appel, nous avons constaté que le résultat retourné est le suivant :
Le résultat retourné est cohérent avec le contenu d’utilisation de base, et on peut voir que le lien de l’image générée avec le paramètre de format url est lien d’image qui est accessible directement, le contenu de l’image est illustré ci-dessous :

En effectuant la même opération qu’auparavant, il suffit de définir le paramètre de format de lien d’image sur b64_json, ce qui donne le lien d’image après encodage Base64, le résultat spécifique est illustré ci-dessous :

Rappel asynchrone

Étant donné que le temps de génération d’images de l’API OpenAI Images Generations peut être relativement long, 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, donc 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 champ callback_url supplémentaire, après que le client ait lancé la requête API, l’API renverra immédiatement un résultat, contenant un champ d’information task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de l’image générée sera envoyé au callback_url spécifié par le client sous forme de POST JSON, qui inclura également le champ task_id, permettant ainsi de relier le résultat de la tâche par ID. Voici 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 faciliter la démonstration, nous utilisons un site Web de démonstration Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme indiqué dans l’image 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 :
En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :
Après un moment, nous pouvons observer le résultat de l’image générée sur l’URL Webhook, le contenu est le suivant :
On peut voir qu’il y a un champ task_id dans le résultat, le champ data contient les mêmes résultats de génération d’image que l’appel synchrone, et le champ task_id permet d’associer les tâches.

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.

Exemple de réponse d’erreur

Conclusion

Grâce à ce document, vous avez compris comment utiliser facilement l’API OpenAI Images Generations pour utiliser la fonction de génération d’images officielle d’OpenAI DALL-E. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.