MetaWipeAnalisar

Como verificar se uma imagem foi feita por IA

Ninguém verifica se a imagem foi gerada por IA — verifica se o arquivo declara ter sido. A diferença entre as duas coisas, três formas de ler o campo, e por que “limpo” não significa autêntico.

8 min de leitura

A pergunta chega em duas situações opostas. Ou alguém recebeu uma imagem e quer saber se pode confiar nela, ou alguém vai publicar uma imagem e quer saber se vai levar o rótulo de IA antes de descobrir do jeito ruim.

As duas têm a mesma resposta técnica, e ela é mais desconfortável do que o mercado de “detectores de IA” deixa parecer: ninguém verifica se uma imagem foi feita por IA. O que dá para verificar é se o arquivo declara ter sido. São coisas diferentes, e confundir as duas é o erro que faz alguém acusar uma fotografia real de ser sintética.

Duas perguntas que parecem uma

Vale separar antes de qualquer coisa, porque toda a confusão vem daqui:

  • “O que este arquivo declara?” — tem resposta exata. O arquivo carrega, ou não carrega, um registro assinado dizendo como foi produzido. Ler esse registro é uma operação determinística: o campo está lá ou não está.
  • “Esta imagem foi gerada por um modelo?” — não tem resposta confiável hoje. É um problema de classificação em aberto, disputado a cada geração de modelo, e as ferramentas que respondem com uma porcentagem estão estimando.

Praticamente todo “detector de IA” com barra de confiança e resultado em porcentagem está respondendo a segunda. Praticamente toda plataforma que aplica rótulo está lendo a primeira.

O que as plataformas de fato leem

Instagram, Facebook, LinkedIn, TikTok e o Google Imagens não analisam seus pixels para decidir o rótulo. Eles leem um campo escrito dentro do arquivo.

Ferramentas generativas assinam o que produzem com um manifesto C2PA — as Content Credentials. Num JPEG ele viaja em segmentos APP11, dentro de um contêiner JUMBF, codificado em CBOR. Lá dentro há um campo IPTC chamado digitalSourceType. Os valores que importam:

  • trainedAlgorithmicMedia — gerado por IA. É a declaração explícita, e é o que aciona o rótulo.
  • compositeWithTrainedAlgorithmicMedia — parte da imagem veio de IA generativa. É o que um único Preenchimento Generativo grava numa fotografia sua.
  • digitalCapture — capturado por um sensor. Algumas câmeras assinam isso na origem, e nesse caso o C2PA está provando autenticidade, não acusando IA.

Dá para ler isso a olho nu

O manifesto é binário, mas os campos que decidem o veredicto são strings de texto dentro dele. Numa imagem gerada pelo Gemini, um strings simples já entrega:

dnamex"Google C2PA Core Generator Library
factionkc2pa.openedkdescriptionx Opened by Google Generative AI.
factionlc2pa.resizedkdescriptionx Resized by Google Generative AI.
qdigitalSourceTypexFhttp://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia

Os prefixos soltos — d, f, k, q, x — não são lixo: são os cabeçalhos de text string do CBOR. Cada byte carrega o tipo (major type 3) e o tamanho no mesmo lugar, então dname é a chave name com quatro caracteres, porque 0x60 + 4 = 0x64 = d. É por isso que dá para ler os campos certos sem decodificar o manifesto inteiro.

Repare no que mais está ali: o nome da biblioteca que assinou e as ações registradas, em inglês, legíveis. O arquivo não está escondendo nada — a transparência é o propósito declarado do padrão. O problema é que quase ninguém sabe que o texto está lá.

Três formas de verificar

1. No terminal, com exiftool

O caminho mais direto para quem já tem a ferramenta instalada:

exiftool -G -a imagem.jpg | grep -i jumbf

Se houver manifesto, aparece um bloco de linhas do grupo [JUMBF], incluindo o Claim_Generator_InfoName. Sem manifesto, o comando não devolve nada — e é justamente esse silêncio que costuma ser mal interpretado como “a imagem é autêntica”.

2. No Verify, da Content Authenticity Initiative

A ferramenta oficial da coalizão que criou o padrão. Aceita upload e mostra o manifesto assinado com a cadeia de certificação — é a referência quando o que está em jogo é a validade criptográfica da assinatura, e não só a presença do campo. Em troca, o arquivo é enviado ao serviço.

3. No detector do MetaWipe

Escrevemos um leitor que percorre os segmentos do arquivo direto no navegador: APP11 num JPEG, o chunk caBX num PNG. Ele extrai o digitalSourceType, o gerador e as ações registradas, e diz em português o que aquilo significa para quem vai publicar.

A diferença prática é que nada é enviado: é JavaScript rodando na sua aba, sobre bytes que o navegador já tem. Depois que a página carregou, você pode desconectar da internet e ela continua funcionando. Abrir o detector.

O que a resposta “limpo” não quer dizer

Esta é a parte que as ferramentas costumam omitir, e é a razão de este texto existir.

