Open source para detectar e remover por engenharia reversa a marca-d'água SynthID do Gemini
(github.com/aloshdenny)- Sem acesso ao encoder/decoder do SynthID do Google, reconstrói a estrutura da marca-d'água invisível das imagens do Gemini usando apenas processamento de sinais e análise espectral
- Descoberta principal: o SynthID insere portadoras em posições de frequência diferentes para cada resolução e mantém consistência de template de fase acima de 99,5% entre imagens geradas pelo mesmo modelo — na prática, um padrão fixo
- Métodos existentes com compressão JPEG e injeção de ruído causam grande perda de qualidade, mas o método de subtração de codebook espectral multirresolução V3 alcança redução de 91% na consistência de fase mantendo PSNR acima de 43 dB
- Perfis por resolução são armazenados em um codebook e, de acordo com a imagem de entrada, aplica seleção automática → subtração no domínio FFT → repetição em múltiplos passes para remover a marca-d'água residual
- O sinal da marca-d'água é mais forte no canal verde, e a remoção precisa é feita com pesos por canal (G=1.0, R=0.85, B=0.70)
- O detector informa a presença da marca-d'água e o nível de confiança com 90% de precisão, usando análise multiescala baseada em codebook
- Projeto para fins de pesquisa e educação, com proibição de uso para fazer imagens geradas por IA parecerem criadas por humanos
- Escrito em Python, com todo o código publicado no GitHub
1 comentários
Comentários do Hacker News
Não é tão difícil inserir uma marca-d’água de 1 bit indetectável em uma imagem com milhões de pixels
Assumindo que o Google seja competente o suficiente, provavelmente usaria duas marcas-d’água — uma versão mais frouxa exposta ao público e outra versão privada para uso interno ou para solicitações de autoridades policiais
Além disso, sendo o Google, provavelmente armazenaria em um banco de dados todas as imagens geradas (ou seu neural hash) vinculadas à conta
Partir do princípio de que a camada externa será quebrada e manter uma segunda camada que não pode ser testada publicamente é um princípio básico de segurança
Ainda assim, com modelos sendo recriados o tempo todo e tendo características não determinísticas (non-deterministic), fico curioso se um usuário conseguiria provar isso
Este repositório é fraco demais para ser chamado de pesquisa assistida por IA, e nem compara direito com o detector SynthID do Google
Na verdade, até com ajuda de um LLM daria para fazer engenharia reversa das requisições de rede e implementar a detecção do SynthID sem navegador nem Gemini. Isso seria o verdadeiro ground truth
Também é comum atacarem a fonte ou desmerecerem algo só porque “foi escrito por IA”
Ultimamente, a comunidade do HN parece estar virando cada vez mais um espaço de aversão a ferramentas de IA
Acho que vi a marca-d’água hoje numa imagem gerada com Nano Banana
Copiei a imagem do Chrome para o Slack, e o resultado aparecia só como um quadrado preto com pontos vermelhos
Fico me perguntando se não foi esse tipo de engano
Eu sabia que alguém acabaria fazendo isso, mas não entendo por que remover deliberadamente um meio de detectar imagens geradas por IA
Fica mais perigoso se só o lado ruim souber
O público não entende uma lógica binária do tipo “não tem marca-d’água, então a imagem é real”
No fim, a marcação por IA está fadada ao fracasso
Além disso, no passado também não se colocavam marcas-d’água invisíveis em mídia manipulada — isso é uma questão mais filosófica do que tecnológica
Se você rodar no Stable Diffusion com baixo denoising strength, a marca-d’água quase desaparece
Este repositório diz propor um método menos destrutivo do que isso, mas, vendo os sinais de texto gerado por IA no README, não dá para confiar
O SynthID aparece de forma perceptível em algumas imagens, especialmente em bordas ou áreas com muito texto
Fico curioso se o método deste repositório consegue deixar essas partes mais naturais
Pelo README, os traços do Claude são óbvios demais
As divisórias das tabelas estão desalinhadas, e a estrutura das frases segue bem o padrão típico do Claude
Tenta imitar uma tabela ASCII, mas como a largura dos caracteres varia, as linhas não se alinham
Ainda por cima tem até erro de off-by-one
Tenho a impressão de que, em 2037, ainda estaremos vendo tabelas Unicode desalinhadas
Este repositório testa o desempenho de remoção de marca-d’água apenas com seu próprio detector
Como nem valida com o app SynthID do Google, isso perde o sentido
A descrição do projeto diz para “não enganar as pessoas fazendo conteúdo gerado por IA parecer feito por humanos”, mas na prática distribui uma ferramenta CLI de remoção de marca-d’água
Nomes de configuração como “aggressive” e “maximum” também são bem explícitos
O README parece uma saída de IA sem edição, com conteúdo repetido e estrutura desleixada
A ideia central (carrier dependente da resolução, consistência de fase entre imagens) é interessante, mas o empacotamento destrói a confiança
Se você reduzir a resolução e depois ampliar de novo a imagem, a marca-d’água some
Na prática, isso não é tão difícil
Há um texto relacionado no blog deepwalker.xyz