Ce guide décrit comment travailler avec des images dans Claude, y compris les meilleures pratiques, des exemples de code et les limitations à garder à l'esprit.
Utilisez les capacités de vision de Claude via :
Vous pouvez inclure plusieurs images dans une seule requête : jusqu'à 20 pour claude.ai, et jusqu'à 600 pour les requêtes API (100 pour les modèles avec une fenêtre de contexte de 200k tokens). Claude analyse toutes les images fournies lors de la formulation de sa réponse. Cela peut être utile pour comparer ou contraster des images.
Si vous soumettez une image plus grande que 8000x8000 px, elle est rejetée. Si vous soumettez plus de 20 images dans une requête API, cette limite est de 2000x2000 px.
Bien que l'API supporte jusqu'à 600 images par requête, les limites de taille de requête (32 MB pour les points de terminaison standard ; inférieur sur certaines plateformes tierces) peuvent être atteintes en premier. Pour de nombreuses images, envisagez de télécharger avec l'API Files et de référencer par file_id pour garder les charges utiles de requête petites.
Même lors de l'utilisation de l'API Files, les requêtes avec de nombreuses images volumineuses peuvent échouer avant d'atteindre le nombre de 600 images. Réduisez les dimensions des images ou les tailles de fichiers (par exemple, par sous-échantillonnage) avant de télécharger (voir Évaluer la taille de l'image).
Pour minimiser la latence sans sacrifier la qualité de la sortie, redimensionnez les images avant de les télécharger si elles sont trop grandes. Sur Claude Opus 4.6, Claude Sonnet 4.6 et les modèles antérieurs, si le bord long de votre image dépasse 1568 pixels, ou si votre image dépasse environ ~1 600 tokens, elle est d'abord réduite, en préservant le rapport d'aspect, jusqu'à ce qu'elle soit dans les limites de taille.
Si votre image d'entrée est trop grande et doit être redimensionnée, cela augmente la latence du time-to-first-token, sans bénéfice pour la qualité de la sortie. Les très petites images de moins de 200 pixels sur un bord donné peuvent dégrader la qualité de la sortie.
Pour les modèles antérieurs à Claude Opus 4.7, pour améliorer le time-to-first-token, envisagez de redimensionner les images à pas plus de 1,15 mégapixels (et dans les 1568 pixels dans les deux dimensions). Pour Claude Opus 4.7, voir Support d'image haute résolution ci-dessous.
Claude Opus 4.7 est le premier modèle Claude avec support d'image haute résolution. La résolution d'image maximale est 2576 pixels sur le bord long (contre 1568 px sur les modèles antérieurs). Cela déverrouille des gains de performance sur les charges de travail lourdes en vision et est particulièrement précieux pour l'utilisation informatique, la compréhension des captures d'écran et l'analyse de documents.
Le support haute résolution est automatique sur Claude Opus 4.7 et ne nécessite aucun en-tête bêta ou opt-in côté client.
Coût en tokens : Les images en résolution complète sur Claude Opus 4.7 peuvent utiliser jusqu'à environ 3 fois plus de tokens d'image que sur les modèles antérieurs (jusqu'à 4784 tokens par image, comparé au plafond précédent d'environ ~1 600 tokens par image). Si vous n'avez pas besoin de la fidélité supplémentaire, sous-échantillonnez les images avant d'envoyer pour contrôler les coûts en tokens.
Mathématiques de coordonnées : Sur Claude Opus 4.7, les coordonnées de pointage et de boîte englobante renvoyées par le modèle sont 1
avec les pixels réels de l'image, donc aucune conversion de facteur d'échelle n'est requise. Cela simplifie l'utilisation informatique, l'annotation et les flux de travail de localisation.Voici un tableau des tailles d'image maximales acceptées par l'API qui ne seront pas redimensionnées pour les rapports d'aspect courants. Avec Claude Sonnet 4.6, ces images utilisent environ 1 600 tokens et environ 4,80 $/1k images.
| Rapport d'aspect | Taille d'image |
|---|---|
| 1:1 | 1092x1092 px |
| 3:4 | 951x1268 px |
| 2:3 | 896x1344 px |
| 9:16 | 819x1456 px |
| 1:2 | 784x1568 px |
Chaque image que vous incluez dans une requête à Claude compte dans votre utilisation de tokens. Pour calculer le coût approximatif, multipliez le nombre approximatif de tokens d'image par le prix par token du modèle que vous utilisez.
Si votre image n'a pas besoin d'être redimensionnée, vous pouvez estimer le nombre de tokens utilisés via cet algorithme : tokens = (largeur px * hauteur px)/750
Voici des exemples de tokenisation approximative et de coûts pour différentes tailles d'image dans les contraintes de taille de l'API basées sur le prix par token de Claude Sonnet 4.6 de 3 $ par million de tokens d'entrée :
| Taille d'image | Nombre de tokens | Coût / image | Coût / 1k images |
|---|---|---|---|
| 200x200 px(0,04 mégapixels) | ~54 | ~0,00016 $ | ~0,16 $ |
| 1000x1000 px(1 mégapixel) | ~1334 | ~0,004 $ | ~4,00 $ |
| 1092x1092 px(1,19 mégapixels) | ~1590 | ~0,0048 $ | ~4,80 $ |
Lors de la fourniture d'images à Claude, gardez à l'esprit les points suivants pour les meilleurs résultats :
Beaucoup des techniques de prompting qui fonctionnent bien pour les interactions basées sur le texte avec Claude peuvent également être appliquées aux prompts basés sur les images.
Ces exemples démontrent les meilleures structures de prompts impliquant des images.
Tout comme placer les longs documents avant votre requête améliore les résultats dans les prompts texte, Claude fonctionne mieux quand les images viennent avant le texte. Les images placées après le texte ou interpolées avec le texte fonctionnent toujours bien, mais si votre cas d'usage le permet, préférez une structure image-puis-texte.
Les exemples suivants démontrent comment utiliser les capacités de vision de Claude en utilisant divers langages de programmation et approches. Vous pouvez fournir des images à Claude de trois façons :
imageLes prompts d'exemple base64 utilisent ces variables :
import base64
import httpx
# Pour les images codées en base64
image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg"
image2_media_type = "image/jpeg"
image2_data = base64.standard_b64encode(httpx.get(image2_url).content).decode("utf-8")
# Pour les images basées sur URL, vous pouvez utiliser les URLs directement dans vos requêtesVoici des exemples de comment inclure des images dans une requête Messages API en utilisant des images codées en base64 et des références URL :
image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image1_media_type = "image/png"
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image1_media_type,
"data": image1_data,
},
},
{"type": "text", "text": "Describe this image."},
],
}
],
)
print(message)client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg",
},
},
{"type": "text", "text": "Describe this image."},
],
}
],
)
print(message)Pour les images que vous utiliserez à plusieurs reprises ou lorsque vous souhaitez éviter les frais généraux d'encodage, utilisez l'API Files. Téléchargez l'image une fois, puis référencez le file_id retourné dans les messages suivants au lieu de renvoyer les données base64.
Dans les conversations multi-tours et les flux de travail agentiques, chaque
requête renvoie l'historique complet de la conversation. Si les images sont
encodées en base64, les octets complets de l'image sont inclus dans la charge
utile à chaque tour, ce qui peut augmenter considérablement la taille de la
requête et la latence à mesure que la conversation se développe. Le
téléchargement d'images vers l'API Files et leur référencement par file_id
maintient les charges utiles de requête petites, quel que soit le nombre
d'images accumulées dans l'historique de la conversation.
client = anthropic.Anthropic()
# Téléchargez le fichier image
with open("image.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("image.jpg", f, "image/jpeg"))
# Utilisez le fichier téléchargé dans un message
message = client.beta.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
betas=["files-api-2025-04-14"],
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {"type": "file", "file_id": file_upload.id},
},
{"type": "text", "text": "Describe this image."},
],
}
],
)
print(message.content)Consultez les exemples de l'API Messages pour plus d'exemples de code et de détails sur les paramètres.
Bien que les capacités de compréhension d'images de Claude soient à la pointe de la technologie, il y a quelques limitations à connaître :
Examinez toujours attentivement et vérifiez les interprétations d'images de Claude, en particulier pour les cas d'utilisation à enjeux élevés. N'utilisez pas Claude pour les tâches nécessitant une précision parfaite ou l'analyse d'images sensibles sans supervision humaine.
Prêt à commencer à construire avec des images en utilisant Claude ? Voici quelques ressources utiles :
Si vous avez d'autres questions, contactez l'équipe d'assistance. Vous pouvez également rejoindre la communauté des développeurs pour vous connecter avec d'autres créateurs et obtenir de l'aide d'experts d'Anthropic.
Was this page helpful?