Quando um leitor de metadados diz que a imagem está limpa, ele está dizendo o arquivo não declara origem generativa. Isso é compatível com pelo menos quatro situações bem diferentes:

  • a imagem é mesmo uma fotografia;
  • a imagem é de IA e o marcador foi removido — o que leva alguns segundos e não altera um pixel;
  • a imagem é de IA e passou por um print de tela, que produz um arquivo novo sem o manifesto original;
  • a imagem é de IA e saiu de uma ferramenta que simplesmente não grava Content Credentials — várias não gravam.

Para quem vai publicar, isso basta: o que a plataforma vai ler é exatamente o que o detector leu. Para quem está apurando a origem de uma imagem recebida, isso não basta nem de longe — e nenhuma ferramenta que devolva uma porcentagem resolve melhor.

Sobre os detectores por pixel

Vale ser direto, porque eles aparecem primeiro em qualquer busca. Os serviços que analisam a imagem e devolvem “87% de probabilidade de ser IA” têm três problemas que raramente aparecem na página de vendas:

  • Erram nos dois sentidos. Falso positivo em fotografia real — em especial retrato com pele lisa e fundo desfocado — e falso negativo em imagem gerada por modelo mais recente que os exemplos de treino.
  • Degradam com recompressão. Uma imagem que passou pelo Instagram ou pelo WhatsApp perde boa parte dos artefatos que o classificador procura. Ou seja: falham exatamente onde seriam mais úteis.
  • Envelhecem sozinhos. Cada geração nova de modelo gerador desatualiza os classificadores existentes, e a corrida é estruturalmente favorável a quem gera.

Nada disso quer dizer que sejam inúteis como sinal adicional. Quer dizer que uma porcentagem não é uma verificação, e que tratá-la como prova — para acusar alguém, para reprovar um trabalho — é um erro com consequência real sobre uma pessoa.

O caso prático: conferir antes de postar

Se a sua pergunta é a do segundo grupo — publicar sem levar rótulo — a rotina que evita surpresa é curta:

  1. Confira o arquivo exportado, não o original. O manifesto sobrevive a alguns caminhos de exportação e não a outros, e conferir é mais rápido do que deduzir.
  2. Confira depois da última edição. Um retoque generativo aplicado no fim reintroduz o marcador num arquivo que estava limpo.
  3. Se aparecer, remova antes de publicar. O marcador mora num bloco separado dos pixels, então tirá-lo não toca na qualidade da imagem — a foto que sai é idêntica à que entrou, alguns kilobytes menor. Remover custa 1 crédito, e os primeiros de cada dia não custam nada.

E uma ressalva que não é técnica: remover a credencial apaga o registro, não muda o que a imagem é. Se o conteúdo foi gerado por IA, declarar isso continua sendo responsabilidade de quem publica — em muitos contextos, inclusive, obrigação contratual ou legal. O que a limpeza resolve é o caso em que o rótulo está errado: a fotografia autoral que levou marca porque passou dois segundos num editor com recurso generativo ligado.

Perguntas frequentes

Como verificar se uma imagem foi feita por IA?
Você não verifica se ela foi feita por IA. Você verifica se o arquivo declara ter sido. Ferramentas generativas gravam um manifesto C2PA e o campo IPTC digitalSourceType; ler esses campos dá uma resposta exata sobre o que está escrito no arquivo. Detectar geração por IA a partir dos pixels é outro problema, ainda não resolvido de forma confiável.
Detector de imagem de IA funciona?
Os que leem metadados funcionam e são determinísticos: ou o campo está lá, ou não está. Os que analisam pixels e devolvem uma porcentagem de confiança erram nos dois sentidos — marcam fotografia real como sintética e deixam passar imagem gerada, principalmente depois que ela é recomprimida por uma rede social. Nenhum estudo independente sustenta as taxas de acerto que costumam anunciar.
Se o detector diz que está limpo, a imagem é real?
Não. Significa que o arquivo não declara origem generativa. Uma imagem de IA cujo marcador foi removido, um print de tela de uma imagem gerada, ou uma saída de ferramenta que nunca gravou o campo aparecem todas como limpas. A ausência do marcador é ausência de declaração, não prova de origem.
Como ver se uma imagem tem Content Credentials?
Três caminhos. No terminal, exiftool -G -a arquivo.jpg mostra o grupo JUMBF quando o manifesto existe. No site oficial da Content Authenticity Initiative, o Verify aceita upload e exibe o manifesto assinado. E no detector do MetaWipe, a leitura acontece dentro do navegador, sem enviar o arquivo a servidor nenhum.
Por que a mesma imagem dá resultados diferentes em detectores diferentes?
Porque eles respondem perguntas diferentes. Um detector de metadados responde 'o que este arquivo declara'. Um detector por pixel responde 'este padrão de compressão e ruído se parece com o de um modelo generativo'. O primeiro é verificação; o segundo é estimativa. Quando eles discordam, quem está afirmando mais é o segundo.

Continue lendo

Leitura gratuita, sem cadastro.

Analisar