A família de modelos Claude 3 vem com novas capacidades de visão que permitem ao Claude entender e analisar imagens, abrindo possibilidades emocionantes para interação multimodal. Com o Claude, agora você pode fornecer entradas de texto e imagem para enriquecer suas conversas e permitir novos e poderosos casos de uso.

Modelos com capacidade de visão

Você não precisa usar versões especiais de nossos modelos Claude 3 para acessar as capacidades de visão do Claude. Todos os modelos Claude 3 são capazes de entender e analisar imagens.

Este guia irá orientá-lo sobre como trabalhar com imagens no Claude, incluindo melhores práticas, exemplos de código e limitações a serem consideradas.

Experimente conversar agora com imagens em claude.ai!


Começando

Atualmente, você pode utilizar as capacidades de visão do Claude de três maneiras:

  • Diretamente via claude.ai na janela de chat. Basta fazer o upload de uma imagem como faria com um arquivo, ou arrastar e soltar uma imagem diretamente na janela!
  • Via nossa Console Workbench. Se você selecionar um modelo que aceita imagens (apenas modelos Claude 3), um botão para adicionar imagens aparecerá no canto superior direito de cada bloco de mensagem do User.
  • Via solicitação de API - veja as instruções abaixo.

Para este guia, usaremos o Anthropic Python SDK e as seguintes variáveis de exemplo. Buscaremos imagens de amostra da Wikipedia usando a biblioteca httpx, mas você pode usar quaisquer fontes de imagem que funcionem para você.

Python
import anthropic
import base64
import httpx

client = anthropic.Anthropic()

image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.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.b64encode(httpx.get(image2_url).content).decode("utf-8")

Para utilizar imagens ao fazer uma solicitação de API, você pode fornecer imagens ao Claude como uma imagem codificada em base64 em blocos de conteúdo image. Aqui está um exemplo simples em Python mostrando como incluir uma imagem codificada em base64 em uma solicitação da API Messages:

Python

= client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Descreva esta imagem."
                }
            ],
        }
    ],
)
print(message)

Os formatos de imagem suportados são JPEG, PNG, GIF e WebP. Consulte exemplos da API Messages para obter mais exemplos de código e detalhes dos parâmetros.


Tamanho da imagem

Para um desempenho ideal, recomendamos redimensionar suas imagens antes de fazer o upload se for provável que exceda os limites de tamanho ou tokens. Se a borda longa da sua imagem tiver mais de 1568 pixels, ou se sua imagem tiver mais de ~1600 tokens, ela será primeiro reduzida, preservando a proporção, até que esteja 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 fornecer nenhum desempenho adicional do modelo. Imagens muito pequenas com menos de 200 pixels em qualquer borda podem levar a um desempenho degradado.

Se você deseja melhorar o time-to-first-token, recomendamos redimensionar suas imagens para não mais que 1,15 megapixels (e dentro de 1568 pixels em ambas as dimensões).

Aqui está uma tabela dos tamanhos máximos de imagem aceitos por nossa API que não serão redimensionados para proporções comuns. Todas essas imagens aproximam-se a cerca de ~1600 tokens e ~$4,80/1K imagens (assumindo o uso do Claude 3 Sonnet):

ProporçãoTamanho da imagem
1:11092x1092 px
3:4951x1268 px
2:3896x1344 px
9:16819x1456 px
1:2784x1568 px

Melhores práticas para imagens

Ao fornecer imagens ao Claude, tenha em mente as seguintes diretrizes para obter os melhores resultados:

  • Clareza da imagem: Certifique-se de que suas imagens estejam nítidas e não muito borradas ou pixeladas. O Claude pode ter dificuldade em interpretar com precisão imagens pouco claras ou de baixa qualidade.
  • Posicionamento da imagem: Assim como no posicionamento de documento-consulta, o Claude funciona melhor quando as imagens vêm antes do texto. Imagens colocadas após o texto ou interpoladas com o texto ainda terão um bom desempenho, mas se seu caso de uso permitir, recomendamos a estrutura imagem-texto. Consulte dicas de prompt de visão para obter mais detalhes.
  • Texto: Se sua imagem contiver texto importante, certifique-se de que seja legível e não muito pequeno. No entanto, evite cortar o contexto visual importante apenas para aumentar o texto.
  • Várias imagens: Você pode incluir várias imagens em uma única solicitação (até 5 para claude.ai e 20 para solicitações de API). O Claude analisará todas as imagens fornecidas ao formular sua resposta. Isso pode ser útil para comparar ou contrastar imagens.

