Questa guida descrive come lavorare con le immagini in Claude, incluse le migliori pratiche, esempi di codice e limitazioni da tenere in mente.
Utilizza le capacità di visione di Claude attraverso:
Puoi includere più immagini in una singola richiesta: fino a 20 per claude.ai, e fino a 600 per le richieste API (100 per i modelli con una finestra di contesto di 200k token). Claude analizza tutte le immagini fornite quando formula la sua risposta. Questo può essere utile per confrontare o contrastare le immagini.
Se invii un'immagine più grande di 8000x8000 px, viene rifiutata. Se invii più di 20 immagini in una richiesta API, questo limite è 2000x2000 px.
Sebbene l'API supporti fino a 600 immagini per richiesta, i limiti di dimensione della richiesta (32 MB per gli endpoint standard; inferiore su alcune piattaforme di terze parti) possono essere raggiunti per primi. Per molte immagini, considera il caricamento con l'API Files e il riferimento tramite file_id per mantenere i payload delle richieste piccoli.
Anche quando si utilizza l'API Files, le richieste con molte immagini di grandi dimensioni possono fallire prima di raggiungere il conteggio di 600 immagini. Riduci le dimensioni dell'immagine o le dimensioni dei file (ad esempio, mediante downsampling) prima del caricamento (vedi Valuta la dimensione dell'immagine).
Per ridurre al minimo la latenza senza sacrificare la qualità dell'output, ridimensiona le immagini prima di caricarle se sono troppo grandi. Su Claude Opus 4.6, Claude Sonnet 4.6 e modelli precedenti, se il bordo lungo della tua immagine è più di 1568 pixel, o la tua immagine è più di ~1.600 token, viene prima ridimensionata, preservando le proporzioni, finché non rientra nei limiti di dimensione.
Se la tua immagine di input è troppo grande e deve essere ridimensionata, aumenta la latenza del time-to-first-token, senza alcun beneficio per la qualità dell'output. Le immagini molto piccole sotto i 200 pixel su uno qualsiasi dei bordi possono degradare la qualità dell'output.
Per i modelli precedenti a Claude Opus 4.7, per migliorare il time-to-first-token, considera il ridimensionamento delle immagini a non più di 1,15 megapixel (e entro 1568 pixel in entrambe le dimensioni). Per Claude Opus 4.7, vedi Supporto immagini ad alta risoluzione di seguito.
Claude Opus 4.7 è il primo modello Claude con supporto per immagini ad alta risoluzione. La risoluzione massima dell'immagine è 2576 pixel sul bordo lungo (rispetto a 1568 px sui modelli precedenti). Questo sblocca guadagni di prestazioni su carichi di lavoro ad alta intensità di visione ed è particolarmente prezioso per l'uso del computer, la comprensione degli screenshot e l'analisi dei documenti.
Il supporto ad alta risoluzione è automatico su Claude Opus 4.7 e non richiede alcun header beta o opt-in lato client.
Costo del token: Le immagini a risoluzione completa su Claude Opus 4.7 possono utilizzare fino a circa 3 volte più token di immagine rispetto ai modelli precedenti (fino a 4784 token per immagine, rispetto al limite precedente di circa ~1.600 token per immagine). Se non hai bisogno della fedeltà aggiuntiva, esegui il downsampling delle immagini prima di inviarle per controllare i costi dei token.
Matematica delle coordinate: Su Claude Opus 4.7, le coordinate di puntamento e riquadro di delimitazione restituite dal modello sono 1
con i pixel effettivi dell'immagine, quindi non è richiesta alcuna conversione del fattore di scala. Questo semplifica i flussi di lavoro di uso del computer, annotazione e localizzazione.Ecco una tabella delle dimensioni massime dell'immagine accettate dall'API che non verranno ridimensionate per i rapporti di aspetto comuni. Con Claude Sonnet 4.6, queste immagini utilizzano approssimativamente 1.600 token e circa $4,80/1k immagini.
| Rapporto di aspetto | Dimensione immagine |
|---|---|
| 1:1 | 1092x1092 px |
| 3:4 | 951x1268 px |
| 2:3 | 896x1344 px |
| 9:16 | 819x1456 px |
| 1:2 | 784x1568 px |
Ogni immagine che includi in una richiesta a Claude conta verso l'utilizzo dei tuoi token. Per calcolare il costo approssimativo, moltiplica il numero approssimativo di token di immagine per il prezzo per token del modello che stai utilizzando.
Se la tua immagine non ha bisogno di essere ridimensionata, puoi stimare il numero di token utilizzati attraverso questo algoritmo: tokens = (width px * height px)/750
Ecco esempi di tokenizzazione approssimativa e costi per diverse dimensioni di immagine entro i vincoli di dimensione dell'API in base al prezzo per token di Claude Sonnet 4.6 di $3 per milione di token di input:
| Dimensione immagine | # di Token | Costo / immagine | Costo / 1k immagini |
|---|---|---|---|
| 200x200 px(0,04 megapixel) | ~54 | ~$0,00016 | ~$0,16 |
| 1000x1000 px(1 megapixel) | ~1334 | ~$0,004 | ~$4,00 |
| 1092x1092 px(1,19 megapixel) | ~1590 | ~$0,0048 | ~$4,80 |
Quando fornisci immagini a Claude, tieni presente quanto segue per i migliori risultati:
Molte delle tecniche di prompt che funzionano bene per le interazioni basate su testo con Claude possono essere applicate anche ai prompt basati su immagini.
Questi esempi dimostrano le migliori strutture di prompt che coinvolgono le immagini.
Proprio come posizionare documenti lunghi prima della tua query migliora i risultati nei prompt di testo, Claude funziona meglio quando le immagini vengono prima del testo. Le immagini posizionate dopo il testo o interpolate con il testo funzionano comunque bene, ma se il tuo caso d'uso lo consente, preferisci una struttura immagine-poi-testo.
I seguenti esempi dimostrano come utilizzare le capacità di visione di Claude utilizzando vari linguaggi di programmazione e approcci. Puoi fornire immagini a Claude in tre modi:
imageGli esempi di prompt con base64 utilizzano queste variabili:
import base64
import httpx
# Per le immagini codificate in 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")
# Per le immagini basate su URL, puoi utilizzare gli URL direttamente nelle tue richiesteDi seguito sono riportati esempi di come includere immagini in una richiesta dell'API Messages utilizzando immagini codificate in base64 e riferimenti 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)Per le immagini che utilizzerai ripetutamente o quando vuoi evitare il sovraccarico di codifica, usa la Files API. Carica l'immagine una volta, quindi fai riferimento al file_id restituito nei messaggi successivi invece di inviare nuovamente i dati base64.
Nelle conversazioni multi-turno e nei flussi di lavoro agentici, ogni richiesta
rinvia la cronologia completa della conversazione. Se le immagini sono codificate
in base64, i byte completi dell'immagine sono inclusi nel payload ad ogni turno,
il che può aumentare significativamente la dimensione della richiesta e la latenza
man mano che la conversazione cresce. Caricando le immagini sulla Files API e
facendo riferimento ad esse tramite file_id si mantengono i payload delle richieste
piccoli indipendentemente da quante immagini si accumulano nella cronologia della conversazione.
client = anthropic.Anthropic()
# Carica il file immagine
with open("image.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("image.jpg", f, "image/jpeg"))
# Usa il file caricato in un messaggio
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)Vedi Esempi dell'API Messages per ulteriori esempi di codice e dettagli sui parametri.
Sebbene le capacità di comprensione delle immagini di Claude siano all'avanguardia, ci sono alcune limitazioni di cui essere consapevoli:
Rivedi e verifica sempre attentamente le interpretazioni delle immagini di Claude, specialmente per i casi d'uso ad alto rischio. Non utilizzare Claude per compiti che richiedono una precisione perfetta o un'analisi di immagini sensibili senza supervisione umana.
Pronto a iniziare a costruire con immagini usando Claude? Ecco alcune risorse utili:
Se hai altre domande, contatta il team di supporto. Puoi anche unirti alla comunità degli sviluppatori per connetterti con altri creatori e ottenere aiuto dagli esperti di Anthropic.
Was this page helpful?