Accueil → Aide

Image en entrée refusée par un modèle de vision

Soit il manque au contenu base64 son préfixe data URL, soit l'encodage contient des sauts de ligne, soit le fichier dépasse la taille limite, soit le format n'est pas accepté par le modèle. Le texte de l'erreur les distingue rarement.

Ce que vous voyez

Pourquoi cela arrive

Une image base64 envoyée comme image_url a besoin de la data URL complète, type de média compris : data:image/png;base64,. Envoyer le contenu seul est de loin la cause la plus fréquente.

L'outil base64 en ligne de commande coupe les lignes par défaut sur de nombreux systèmes. Les sauts de ligne insérés rendent le contenu invalide alors qu'il paraît correct. Utilisez l'option qui désactive la coupure.

Les limites de taille s'appliquent au contenu encodé, environ un tiers plus gros que le fichier sur disque. Une image juste sous la limite en local peut la dépasser une fois transmise.

Vérifiez si c'est bien la cause

Encodez sans coupure de ligne et vérifiez que le préfixe est présent :

b64=$(base64 -w0 image.png)      # macOS: base64 -i image.png | tr -d '\n'
echo "payload bytes: ${#b64}"
printf 'data:image/png;base64,%s' "$b64" | head -c 40; echo

Les 40 premiers caractères doivent commencer par data:image/png;base64,. Si le contenu fait bien plus d'octets que prévu, c'est le fichier lui-même qui est trop gros.

Comment le corriger

  1. Envoyez la data URL complèteIncluez le schéma et le type de média. Un PNG envoyé avec le type image/jpeg est aussi refusé par certains modèles, alors faites-le correspondre au format réel.
  2. Désactivez la coupure des lignes à l'encodagebase64 -w0 sous Linux, ou passez la sortie par tr -d pour retirer les sauts de ligne sous macOS.
  3. Redimensionnez avant l'envoiLa plupart des modèles de vision réduisent l'image en interne de toute façon. Envoyer une photo de 12 mégapixels vous coûte du temps d'envoi et des tokens sans améliorer la réponse.
Sur APICLAN, l'image en entrée est facturée comme des tokens d'entrée, et les images plus grandes coûtent plus cher parce qu'elles deviennent plus de tokens. Redimensionner avant l'appel est une économie directe, pas seulement un moyen de contourner la limite.

Voir aussi

Unexpected token '<' lors d'un appel à une API compatible OpenAI401 invalid API key : quand la clé semble correcte mais échoue quand même

Dernière vérification le 2026-10-01. Rédigé à partir de problèmes diagnostiqués sur une passerelle compatible OpenAI en production, pas compilé à partir d'autres sites.