Consulte limitações para obter mais detalhes e diretrizes.


Dicas de prompt

Muitas das técnicas de prompt que funcionam bem para interações baseadas em texto com o Claude também podem ser aplicadas a prompts baseados em imagem. Consulte nosso livro de receitas multimodal para obter um passo a passo das técnicas e casos de uso de processamento de imagem, completo com técnicas e estratégias de prompt.

Abaixo estão alguns exemplos de estruturas de prompt de melhores práticas envolvendo imagens. Em geral, é melhor colocar as imagens antes das perguntas sobre elas ou instruções para tarefas que as usam, e em situações em que há várias imagens, apresentar cada imagem com Imagem 1: e Imagem 2: e assim por diante. Você não precisa de novas linhas entre imagens ou entre imagens e o prompt.

1. Exemplo: Uma imagem

Aqui está a estrutura do prompt:

FunçãoConteúdo
User[Imagem] Descreva esta imagem.

Aqui está a chamada de API correspondente:

Python
message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Descreva esta imagem."
                }
            ],
        }
    ],
)

2. Exemplo: Várias imagens

Aqui está a estrutura do prompt:

FunçãoConteúdo
UserImagem 1: [Imagem 1] Imagem 2: [Imagem 2] Como essas imagens são diferentes?

Aqui está a chamada de API correspondente:

Python
message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Imagem 1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Imagem 2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Como essas imagens são diferentes?"
                }
            ],
        }
    ],
)

3. Exemplo: Várias imagens com um prompt do sistema

Aqui está a estrutura do prompt:

Conteúdo
SystemResponda apenas em espanhol.
UserImagem 1: [Imagem 1] Imagem 2: [Imagem 2] Como essas imagens são diferentes?

Aqui está a chamada de API correspondente:

Python
message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    system="Responda apenas em espanhol.",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Imagem 1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Imagem 2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Como essas imagens são diferentes?"
                }
            ],
        }
    ],
)

4. Exemplo: Quatro imagens em duas rodadas de conversa

As capacidades de visão do Claude realmente brilham em conversas multimodais que misturam imagens e texto. Você pode manter trocas prolongadas de ida e volta com o Claude, adicionando novas imagens ou perguntas de acompanhamento a qualquer momento. Isso permite fluxos de trabalho poderosos para análise iterativa de imagens, comparação ou combinação de elementos visuais com outros conhecimentos.

Aqui está um exemplo de estrutura de prompt:

FunçãoConteúdo
UserImagem 1: [Imagem 1] Imagem 2: [Imagem 2] Como essas imagens são diferentes?
Assistant[Resposta do Claude]
UserImagem 1: [Imagem 3] Imagem 2: [Imagem 4] Essas imagens são semelhantes às duas primeiras?
Assistant[Resposta do Claude]

Ao usar a API, basta inserir novas imagens na matriz de Messages na função user como parte de qualquer estrutura padrão de conversa com várias rodadas.


Custos de imagem

Cada imagem que você incluir em uma solicitação ao Claude conta para o 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. Você pode encontrar detalhes de preços do modelo em nossa página de preços.

Supondo que sua imagem não precise ser redimensionada, você pode estimar o número de tokens usados por meio deste algoritmo simples:

tokens = (largura px * altura px)/750

Aqui estão alguns exemplos de tokenização aproximada e custos para diferentes tamanhos de imagem dentro das restrições de tamanho de nossa API, supondo o uso do Claude 3 Sonnet a $3 por milhão de tokens de entrada:

Tamanho da imagem# de TokensCusto / imagemCusto / 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

Limitações

