GPT Image 2 API Azure : tarifs et configuration sur Azure OpenAI
Configurer GPT Image 2 sur Azure OpenAI implique de composer avec la tarification au token, un quota initial de 5 images par minute, une sortie uniquement en base64 et des noms de déploiement. Cet article détaille le coût réel de chaque rendu, les étapes de déploiement dans Foundry, des appels REST et Python fonctionnels, et cinq erreurs qui gonflent la facture.
Vous pouvez appeler GPT Image 2 depuis votre propre abonnement Azure. Dans ce cas, la facture, le quota et le modèle de sécurité suivent les règles d’Azure plutôt que celles d’OpenAI, ce qui change la manière de planifier votre usage. La tarification repose sur les tokens : un rendu coûte plus ou moins cher selon la qualité et la taille, et non un forfait fixe par image. Quant au quota par défaut, il est limité à 5 images par minute tant que vous n’en demandez pas davantage. Cet article détaille ce que coûte le modèle, comment le déployer dans Microsoft Foundry, les appels REST et Python exacts, et les erreurs qui gonflent discrètement une facture. Si vous voulez seulement des images, sans configuration cloud, une solution dans le navigateur est présentée vers la fin.
Ce que propose GPT Image 2 sur Azure
Azure OpenAI, la partie Azure de Microsoft Foundry, héberge les modèles d’images d’OpenAI aux côtés de ses modèles de texte. Vous créez une ressource, déployez un modèle sous un nom de votre choix et envoyez vos requêtes à un endpoint qui porte le nom de votre propre ressource. Le corps de la requête n’a rien d’exotique. Les différences apparaissent dans la facturation, le quota, l’authentification et le choix de la région.
La gamme de modèles
La documentation de Microsoft répertorie trois modèles d’images généralement disponibles dans la famille actuelle, ainsi qu’une série plus ancienne qui nécessite encore une demande d’accès.
En pratique : GPT Image 2 et les modèles 2.5 ne nécessitent aucun formulaire d’approbation, donc un nouvel abonnement peut les déployer l’après-midi même. La série 1 exige d’abord une demande d’inscription.
Pour qui Azure est le bon choix
Azure justifie sa configuration supplémentaire lorsqu’au moins une de ces conditions est remplie :
Votre entreprise achète déjà ses services cloud via un contrat Azure, de sorte que les dépenses liées aux images figurent sur une facture existante.
Vous devez choisir la région dans laquelle les requêtes sont traitées.
Vous voulez une connexion via Microsoft Entra ID, des attributions de rôles et un réseau privé, au lieu d’un secret partagé dans un fichier d’environnement.
Le quota doit être géré par abonnement et par déploiement, avec un administrateur capable de l’augmenter.
Azure n’est pas le bon choix tant que vous vous demandez si l’idée fonctionne. Un développeur solo qui teste un concept n’a pas besoin d’un groupe de ressources, d’une attribution de rôle et d’une demande de quota juste pour voir dix rendus. Prototypez là où la configuration est peu coûteuse, puis passez à Azure une fois les prompts, les formats et le volume mensuel définis.
Voici la comparaison des trois parcours courants.
Azure OpenAI
OpenAI en direct
Picasso IA dans le navigateur
Mise en place
Abonnement, ressource, déploiement
Compte et facturation
Connectez-vous et saisissez un prompt
Unité de facturation
Tokens, sur une facture Azure
Tokens, sur une facture OpenAI
Géré par la plateforme
Formats
Dimensions personnalisées par pas de 16 px
Définis par la documentation API d’OpenAI
1:1, 3:2, 2:3
Idéal pour
Applications en production avec des exigences de gouvernance
Prototypes rapides
Brouillons, tests, non-développeurs
Le coût réel de chaque rendu
Il n’existe pas de prix affiché par image. Vous payez en tokens : le texte de votre prompt, les images de référence éventuelles et, de loin la part la plus importante, l’image que produit le modèle.
Tarifs des tokens
OpenAI publie ces tarifs standard pour GPT Image 2, par million de tokens :
Type de token
Prix par million de tokens
Entrée texte
5,00 $
Entrée texte en cache
1,25 $
Entrée image
8,00 $
Entrée image en cache
2,00 $
Sortie image
30,00 $
Le traitement par lots est proposé à la moitié du tarif standard sur la page tarifaire d’OpenAI. Des calculateurs de prix Azure tiers affichent 5,00 $ par million de tokens d’entrée et 30,00 $ par million de tokens de sortie pour le déploiement Azure, ce qui correspond aux lignes entrée texte et sortie image ci-dessus.
💡 Astuce : Azure publie ses tarifs par région et par type de déploiement, et ils peuvent différer du tableau public d’OpenAI. Vérifiez les chiffres exacts dans le calculateur de prix Azure pour votre région avant de fixer un budget.
Exemples de calcul de coût
Le prix d’une image unique correspond à son nombre de tokens de sortie multiplié par 30 $, divisé par un million. Le modèle décide du nombre de tokens qu’un rendu consomme, et cela dépend de la qualité et de la taille du canevas. Les chiffres ci-dessous sont des hypothèses choisies pour illustrer le calcul, et non des mesures. Consultez les données d’usage renvoyées avec chaque réponse réelle pour connaître vos chiffres exacts.
Tokens de sortie supposés
Coût à 30 $ par million
Coût pour 1 000 images
1 000
0,03 $
30 $
2 500
0,075 $
75 $
5 000
0,15 $
150 $
8 000
0,24 $
240 $
Ajoutez le prompt lui-même : un prompt de 500 tokens à 5 $ par million ajoute 0,0025 $, soit une erreur d’arrondi à côté de l’image. Le côté sortie détermine l’essentiel du total, donc construisez votre budget autour de lui.
Réduire la facture
Faites vos brouillons en qualité basse. Passez à moyenne ou élevée seulement quand la composition est juste.
Adaptez le canevas à la page. Un rendu de 1 536 x 864 suffit largement pour une image d’en-tête de blog. La documentation d’OpenAI sur les images marque toute taille au-delà de 2 560x1440 comme expérimentale, et les canevas plus grands consomment généralement plus de tokens de sortie.
Demandez une image à la fois pendant vos itérations. Le paramètre n accepte de 1 à 10, et chaque image supplémentaire est facturée.
Réutilisez les préfixes de prompt. Le texte d’entrée en cache coûte 1,25 $ par million au lieu de 5,00 $, ce qui est utile lorsqu’une longue description de style se répète sur des milliers d’appels.
Vérifiez les options par lots pour les travaux qui peuvent attendre, puisque le traitement par lots est au demi-tarif côté OpenAI.
Liste de vérification avant déploiement
Deux points piègent les gens avant même l’envoi de la moindre requête : là où le modèle est disponible, et le faible quota par défaut.
Abonnement et région
Il vous faut un abonnement Azure actif et une ressource Azure OpenAI dans une région qui propose le modèle. La génération d’images n’est disponible que dans un sous-ensemble de régions. Ouvrez donc le tableau de disponibilité des régions de Microsoft, repérez GPT Image 2 et choisissez une région proche de vos utilisateurs ou de vos règles de gestion des données. Créer la ressource d’abord et vérifier le tableau ensuite est la cause la plus fréquente d’échec d’un déploiement.
Quota et limites de débit
Le quota par défaut documenté pour GPT Image 2 est de 5 images par minute. Plusieurs conséquences en découlent :
Une rafale de tâches parallèles atteindra presque immédiatement les réponses HTTP 429.
Le quota étant compté en images, une seule requête demandant dix images peut dépasser la limite sur un déploiement neuf. Testez votre valeur n avant de vous y fier.
Prévoyez des nouvelles tentatives avec un backoff exponentiel, et faites une demande d’augmentation de quota dès maintenant si vous attendez un trafic réel.
Un petit wrapper de nouvelles tentatives permet à une tâche par lots de tenir lorsque la limite se déclenche :
import time
from openai import RateLimitError
def generate_with_retry(client, deployment, prompt, attempts=5):
for attempt in range(attempts):
try:
return client.images.generate(
model=deployment, prompt=prompt, size="1536x864", quality="low", n=1
)
except RateLimitError:
if attempt == attempts - 1:
raise
time.sleep(2 ** attempt * 5)
Avec le quota par défaut, une attente de 5, 10, 20 puis 40 secondes entre les tentatives laisse à la fenêtre par minute le temps de se recharger.
💡 Astuce : Considérez 5 images par minute comme une limite d’essai. Une page produit qui génère des images à la demande aura besoin d’un quota relevé, d’une file d’attente ou des deux.
Déployer le modèle dans Foundry
Les menus du portail sont renommés d’une version à l’autre. Suivez donc le nom du modèle plutôt qu’un parcours de clics mémorisé.
Créer la ressource
Dans le portail Azure, créez une ressource Azure OpenAI ou un projet Microsoft Foundry, dans une région qui propose GPT Image 2.
Choisissez un nom de ressource qui vous conviendra à long terme. Il fait partie de l’endpoint : https://<resource-name>.openai.azure.com.
Terminez l’assistant de création et attendez la fin du provisionnement.
Créer le déploiement
Ouvrez le portail Foundry et accédez à la page des déploiements de votre ressource.
Choisissez de déployer un modèle de base et recherchez gpt-image-2.
Sélectionnez un type de déploiement, définissez la capacité et donnez un nom au déploiement.
Ce nom compte. Sur Azure, le champ model de votre code est le nom de déploiement, et non l’identifiant public du modèle. Si vous l’appelez images-prod, votre code envoie images-prod.
Foundry propose aussi un espace d’essai pour les modèles d’images, qui est le moyen le plus rapide de vérifier qu’un déploiement fonctionne avant d’écrire du code.
Trouver l’endpoint et les identifiants
Votre endpoint apparaît sur la vue d’ensemble de la ressource et sur la page des déploiements. Pour l’authentification, Azure vous laisse choisir entre un identifiant statique et Microsoft Entra ID. Pour tout ce qui dépasse un simple test jetable, utilisez Entra ID : attribuez le rôle Cognitive Services OpenAI User à votre identité, connectez-vous avec l’Azure CLI et laissez le SDK récupérer des jetons à courte durée de vie. De cette façon, aucune donnée sensible ne finit dans votre dépôt.
La documentation actuelle de Microsoft utilise la version d’API 2025-04-01-preview ou ultérieure. Voici les règles de requête pour GPT Image 2 :
Taille : dimensions personnalisées WIDTHxHEIGHT, les deux côtés étant des multiples de 16, aucun ne dépassant 3 840 pixels.
Format : compris entre 1:3 et 3:1.
Nombre de pixels : compris entre 655 360 et 8 294 400.
Qualité :low, medium ou high.
Nombre :n, de 1 à 10.
La requête REST
TOKEN=$(az account get-access-token \
--resource https://cognitiveservices.azure.com \
--query accessToken -o tsv)
curl -X POST "https://<resource-name>.openai.azure.com/openai/deployments/<deployment-name>/images/generations?api-version=2025-04-01-preview" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"prompt": "A ceramic mug of coffee on an oak desk, morning window light, 85mm photograph",
"size": "1536x864",
"quality": "medium",
"n": 1
}'
Python avec le SDK OpenAI
import base64
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default",
)
client = AzureOpenAI(
azure_endpoint="https://<resource-name>.openai.azure.com",
azure_ad_token_provider=token_provider,
api_version="2025-04-01-preview",
)
result = client.images.generate(
model="<deployment-name>",
prompt="A ceramic mug of coffee on an oak desk, morning window light, 85mm photograph",
size="1536x864",
quality="medium",
n=1,
)
with open("render.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
Enregistrer la sortie en base64
Voici le détail qui surprend : l’endpoint d’images d’Azure pour ces modèles ne renvoie que des données base64, sans option d’URL hébergée. Chaque réponse contient l’image complète dans le JSON.
Cela a des conséquences concrètes pour votre application :
Décodez le fichier et écrivez-le immédiatement sur un stockage durable, comme un conteneur blob.
Stockez l’URL de stockage dans votre base de données, et non la chaîne base64.
Redimensionnez les miniatures de votre côté, car l’API ne le fera pas à votre place.
Ne régénérez jamais une image que vous avez déjà payée simplement parce que vous avez perdu les octets.
Le stockage est la partie bon marché du pipeline. Quelques centaines de Ko par image dans un stockage blob coûtent une fraction infime de ce que le rendu lui-même a coûté. Conserver chaque sortie que vous payez est donc presque toujours le meilleur compromis.
Cinq erreurs qui font gaspiller de l’argent
Laisser la qualité sur élevée pour les brouillons. Les tokens de sortie constituent la principale dépense, et la qualité élevée en demande le plus. Brouillon en basse qualité, finition en haute.
Demander des canevas 4K pour des pages web. Si la page affiche l’image sur 1 280 pixels de large, un rendu de 3 840 pixels représente de l’argent que vous ne voyez pas passer.
Relancer les erreurs 429 en boucle serrée. Les appels limités en débit, martelés sans backoff, font perdre du temps et peuvent accumuler des travaux échoués.
Envoyer le nom public du modèle. La valeur model doit être votre nom de déploiement. Une incohérence renvoie une erreur, et les ingénieurs passent alors une heure à accuser la région.
Ne pas enregistrer la sortie. Les réponses en base64 disparaissent avec votre processus. Si vous n’avez pas écrit les octets sur un stockage, la seule solution est un nouveau rendu payant.
Utiliser GPT Image 2 sur PicassoIA
Tous les projets n’ont pas besoin d’une ressource cloud. GPT Image 2 sur PicassoIA fonctionne depuis une page web, ce qui en fait un moyen rapide de tester vos prompts avant de dépenser des tokens Azure pour eux.
Choisir vos réglages
Ouvrez la page du modèle, saisissez votre prompt et ajustez les options dont vous avez besoin.
Réglage
Fonction
Par défaut
Prompt
Décrit l’image (obligatoire)
Aucun
Qualité
Détail faible, moyen ou élevé
auto
Arrière-plan
Transparent, opaque ou automatique
auto
Format
1:1, 3:2 ou 2:3
1:1
Nombre d’images
De 1 à 10 variantes par lancement
1
Format de sortie
PNG, JPEG ou WebP
webp
Compression
De 0 à 100 %
90
Modération
Niveau du filtre de contenu
auto
Images d’entrée
Images de référence pour les modifications et les variantes
Aucune
Un champ facultatif accepte votre propre identifiant OpenAI. Laissez-le vide et la plateforme achemine la requête pour vous.
💡 Astuce : Les prompts qui mentionnent un objectif photo, une direction de lumière et une texture de surface donnent des résultats plus stables. Demandez à un modèle de texte comme Claude Sonnet 5 ou GPT 5.6 Terra de rédiger trois variantes de prompt, puis testez chacune ici.
Générer et télécharger
Appuyez sur le bouton de génération et attendez le rendu.
Vérifiez le rendu du texte, des mains et des contours en taille réelle.
Téléchargez le fichier dans le format de votre choix.
Modifiez un réglage à la fois et relancez.
Un flux de travail raisonnable répartit le travail en deux étapes. Utilisez le navigateur pour fixer la composition, la formulation et l’emplacement du texte, car les itérations y sont rapides et vous pouvez lancer jusqu’à dix variantes à la fois. Une fois qu’un prompt produit de façon fiable ce que vous voulez, copiez-le dans votre code Azure et lancez-le au format et à la qualité dont votre produit a besoin. Le prompt est repris tel quel, donc chaque essai réalisé au préalable évite des appels payants plus tard.
Vous avez maintenant une vue d’ensemble complète de GPT Image 2 sur Azure : une tarification au token qui récompense les brouillons en basse qualité, un quota initial de 5 images par minute, une sortie uniquement en base64 et un nom de déploiement qui fait aussi office de champ du modèle. Ces quatre éléments déterminent la plupart des budgets et la plupart des bogues.
La façon la moins coûteuse de trouver un prompt qui fonctionne est de le tester avant qu’il n’atteigne votre facture Azure. Ouvrez GPT Image 2 sur Picasso IA, rédigez la photo produit, l’affiche ou l’image d’en-tête que vous avez en tête, et lancez cinq variantes en basse qualité. Choisissez la gagnante, puis reprenez ce prompt exact dans votre déploiement Azure en toute confiance. Votre premier rendu n’est qu’à un prompt de distance, alors lancez-vous.