Entrada de imagem na API do GPT: análise visual e configurações de detail
A API do GPT transforma cada imagem em tokens, e o campo detail define quantos. Este artigo mostra o formato da requisição, os valores low, high, original e auto, o cálculo de tokens para modelos baseados em tiles e em patches, e um teste passo a passo no PicassoIA.
Um único campo no corpo de uma requisição decide se uma foto custa 85 tokens ou 3.000. Esse campo é detail, fica dentro do objeto da imagem, ao lado da URL, e a maioria dos tutoriais ou o ignora ou cita números que deixaram de valer há duas gerações de modelos. Se você envia capturas de tela, recibos, fotos de produtos ou gráficos para um modelo GPT, essa configuração molda sua conta, sua latência e quanto da imagem o modelo consegue realmente ler.
Este artigo percorre o formato da requisição, os quatro valores de detail, a aritmética de tokens para modelos baseados em tiles e em patches, os casos em que low sai pela culatra e os limites que vale conhecer antes de colocar em produção. Os números vêm das páginas de entrada de imagem da documentação da API da OpenAI, como estão hoje, e cada exemplo trabalhado mostra sua conta, para que você possa conferi-la com o bloco usage nas suas próprias respostas. Páginas assim mudam com frequência, mais um motivo para registrar as contagens de tokens em vez de confiar em uma tabela, inclusive as abaixo.
Como uma foto vira tokens
Um modelo GPT nunca lê o seu JPEG como arquivo. A API redimensiona a imagem, a divide em pequenos blocos e transforma cada bloco em tokens que ficam na janela de contexto, ao lado do seu texto. Esses tokens são cobrados pela taxa normal de entrada do modelo, então uma imagem maior ou mais nítida significa uma conta maior e mais latência. Eles também disputam a mesma janela de contexto com o seu prompt e com a resposta, o que importa quando uma requisição traz várias imagens.
O formato da requisição
As imagens viajam dentro da mensagem do usuário como partes de conteúdo. A Responses API usa partes input_text e input_image, enquanto a Chat Completions usa text e image_url. Nas duas, detail fica na parte da imagem. Aqui está um leitor de recibos no GPT 5.4:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.4",
input=[
{
"role": "user",
"content": [
{"type": "input_text", "text": "List every line item and the total."},
{
"type": "input_image",
"image_url": "https://example.com/receipt.jpg",
"detail": "original",
},
],
}
],
)
print(response.output_text)
print(response.usage.input_tokens)
A mesma chamada na Chat Completions com o GPT-4o aninha a URL um nível mais fundo:
Depois de cada chamada, leia usage.input_tokens na Responses ou usage.prompt_tokens na Chat Completions. É o único número que encerra uma discussão sobre custo.
Três formas de enviar os pixels
URL pública. A opção mais simples, mas os servidores da OpenAI precisam conseguir buscá-la rapidamente.
URL de dados em base64. Uma string data:image/jpeg;base64,... inline funciona para arquivos privados e acrescenta cerca de um terço ao tamanho do payload.
ID de arquivo. Envie uma vez pela Files API com a finalidade vision, depois referencie o ID com um campo file_id na parte da imagem e reutilize em várias requisições.
Os formatos aceitos são PNG, JPEG, WEBP e GIF não animado.
Os quatro valores de detail
O campo detail aceita low, high, original e auto. Se você o omitir, obtém auto, que significa o dimensionamento padrão do próprio modelo. Os nomes sugerem uma escada simples, mas o que cada degrau faz depende do modelo que você chama.
Valor
O que a documentação diz que ele serve
Atenção a
low
Leitura grosseira da imagem
Nem sempre mais barato que high em modelos mais novos
O valor que você obtém quando o campo está ausente
Low: grosseiro e barato, na maioria das vezes
Nos modelos mais antigos baseados em tiles, low tem taxa fixa: 85 tokens no GPT-4o e no GPT 4.1, seja qual for o tamanho do arquivo. O modelo recebe uma versão de 512 por 512 pixels, suficiente para dizer "um cachorro na praia" e insuficiente para ler uma placa de rua. Use para classificação, legendas aproximadas, passes de moderação e decisões de roteamento em que só a ideia geral importa.
High e auto: o padrão do dia a dia
Nos modelos de tiles, high primeiro encaixa a imagem em um quadrado de 2.048 por 2.048, depois redimensiona o lado menor para 768 pixels e então conta os tiles de 512 pixels. Na família GPT 5.x, ele trabalha com patches de 32 pixels, com lado maior de 2.048 pixels e orçamento de 2.500 patches no GPT 5.4 e nas versões menores. Isso basta para fotos, fotos de produtos e capturas de tela comuns. Começa a atrapalhar em documentos densos e textos minúsculos de interface, em que alguns pixels perdidos transformam um 6 em um 8.
Original: quando os pixels importam
original eleva o teto para 10.000 patches e um lado maior de 6.000 pixels no GPT 5.4 e nas versões irmãs. A OpenAI o indica para imagens grandes, densas, sensíveis a posição ou de uso de computador, e para trabalhos sensíveis a coordenadas, como OCR ou detecção de objetos pequenos. Imagine uma captura de tela em 4K em que o modelo precisa devolver a posição de um botão, ou uma planta baixa em que uma linha fina carrega um significado. Você paga por essa nitidez: até 12.000 tokens de imagem por foto, com o multiplicador de 1,2.
A regra prática é merecer esse custo. Comece uma tarefa em high, reúna as falhas e mova apenas os tipos de imagem que falham para original. Se um campo foi lido errado em high e é lido corretamente em original, os tokens extras compraram algo. Se as duas configurações falham do mesmo jeito, o problema está no prompt ou na imagem de origem, e mais pixels não vão ajudar.
A conta dos tokens, passo a passo
Modelos baseados em tiles
A cobrança por tiles é uma taxa base mais uma taxa por tile de 512 pixels. O GPT-4o e o GPT 4.1 cobram 85 de base e 170 por tile. O GPT 5.1 cobra 70 e 140. O GPT 4o Mini cobra 2.833 e 5.667, então mudar o trabalho com imagens para o modelo mini aumenta a contagem de tokens em vez de reduzi-la. Compare o custo total, não a taxa por token.
Os modelos mais novos contam patches de 32 por 32 pixels: ceil(width / 32) x ceil(height / 32). Quando o total excede o orçamento, a imagem é reduzida até caber, e a contagem final de tokens é o número de patches vezes um multiplicador do modelo, arredondado para cima. O multiplicador é 1,2 para o GPT 5.2, o GPT 5.4 e a família GPT 5.6 (Sol, Terra e Luna), e 1,62 para o GPT 4.1 mini.
Imagem
Detail
Patches
Tokens com multiplicador 1,2
1920 x 1080
low, high ou original
60 x 34 = 2.040
2.448
4000 x 3000
high
Limitado a 2.500
Até 3.000
4000 x 3000
low
Cerca de 3.072 após o limite de 2.048 pixels
Cerca de 3.700
4000 x 3000
original
Limitado a 10.000
Até 12.000
As linhas de 4000 x 3000 são minha conta a partir dos orçamentos publicados, então trate-as como estimativas e confirme com usage. A linha de 1080p é exata, porque a imagem já cabe em todos os orçamentos.
A escala torna a diferença real. Dez mil fotos de produtos a 2.448 tokens cada somam 24,48 milhões de tokens de entrada antes de uma única palavra do prompt. O mesmo conjunto a 85 tokens cada no GPT-4olow dá 850.000, uma diferença de cerca de 29 vezes que você nunca perceberia só pelo código.
Quando low custa mais que high
A documentação traz um alerta que surpreende as pessoas: low nem sempre usa menos tokens que high. No GPT 5.4 e nas versões menores, low permite um orçamento de 6.144 patches, enquanto high para em 2.500, então uma foto grande pode custar mais em low. No GPT 5.2 e no GPT 4.1 mini, todos os níveis compartilham uma regra de dimensionamento, um lado maior de 2.048 pixels e um orçamento de 6.144 patches, então low, high e auto retornam contagens idênticas e original não está disponível.
Duas consequências decorrem disso. Nunca presuma que a configuração barata é barata, e espere que o significado dos seus valores detail atuais mude ao trocar de modelo. Um teste rápido resolve as duas coisas:
Escolha três imagens representativas: uma pequena, uma captura de tela em 1080p e uma foto de 12 megapixels.
Envie cada uma em todos os valores de detail que o modelo aceita.
Registre os tokens de entrada ao lado da qualidade da resposta.
Mantenha a configuração mais baixa que ainda responde corretamente.
💡 Se low e high retornam a mesma contagem de tokens em um modelo, o campo não faz nada ali. Remova-o do seu código em vez de carregar um parâmetro que sugere economia que você não está obtendo.
Limites que pegam em produção
Limites de payload e formato
A documentação atual permite até 512 MB de payload total e até 1.500 imagens por requisição. Textos mais antigos citam 50 MB e 500 imagens, então uma biblioteca que aplica esses números pode estar desatualizada. Uma requisição de 512 MB é um problema de latência muito antes de ser um problema de limite, porque o base64 aumenta os bytes em um terço e cada imagem continua gerando tokens.
Onde a visão ainda falha
A OpenAI lista os pontos fracos com clareza, e eles coincidem com o que aparece em produção:
Imagens médicas especializadas, como tomografias, não são adequadas.
Alfabetos não latinos, como japonês ou coreano, podem render menos.
Gráficos com estilos ou cores de linha variados, em que linhas contínuas, tracejadas e pontilhadas precisam ser diferenciadas, causam erros.
Localização espacial precisa, como ler posições de xadrez, não é confiável.
Contagens de objetos voltam como aproximações.
CAPTCHAs são bloqueados.
Nomes de arquivo e metadados nunca são lidos.
Letras miúdas são a principal vítima no trabalho do dia a dia. Quando a parte que importa é pequena, envie só essa parte.
💡 Recorte antes de enviar. Um recorte de 600 x 400 da linha do total de um recibo custa cerca de 300 tokens no GPT 5.4 (19 x 13 = 247 patches, vezes 1,2). A página completa de 4000 x 3000 com original pode chegar a 12.000, e o recorte geralmente é lido melhor.
Erros que desperdiçam tokens
A maior parte do gasto excessivo vem de alguns hábitos:
Enviar arquivos brutos da câmera. Uma imagem original de 12 megapixels é reduzida ao limite do modelo de qualquer forma ao chegar. Redimensione primeiro para o maior lado que o seu nível de detail permite (2.048 pixels para a maioria das configurações, 6.000 em original para o GPT 5.4 e nas versões irmãs), exporte um JPEG, e a requisição sobe mais rápido sem perda alguma.
Juntar uma colagem em uma única imagem. Seis capturas de tela coladas em uma mesma tela são reduzidas em conjunto, então cada uma perde resolução. Envie seis partes de imagem separadas e nomeie-as no texto: "A imagem 1 é a nota fiscal, a imagem 2 é o romaneio." Cada parte é cobrada individualmente.
Pedir tudo de uma vez. Um prompt que quer uma legenda, uma lista de cores, uma checagem de defeitos e uma passagem de OCR convida respostas superficiais. Uma pergunta objetiva por chamada, ou uma lista claramente numerada, devolve uma saída mais limpa.
Nunca registrar o uso. Sem as contagens de tokens de entrada por requisição, uma troca de modelo ou um novo tamanho de imagem pode dobrar sua conta, e nada vai avisar.
Escolha a configuração por tarefa
Tarefa
Comece com
Por quê
Moderação, roteamento, legendas aproximadas
low nos modelos de tiles, auto nos modelos de patches
A ideia geral basta
Fotos de produtos, descrições de cenas
high ou auto
Bom detalhe a custo moderado
Recibos e notas fiscais
high recortado, ou original no GPT 5.4 e posteriores
Letras miúdas precisam de pixels
Gráficos e painéis
original, ou um leitor especializado
Linhas finas carregam significado
Capturas de tela para agentes de interface
original
As coordenadas precisam ser exatas
Recibos e documentos
O texto é onde o redimensionamento atrapalha primeiro. Recorte a região, endireite-a e peça um formato JSON fixo, para que um dígito errado seja fácil de perceber. Diga ao modelo para responder unreadable para qualquer campo que não consiga ler, porque um modelo autorizado a adivinhar vai adivinhar, e um total errado com aparência de certeza é pior que um campo em branco. Se uma digitalização estiver borrada, repare-a antes do envio com uma ferramenta de restauração de imagens por IA, porque nenhuma configuração de detail consegue inventar pixels que nunca foram capturados.
Gráficos e capturas de tela densas
Gráficos misturam traços finos, rótulos pequenos e cores parecidas, que é exatamente o caso que a OpenAI sinaliza. Envie-os em original quando o modelo aceitar. Peça primeiro os números subjacentes em forma de tabela e a interpretação depois, para que você possa conferir os valores contra a imagem antes de confiar em qualquer tendência que o modelo descreva. Para tabelas e gráficos que você extrai todos os dias, um especialista como o Granite Vision 4.1 4B vale um teste lado a lado.
Fotos de produtos em escala
Para trabalho de catálogo, rode o teste de três imagens mencionado antes com as suas fotos reais e depois fixe a configuração e o prompt para o lote inteiro. Peça sempre os mesmos atributos, na mesma ordem, como cor, material e defeitos visíveis, e a saída fica fácil de carregar em um banco de dados. Fotografe os itens do mesmo jeito também: um fundo, distância e luz consistentes permitem usar uma configuração mais barata, porque o modelo não precisa mais lidar com ruído. Uma foto de produto tirada sobre uma bancada lisa, com luz uniforme, costuma ser lida bem em high, enquanto a mesma caneca numa cozinha bagunçada pode não ser.
Como usar o GPT 5.4 no PicassoIA
Você não precisa de código para ver o que um modelo lê. O GPT 5.4 no PicassoIA aceita imagens junto com um prompt de texto, e o seu formulário expõe os mesmos controles que você ajusta na API: um prompt de sistema, verbosidade, esforço de raciocínio e um limite de tokens de conclusão. Isso faz dele um lugar rápido para resolver as perguntas que vêm antes das configurações. Qual redação de prompt funciona? O modelo lê este tipo de imagem? Um modelo mais barato basta? Uma ressalva: o formulário tem um campo de entrada de imagem, mas nenhum interruptor de detail, então trate os resultados como um teste de prompt e de escolha de modelo, e não como uma medição de low contra high.
Adicione sua imagem de teste. Um recibo, uma captura de tela de painel ou uma foto de produto funcionam.
Escreva um prompt objetivo: "Retorne a data e o total em JSON" é melhor que "descreva esta imagem".
Adicione um System Prompt que defina o papel e o formato da saída.
Defina Verbosity como low para tarefas de extração e high quando quiser um detalhamento completo.
Deixe Reasoning Effort em none para leitura simples. Aumente-o para perguntas de várias etapas, e aumente junto o Max Completion Tokens, porque um esforço alto pode gastar todo o orçamento em raciocínio e devolver uma resposta vazia.
Rode a mesma imagem no GPT-4o e compare as duas saídas.
Modelos de visão que vale a pena comparar
Imagem para texto é uma das capacidades integradas da plataforma, e vários modelos de linguagem aceitam imagens:
Escolha cinco imagens da sua rotina real: uma minúscula, uma em 1080p, uma foto de 12 megapixels, um recibo e um gráfico. Rode-as no GPT 5.4 e no GPT-4o no PicassoIA, anote quais respostas estavam certas e depois leve o vencedor para a API e compare as contagens de tokens em cada valor de detail. Uma hora de testes assim economiza mais dinheiro que qualquer ajuste de preço.
Precisa de material de teste? Abra o PicassoIA, gere suas próprias cenas com os modelos de texto para imagem e transforme-as em um conjunto de teste para seus prompts de visão. Você pode navegar por tudo o que está disponível em picassoia.com/en/all-models. Comece com uma imagem, faça uma pergunta objetiva e veja exatamente o que o modelo lê.