Embora as capacidades de compreensão de imagem do Claude sejam de ponta, existem algumas limitações a serem observadas:

  • Identificação de pessoas: O Claude não pode ser usado para identificar (ou seja, nomear) pessoas em imagens e se recusará a fazê-lo.
  • Precisão: 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 habilidades de raciocínio espacial do Claude são limitadas. Ele pode ter dificuldades com tarefas que exigem localização precisa ou layouts, como ler um mostrador de relógio analógico ou descrever posições exatas de peças de xadrez.
  • Contagem: O Claude pode fornecer contagens aproximadas de objetos em uma imagem, mas pode não ser sempre precisamente preciso, especialmente com um grande número de objetos pequenos.
  • Imagens geradas por IA: O Claude não sabe se uma imagem é gerada por IA e pode estar incorreto se questionado. Não confie nele para detectar imagens falsas ou sintéticas.
  • Conteúdo inapropriado: O Claude não processará imagens inapropriadas ou explícitas que violem nossa Política de Uso Aceitável.
  • Aplicações de saúde: Embora o Claude possa analisar imagens médicas gerais, ele não foi projetado para interpretar exames diagnósticos complexos, como tomografias computadorizadas ou ressonâncias magnéticas. As saídas do Claude não devem ser consideradas 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 o Claude para tarefas que exijam precisão perfeita ou análise de imagem sensível sem supervisão humana.


Perguntas frequentes

Quais tipos de arquivo de imagem o Claude suporta?

Atualmente, o Claude suporta os formatos de imagem JPEG, PNG, GIF e WebP, especificamente image/jpeg, image/png, image/gif e image/webp.

O Claude pode ler URLs de imagem?

O Claude não pode ler URLs de imagem em nenhuma interface, incluindo em claude.ai. Nossa API atualmente não suporta a adição de URLs nos blocos text ou image. Adicionar URLs de imagem (ou URLs de qualquer tipo) no bloco text pode fazer com que o Claude alucine, pois atualmente ele não consegue recuperar informações desse URL.

Existe um limite para o tamanho do arquivo de imagem que posso fazer upload?

Sim, o tamanho máximo permitido para arquivo de imagem é de 5 MB por imagem (10 MB por imagem em claude.ai). Imagens maiores que 5 MB serão rejeitadas e retornarão um erro ao usar nossa API.

Quantas imagens posso incluir em uma solicitação?

Você pode incluir até 20 imagens em uma única solicitação por meio da API Messages. Você pode incluir até 5 imagens por rodada em claude.ai. Contagens de imagens acima desse limite serão rejeitadas e retornarão um erro ao usar nossa API.

O Claude lê metadados de imagem?

Não, o Claude não analisa nem recebe nenhum metadado das imagens passadas para ele.

Posso excluir imagens que fiz upload?

Não. Além disso, os uploads de imagens são efêmeros e não são armazenados além da duração da solicitação da API. As imagens enviadas são automaticamente excluídas após serem processadas.

Onde posso encontrar mais detalhes sobre privacidade de dados e segurança para uploads de imagens?

Consulte nossa página de política de privacidade para obter informações sobre como lidamos com imagens enviadas e outros dados. Não usamos imagens enviadas para treinar nossos modelos.

O que devo fazer se a interpretação de imagem do Claude parecer errada?

Se você obtiver uma interpretação de imagem do Claude que pareça incorreta, primeiro verifique se a imagem está clara, de alta qualidade e corretamente orientada. Se o problema persistir, tente melhorar os resultados empregando técnicas de engenharia de prompt. Se o problema não puder ser resolvido, informe-nos sinalizando a saída preocupante diretamente em claude.ai por meio da interface de polegar para cima/para baixo ou entrando em contato com nossa equipe de suporte. Seu feedback nos ajuda a melhorar!

O Claude pode gerar, produzir, editar, manipular ou criar imagens?

Não, o Claude é apenas um modelo de compreensão de imagem. Ele pode interpretar e analisar imagens, mas não pode gerar, produzir, editar, manipular ou criar imagens.


Aprofunde-se em visão

Pronto para começar a construir com imagens usando o Claude? Aqui estão alguns recursos úteis:

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.

Estamos ansiosos para ver o que você criará com as poderosas novas capacidades de visão do Claude!