Visão
Este guia descreve como trabalhar com imagens no Claude, incluindo melhores práticas, exemplos de código e limitações a ter em mente.
Como usar visão
Use as capacidades de visão do Claude através de:
- claude.ai. Carregue uma imagem como faria com um arquivo, ou arraste e solte uma imagem diretamente na janela de chat.
- O Console Workbench. Se você selecionar um modelo que aceita imagens (apenas modelos Claude 3 e 4), um botão para adicionar imagens aparece no canto superior direito de cada bloco de mensagem do Usuário.
- Requisição de API. Veja os exemplos neste guia.
Antes de fazer upload
Noções básicas e limites
Você pode incluir múltiplas imagens em uma única requisição (até 20 para claude.ai e 100 para requisições de API). Claude analisará todas as imagens fornecidas ao formular sua resposta. Isso pode ser útil para comparar ou contrastar imagens.
Se você enviar uma imagem maior que 8000x8000 px, ela será rejeitada. Se você enviar mais de 20 imagens em uma requisição de API, este limite é 2000x2000 px.
Embora a API suporte 100 imagens por requisição, há um limite de tamanho de requisição de 32MB para endpoints padrão.
Avaliar tamanho da imagem
Para desempenho ideal, recomendamos redimensionar imagens antes de fazer upload se forem muito grandes. Se a borda longa da sua imagem tiver mais de 1568 pixels, ou sua imagem tiver mais de ~1.600 tokens, ela será primeiro reduzida, preservando a proporção de aspecto, até estar dentro dos limites de tamanho.
Se sua imagem de entrada for muito grande e precisar ser redimensionada, isso aumentará a latência do time-to-first-token, sem lhe dar nenhum desempenho adicional do modelo. Imagens muito pequenas com menos de 200 pixels em qualquer borda podem degradar o desempenho.
Para melhorar o time-to-first-token, recomendamos redimensionar imagens para no máximo 1,15 megapixels (e dentro de 1568 pixels em ambas as dimensões).
Aqui está uma tabela dos tamanhos máximos de imagem aceitos pela nossa API que não serão redimensionados para proporções de aspecto comuns. Com o modelo Claude Sonnet 3.7, essas imagens usam aproximadamente 1.600 tokens e cerca de $4,80/1K imagens.
| Proporção de aspecto | Tamanho da imagem |
|---|---|
| 1 | 1092x1092 px |
| 3 | 951x1268 px |
| 2 | 896x1344 px |
| 9 | 819x1456 px |
| 1 | 784x1568 px |
Calcular custos de imagem
Cada imagem que você inclui em uma requisição ao Claude conta para seu uso de tokens. Para calcular o custo aproximado, multiplique o número aproximado de tokens de imagem pelo preço por token do modelo que você está usando.
Se sua imagem não precisar ser redimensionada, você pode estimar o número de tokens usados através deste algoritmo: tokens = (largura px * altura px)/750
Aqui estão exemplos de tokenização aproximada e custos para diferentes tamanhos de imagem dentro das restrições de tamanho da API com base no preço por token do Claude Sonnet 3.7 de $3 por milhão de tokens de entrada:
| Tamanho da imagem | Nº de Tokens | Custo / imagem | Custo / 1K imagens |
|---|---|---|---|
| 200x200 px(0,04 megapixels) | ~54 | ~$0,00016 | ~$0,16 |
| 1000x1000 px(1 megapixel) | ~1334 | ~$0,004 | ~$4,00 |
| 1092x1092 px(1,19 megapixels) | ~1590 | ~$0,0048 | ~$4,80 |
Garantir qualidade da imagem
Ao fornecer imagens ao Claude, tenha o seguinte em mente para melhores resultados:
- Formato de imagem: Use um formato de imagem suportado: JPEG, PNG, GIF ou WebP.
- Clareza da imagem: Certifique-se de que as imagens são claras e não muito desfocadas ou pixeladas.
- Texto: Se a imagem contiver texto importante, certifique-se de que é legível e não muito pequeno. Evite cortar o contexto visual chave apenas para ampliar o texto.
Exemplos de prompt
Muitas das técnicas de prompt que funcionam bem para interações baseadas em texto com Claude também podem ser aplicadas a prompts baseados em imagem.
Estes exemplos demonstram estruturas de prompt de melhores práticas envolvendo imagens.
Assim como com posicionamento de documento-consulta, Claude funciona melhor quando as imagens vêm antes do texto. Imagens colocadas após texto ou interpoladas com texto ainda funcionarão bem, mas se seu caso de uso permitir, recomendamos uma estrutura imagem-depois-texto.
Sobre os exemplos de prompt
Os exemplos a seguir demonstram como usar as capacidades de visão do Claude usando várias linguagens de programação e abordagens. Você pode fornecer imagens ao Claude de três maneiras:
- Como uma imagem codificada em base64 em blocos de conteúdo
image - Como uma referência de URL para uma imagem hospedada online
- Usando a Files API (fazer upload uma vez, usar múltiplas vezes)
Os prompts de exemplo base64 usam estas variáveis:
# Para imagens baseadas em URL, você pode usar a URL diretamente em sua requisição JSON
# Para imagens codificadas em base64, você precisa primeiro codificar a imagem
# Exemplo de como codificar uma imagem para base64 em bash:
BASE64_IMAGE_DATA=$(curl -s "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" | base64)
# Os dados codificados agora podem ser usados em suas chamadas de APIimport base64
import httpx
# Para imagens codificadas em 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")
# Para imagens baseadas em URL, você pode usar as URLs diretamente em suas requisiçõesimport axios from 'axios';
// Para imagens codificadas em base64
async function getBase64Image(url: string): Promise<string> {
const response = await axios.get(url, { responseType: 'arraybuffer' });
return Buffer.from(response.data, 'binary').toString('base64');
}
// Uso
async function prepareImages() {
const imageData = await getBase64Image('https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg');
// Agora você pode usar imageData em suas chamadas de API
}
// Para imagens baseadas em URL, você pode usar as URLs diretamente em suas requisiçõesimport java.io.IOException;
import java.util.Base64;
import java.io.InputStream;
import java.net.URL;
public class ImageHandlingExample {
public static void main(String[] args) throws IOException, InterruptedException {
// Para imagens codificadas em base64
String image1Url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg";
String image1MediaType = "image/jpeg";
String image1Data = downloadAndEncodeImage(image1Url);
String image2Url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg";
String image2MediaType = "image/jpeg";
String image2Data = downloadAndEncodeImage(image2Url);
// Para imagens baseadas em URL, você pode usar as URLs diretamente em suas requisições
}
private static String downloadAndEncodeImage(String imageUrl) throws IOException {
try (InputStream inputStream = new URL(imageUrl).openStream()) {
return Base64.getEncoder().encodeToString(inputStream.readAllBytes());
}
}
}Abaixo estão exemplos de como incluir imagens em uma requisição da Messages API usando imagens codificadas em base64 e referências de URL:
Exemplo de imagem codificada em base64
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "'"$BASE64_IMAGE_DATA"'"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
]
}'Exemplo de imagem baseada em URL
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"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."
}
]
}
]
}'Exemplo de imagem da Files API
Para imagens que você usará repetidamente ou quando quiser evitar overhead de codificação, use a Files API:
# Primeiro, faça upload de sua imagem para a Files API
curl -X POST https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-F "[email protected]"
# Então use o file_id retornado em sua mensagem
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_abc123"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
]
}'Veja exemplos da Messages API para mais exemplos de código e detalhes de parâmetros.
Limitações
Embora as capacidades de compreensão de imagem do Claude sejam de ponta, há algumas limitações a estar ciente:
- Identificação de pessoas: Claude não pode ser usado para identificar (ou seja, nomear) pessoas em imagens e se recusará a fazer isso.
- Precisão: Claude pode alucinar ou cometer erros ao interpretar imagens de baixa qualidade, rotacionadas ou muito pequenas com menos de 200 pixels.
- Raciocínio espacial: As capacidades de raciocínio espacial do Claude são limitadas. Pode ter dificuldade com tarefas que exigem localização precisa ou layouts, como ler o rosto de um relógio analógico ou descrever posições exatas de peças de xadrez.
- Contagem: Claude pode dar contagens aproximadas de objetos em uma imagem, mas pode não ser sempre precisamente preciso, especialmente com grandes números de objetos pequenos.
- Imagens geradas por IA: Claude não sabe se uma imagem é gerada por IA e pode estar incorreto se perguntado. Não confie nele para detectar imagens falsas ou sintéticas.
- Conteúdo inadequado: Claude não processará imagens inadequadas ou explícitas que violem nossa Política de Uso Aceitável.
- Aplicações de saúde: Embora Claude possa analisar imagens médicas gerais, não foi projetado para interpretar varreduras diagnósticas complexas como CTs ou RMs. Os resultados do Claude não devem ser considerados um substituto para aconselhamento ou diagnóstico médico profissional.
Sempre revise e verifique cuidadosamente as interpretações de imagem do Claude, especialmente para casos de uso de alto risco. Não use Claude para tarefas que exigem precisão perfeita ou análise de imagem sensível sem supervisão humana.
Perguntas frequentes
Mergulhe mais profundamente em visão
Pronto para começar a construir com imagens usando Claude? Aqui estão alguns recursos úteis:
- Livro de receitas multimodal: Este livro de receitas tem dicas sobre começar com imagens e técnicas de melhores práticas para garantir o desempenho de mais alta qualidade com imagens. Veja como você pode fazer prompt efetivamente do Claude com imagens para realizar tarefas como interpretar e analisar gráficos ou extrair conteúdo de formulários.
- Referência de API: Visite nossa documentação para a Messages API, incluindo exemplos de chamadas de API envolvendo imagens.
Se você tiver outras dúvidas, sinta-se à vontade para entrar em contato com nossa equipe de suporte. Você também pode se juntar à nossa comunidade de desenvolvedores para se conectar com outros criadores e obter ajuda de especialistas da Anthropic.