Como saber se uma imagem foi gerada por IA
Postei uma imagem no LinkedIn semana passada e logo abaixo dela apareceu uma faixa que eu nunca tinha visto:
Credenciais de conteúdos
Aplicativo ou dispositivo usado: OpenAI Media Service API
Gerado por: OpenAI OpCo, LLC
Data de emissão: 5 de maio de 2026
A imagem em questão era um RACI Matrix que eu tinha pedido pro ChatGPT gerar. Como o LinkedIn sabia?
A resposta curta: a imagem se entregou
A imagem carrega uma assinatura criptográfica embutida dentro do próprio arquivo. É um padrão chamado C2PA (Coalition for Content Provenance and Authenticity), e o nome bonitinho disso é “Content Credentials”. Adobe, Microsoft, OpenAI, Meta e outros entraram nessa coalizão pra empurrar o padrão.
O que a OpenAI faz: toda imagem gerada pelo ChatGPT/DALL·E/Sora desde 2024 sai do forno com um manifest C2PA grudado dentro do arquivo. O LinkedIn (e TikTok, e Meta) lê esse manifest no upload, valida a assinatura contra a lista de issuers confiáveis e mostra aquela faixa.
Não é detector de IA. Não é heurística. É metadata assinada que o próprio gerador carimbou.
Olhando o caBX por dentro
Dá pra ver o manifest na unha. PNGs são uma sequência de “chunks”: IHDR pro header, IDAT pros pixels, IEND pro fim. C2PA aparece como um chunk extra de tipo caBX:
chunks:
IHDR length=13
caBX length=23626 ← manifest C2PA, ~23KB
IDAT length=65536
IDAT length=65536
...
IEND
Vinte e três kilobytes só de proveniência. Dentro do caBX tem uma estrutura JUMBF (JPEG Universal Metadata Box Format) com:
c2pa.assertions: declarações (“foi gerado pela OpenAI Media Service API”, data de emissão, hash dos pixels)c2pa.signature: assinatura digital do certificado da OpenAIc2pa.icon: o ícone “cr” que aparece no canto da preview do LinkedIn
A assinatura é o que importa: ela amarra criptograficamente o conteúdo da imagem ao nome do issuer. Se você editar 1 pixel, a assinatura quebra. Se alguém tentar falsificar (carimbar sua foto com manifest da OpenAI), não passa pelo verificador porque eles não têm a chave privada.
Outros jeitos de identificar imagem IA
C2PA é o canal “cooperativo”: funciona quando o gerador colabora. Mas e quando não tem manifest?
Pista visual. Mãos com 6 dedos, texto que vira hieróglifo, sombras saindo de direções diferentes, simetria estranha em rostos. Modelos atuais corrigiram quase tudo isso, mas ainda escorrega em texto pequeno e geometria de objetos no fundo.
Detectores de IA. Hive, AI or Not, Sensity. São classificadores treinados pra reconhecer artefatos típicos de modelos generativos. Funcionam razoavelmente em DALL·E e Midjourney “puros”, mas se você pegar uma imagem IA, comprimir em JPEG várias vezes, fazer screenshot, recortar, eles começam a errar feio.
Watermarking invisível. Google fez o SynthID, que embute um padrão estatístico nos pixels que sobrevive a compressão e crop moderado. Não tá universalizado, depende de cada gerador implementar.
Removendo o C2PA (se quiser)
O manifest é só um chunk. Qualquer reencode que descarta chunks auxiliares mata ele:
# macOS já vem com sips
sips -s format png imagem.png --out limpa.png
# ou abrir no Preview e exportar como PNG
# ou tirar screenshot da imagem aberta
Depois disso, o LinkedIn não tem mais como atestar a origem. O badge “cr” some. Importante: isso só remove a prova de autoria, não disfarça que é IA. Um detector visual ainda pode pegar.
Por que isso importa
C2PA não vai resolver desinformação. Ninguém é obrigado a deixar o manifest, e qualquer ferramenta de edição pode strippar ele. Mas inverte o ônus: em vez de tentar provar que algo é IA, a gente passa a poder provar que algo veio de uma fonte específica. É a diferença entre detectar uma falsificação e ter uma nota fiscal.
Pra mim o mais interessante é o que aconteceu de fato: postei uma imagem, e o LinkedIn leu metadata, validou contra um certificado raiz, e me delatou. Tudo isso em milissegundos. A infraestrutura de proveniência já tá rodando, a maioria das pessoas só não percebeu ainda.