Entrée d’image de l’API GPT : analyse visuelle et réglages detail
L’API GPT transforme chaque image en tokens, et le champ detail en détermine le nombre. Cet article présente la structure de la requête, les valeurs low, high, original et auto, le calcul détaillé des tokens pour les modèles à tuiles et à patchs, et un test pas à pas sur PicassoIA.
Un seul champ dans le corps d’une requête décide si une photo coûte 85 tokens ou 3 000. Ce champ est detail ; il se trouve dans l’objet image, à côté de l’URL, et la plupart des tutoriels l’ignorent ou citent des chiffres qui ne sont plus valables depuis deux générations de modèles. Si vous envoyez des captures d’écran, des tickets de caisse, des photos de produits ou des graphiques à un modèle GPT, ce réglage influe sur votre facture, votre latence et sur la part de l’image que le modèle peut réellement lire.
Cet article passe en revue la structure de la requête, les quatre valeurs de detail, le calcul des tokens pour les modèles à tuiles et à patchs, les cas où low se retourne contre vous, et les limites à connaître avant la mise en production. Les chiffres proviennent des pages de documentation de l’API d’OpenAI sur l’entrée d’image telles qu’elles se présentent aujourd’hui, et chaque exemple chiffré montre son calcul, afin que vous puissiez le vérifier avec le bloc usage de vos propres réponses. Ces pages changent souvent, ce qui est une raison de plus de journaliser les comptes de tokens plutôt que de faire confiance à un tableau, y compris ceux ci-dessous.
Comment une photo devient des tokens
Un modèle GPT ne lit jamais votre JPEG comme un fichier. L’API le redimensionne, le découpe en petits blocs et transforme chaque bloc en tokens placés dans la fenêtre de contexte, à côté de votre texte. Ces tokens sont facturés au tarif d’entrée normal du modèle : une image plus grande ou plus nette signifie donc une facture plus élevée et une latence plus forte. Ils entrent aussi en concurrence avec votre prompt et la réponse pour la même fenêtre de contexte, ce qui compte dès qu’une requête contient plusieurs images.
La structure de la requête
Les images voyagent à l’intérieur du message utilisateur sous forme de parties de contenu. L’API Responses utilise les parties input_text et input_image, tandis que Chat Completions utilise text et image_url. Dans les deux cas, detail se trouve sur la partie image. Voici un lecteur de tickets de caisse sur GPT 5.4 :
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.4",
input=[
{
"role": "user",
"content": [
{"type": "input_text", "text": "List every line item and the total."},
{
"type": "input_image",
"image_url": "https://example.com/receipt.jpg",
"detail": "original",
},
],
}
],
)
print(response.output_text)
print(response.usage.input_tokens)
Le même appel sur Chat Completions avec GPT-4o imbrique l’URL un niveau plus profond :
Après chaque appel, lisez usage.input_tokens sur Responses ou usage.prompt_tokens sur Chat Completions. C’est le seul chiffre qui tranche une discussion sur le coût.
Trois façons d’envoyer des pixels
URL publique. La solution la plus simple, mais les serveurs d’OpenAI doivent pouvoir la récupérer rapidement.
Data URL en base64. Une chaîne data:image/jpeg;base64,... en ligne fonctionne pour les fichiers privés et ajoute environ un tiers à la taille de la charge utile.
File ID. Importez une fois via l’API Files avec le purpose vision, puis référencez l’ID avec un champ file_id sur la partie image et réutilisez-le d’une requête à l’autre.
Les formats acceptés sont PNG, JPEG, WEBP et GIF non animé.
Les quatre valeurs de detail
Le champ detail accepte low, high, original et auto. Si vous l’omettez, vous obtenez auto, c’est-à-dire le dimensionnement par défaut du modèle. Les noms suggèrent une échelle simple, mais ce que fait chaque palier dépend du modèle appelé.
Valeur
À quoi la documentation la destine
Points de vigilance
low
Lecture grossière de l’image
Pas toujours moins chère que high sur les modèles récents
Low : grossier et bon marché, dans la plupart des cas
Sur les anciens modèles à tuiles, low est un forfait fixe : 85 tokens sur GPT-4o et GPT 4.1, quelle que soit la taille du fichier. Le modèle reçoit une version de 512 sur 512 pixels, suffisante pour dire « un chien sur une plage » mais pas pour lire un panneau de rue. Utilisez-le pour la classification, les légendes sommaires, les contrôles de modération et les décisions d’aiguillage, là où seul le sens général compte.
High et auto : la valeur par défaut au quotidien
Sur les modèles à tuiles, high ajuste d’abord l’image dans un carré de 2 048 sur 2 048, puis met le plus petit côté à 768 pixels, puis compte des tuiles de 512 pixels. Sur la famille GPT 5.x, il fonctionne à partir de patchs de 32 pixels, avec un plus grand côté de 2 048 pixels et un budget de 2 500 patchs sur GPT 5.4 et ses variantes plus petites. C’est largement suffisant pour les photos, les photos de produits et les captures d’écran classiques. Cela commence à poser problème avec les documents denses et le texte minuscule des interfaces, où quelques pixels perdus transforment un 6 en 8.
Original : quand les pixels comptent
original relève le plafond à 10 000 patchs et à un plus grand côté de 6 000 pixels sur GPT 5.4 et ses variantes. OpenAI le destine aux images grandes, denses, sensibles à l’espace ou destinées à l’utilisation d’ordinateur, ainsi qu’aux tâches sensibles aux coordonnées comme l’OCR ou la détection de petits objets. Imaginez une capture 4K où le modèle doit renvoyer la position d’un bouton, ou un plan d’étage où un trait fin porte une information. Cette netteté a un prix : jusqu’à 12 000 tokens par image, avec le multiplicateur 1,2.
La règle pratique est de ne le choisir que lorsqu’il se justifie. Commencez une tâche avec high, recensez les échecs, et ne passez à original que pour les types d’image qui échouent. Si un champ est mal lu avec high et correctement lu avec original, les tokens supplémentaires ont servi à quelque chose. Si les deux réglages échouent de la même façon, le problème vient du prompt ou de l’image source, et davantage de pixels n’y changeront rien.
Le calcul des tokens, détaillé
Modèles à tuiles
La facturation par tuiles combine un forfait de base et un tarif par tuile de 512 pixels. GPT-4o et GPT 4.1 facturent 85 de base et 170 par tuile. GPT 5.1 facture 70 et 140. GPT 4o Mini facture 2 833 et 5 667, donc basculer le traitement d’images vers le modèle mini gonfle le nombre de tokens au lieu de le réduire. Comparez le coût total, pas le tarif par token.
Les modèles récents comptent des patchs de 32 sur 32 pixels : ceil(width / 32) x ceil(height / 32). Quand le total dépasse le budget, l’image est réduite jusqu’à entrer dans celui-ci, et le nombre final de tokens correspond aux patchs multipliés par le multiplicateur du modèle, arrondi au nombre supérieur. Le multiplicateur vaut 1,2 pour GPT 5.2, GPT 5.4 et la famille GPT 5.6 (Sol, Terra et Luna), et 1,62 pour GPT 4.1 mini.
Image
Détail
Patchs
Tokens avec le multiplicateur 1,2
1920 x 1080
low, high ou original
60 x 34 = 2 040
2 448
4000 x 3000
high
Plafonné à 2 500
Jusqu’à 3 000
4000 x 3000
low
Environ 3 072 après le plafond de 2 048 pixels
Environ 3 700
4000 x 3000
original
Plafonné à 10 000
Jusqu’à 12 000
Les lignes 4000 x 3000 sont mes propres calculs à partir des budgets publiés : considérez-les comme des estimations et vérifiez-les avec usage. La ligne 1080p est exacte, car l’image respecte déjà tous les budgets.
L’échelle rend la différence bien réelle. Dix mille photos de produits à 2 448 tokens chacune représentent 24,48 millions de tokens en entrée, avant le moindre mot du prompt. Le même lot à 85 tokens chacune sur GPT-4olow fait 850 000, soit une différence d’environ 29 fois que vous ne remarqueriez jamais à la seule lecture du code.
Quand low coûte plus que high
La documentation contient un avertissement qui surprend beaucoup : low n’utilise pas toujours moins de tokens que high. Sur GPT 5.4 et ses variantes plus petites, low autorise un budget de 6 144 patchs alors que high s’arrête à 2 500, si bien qu’une grande photo peut coûter plus cher avec low. Sur GPT 5.2 et GPT 4.1 mini, chaque niveau partage la même règle de dimensionnement, un plus grand côté de 2 048 pixels et un budget de 6 144 patchs, donc low, high et auto renvoient des comptes identiques et original n’est pas disponible.
Deux conséquences en découlent. Ne supposez jamais que le réglage bon marché l’est, et attendez-vous à ce que le sens de vos valeurs detail existantes change lorsque vous changez de modèle. Un test court tranche les deux :
Choisissez trois images représentatives : une petite, une capture 1080p et une photo de 12 mégapixels.
Envoyez chacune avec chaque valeur de detail que le modèle prend en charge.
Consignez les tokens en entrée à côté de la qualité de la réponse.
Gardez le réglage le plus bas qui répond encore correctement.
💡 Si low et high renvoient le même nombre de tokens sur un modèle, le champ ne fait rien là-bas. Supprimez-le de votre code plutôt que de garder un paramètre qui laisse croire à des économies que vous ne réalisez pas.
Les limites qui coincent en production
Limites de charge utile et de format
La documentation actuelle autorise jusqu’à 512 Mo de charge utile totale et jusqu’à 1 500 images par requête. Les anciens articles citent 50 Mo et 500 images, donc une bibliothèque qui applique ces chiffres peut être obsolète. Une requête de 512 Mo pose d’abord un problème de latence avant de poser un problème de limite, car le base64 augmente la taille des octets d’un tiers et chaque image continue de facturer des tokens.
Là où la vision échoue encore
OpenAI énumère clairement les points faibles, qui correspondent à ce qu’on observe en production :
Les images médicales spécialisées, comme les scanners, ne conviennent pas.
Les alphabets non latins, comme le japonais ou le coréen, peuvent donner de moins bons résultats.
Les graphiques aux styles ou couleurs de traits variés, où il faut distinguer les lignes pleines, tiretées et pointillées, provoquent des erreurs.
La localisation spatiale précise, comme la lecture de positions d’échecs, n’est pas fiable.
Les comptages d’objets sont renvoyés sous forme d’approximations.
Les CAPTCHA sont bloqués.
Les noms de fichiers et les métadonnées ne sont jamais lus.
Les petits caractères sont la victime habituelle du travail quotidien. Quand la partie importante est petite, n’envoyez que cette partie.
💡 Recadrez avant d’envoyer. Un recadrage de 600 x 400 de la ligne du total d’un ticket coûte environ 300 tokens sur GPT 5.4 (19 x 13 = 247 patchs, multiplié par 1,2). La page complète de 4000 x 3000 avec original peut atteindre 12 000, et le recadrage se lit généralement mieux.
Les erreurs qui gaspillent des tokens
La plupart des dépenses excessives viennent de quelques habitudes :
Importer les fichiers bruts de l’appareil photo. Un original de 12 mégapixels est de toute façon réduit au plafond du modèle à l’arrivée. Redimensionnez d’abord au plus grand côté autorisé par votre niveau de detail (2 048 pixels pour la plupart des réglages, 6 000 avec original sur GPT 5.4 et ses variantes), exportez un JPEG, et la requête s’envoie plus vite sans rien perdre.
Assembler un collage en une seule image. Six captures d’écran collées sur un même canevas sont réduites ensemble, si bien que chacune perd en résolution. Envoyez six parties image distinctes et nommez-les dans le texte : « L’image 1 est la facture, l’image 2 est le bordereau d’expédition. » Chaque partie est facturée séparément.
Demander tout en même temps. Un prompt qui réclame à la fois une légende, une liste de couleurs, un contrôle des défauts et une passe d’OCR favorise des réponses superficielles. Une seule question précise par appel, ou une liste claire et numérotée, donne un résultat plus propre.
Ne jamais journaliser l’usage. Sans le nombre de tokens en entrée par requête, un changement de modèle ou une nouvelle taille d’image peut doubler votre facture sans que rien ne vous le signale.
Choisir un réglage selon la tâche
Tâche
Commencez par
Pourquoi
Modération, aiguillage, légendes sommaires
low sur les modèles à tuiles, auto sur les modèles à patchs
L’essentiel suffit
Photos de produits, descriptions de scènes
high ou auto
Bon niveau de détail pour un coût modéré
Tickets de caisse et factures
high recadré, ou original sur GPT 5.4 et les versions suivantes
Les petits caractères ont besoin de pixels
Graphiques et tableaux de bord
original, ou un lecteur spécialisé
Les traits fins portent du sens
Captures d’écran pour agents d’interface
original
Les coordonnées doivent être exactes
Tickets de caisse et documents
C’est sur le texte que le redimensionnement fait mal en premier. Recadrez la zone, redressez-la, et demandez une structure JSON fixe pour repérer facilement un chiffre erroné. Demandez au modèle de répondre unreadable pour tout champ qu’il ne peut pas lire, car un modèle autorisé à deviner devinera, et un total faux mais affirmé est pire qu’une case vide. Si un scan est flou, réparez-le avant l’import avec un outil de restauration d’image par IA, car aucun réglage de detail ne peut inventer des pixels qui n’ont jamais été capturés.
Graphiques et captures d’écran denses
Les graphiques combinent traits fins, petites étiquettes et couleurs proches, exactement le cas signalé par OpenAI. Envoyez-les avec original lorsque le modèle le prend en charge. Demandez d’abord les chiffres sous-jacents sous forme de tableau, puis l’interprétation, afin de pouvoir vérifier les valeurs sur l’image avant de faire confiance à une tendance décrite par le modèle. Pour les tableaux et graphiques que vous extrayez chaque jour, un outil spécialisé comme Granite Vision 4.1 4B mérite un test côte à côte.
Photos de produits à grande échelle
Pour un travail de catalogue, lancez sur vos vraies photos le test des trois images vu plus haut, puis fixez le réglage et le prompt pour tout le lot. Demandez les mêmes attributs, dans le même ordre, à chaque fois (couleur, matière, défauts visibles), et la sortie se charge facilement dans une base de données. Photographiez aussi les articles de la même façon : un fond, une distance et un éclairage constants vous permettent d’utiliser un réglage moins coûteux, car le modèle n’a plus à compenser le bruit. Une photo de produit prise sur un plan de travail uni sous une lumière uniforme se lit souvent bien avec high, alors que la même tasse dans une cuisine encombrée peut ne pas suffire.
Utiliser GPT 5.4 sur PicassoIA
Vous n’avez pas besoin de code pour voir ce qu’un modèle lit. GPT 5.4 sur PicassoIA accepte des images avec un prompt texte, et son formulaire expose les mêmes leviers que ceux que vous réglez dans l’API : un prompt système, la verbosité, l’effort de raisonnement et une limite de tokens de complétion. C’est donc un moyen rapide de trancher les questions qui précèdent les réglages. Quelle formulation de prompt fonctionne ? Le modèle lit-il ce type d’image ? Un modèle moins cher suffit-il ? Une mise en garde : le formulaire comporte un champ d’entrée d’image mais pas de bouton detail, donc considérez les résultats comme un test du prompt et du choix du modèle, et non comme une mesure de low face à high.
Étape par étape
Ouvrez la page GPT 5.4 et repérez le champ Image Input.
Ajoutez votre image de test. Un ticket de caisse, une capture de tableau de bord ou une photo de produit conviennent tous.
Rédigez un prompt précis : « Renvoyez la date et le total en JSON » vaut mieux que « décrivez cette image ».
Ajoutez un System Prompt qui définit le rôle et le format de sortie.
Réglez Verbosity sur low pour les tâches d’extraction et sur high lorsque vous voulez une décomposition détaillée.
Laissez Reasoning Effort sur none pour une lecture simple. Augmentez-le pour les questions en plusieurs étapes, et augmentez Max Completion Tokens en même temps, car un effort élevé peut consommer tout le budget en raisonnement et renvoyer une réponse vide.
Lancez la même image sur GPT-4o et comparez les deux sorties.
Modèles de vision à comparer
La conversion image vers texte fait partie des fonctions intégrées de la plateforme, et plusieurs modèles de langage acceptent les images :
Choisissez cinq images de votre travail réel : une très petite, une en 1080p, une photo de 12 mégapixels, un ticket de caisse et un graphique. Passez-les dans GPT 5.4 et GPT-4o sur PicassoIA, notez les réponses justes, puis emmenez le gagnant dans l’API et comparez les nombres de tokens à chaque valeur detail. Une heure de test de ce genre fait économiser plus d’argent que n’importe quel ajustement tarifaire.
Besoin de matériel de test ? Ouvrez PicassoIA, générez vos propres scènes avec les modèles texte vers image, et transformez-les en jeu de test pour vos prompts de vision. Vous pouvez parcourir tout ce qui est disponible sur picassoia.com/en/all-models. Commencez par une image, posez une seule question précise, et voyez exactement ce que le modèle lit.