Remove-AI-Watermarks - CLI e biblioteca para remover marcas d'água de IA de imagens
(github.com/wiltodelta)- Remove-AI-Watermarks é uma CLI e biblioteca Python para processar de uma só vez marcas d'água visíveis, marcas d'água invisíveis e metadados de geração por IA em imagens criadas por Google Gemini (Nano Banana), ChatGPT/DALL-E, Stable Diffusion, Adobe Firefly, Midjourney e outros
- A remoção de marca d'água visível tem como alvo o logotipo sparkle do Gemini/Nano Banana, usando reverse alpha blending com um mapa alfa conhecido e inpainting com máscara de gradiente; leva cerca de 0,05 segundo por imagem e não requer GPU
- A remoção de marca d'água invisível enfraquece padrões no domínio de pixels e de frequência, como SynthID, StableSignature e TreeRing, por meio de regeneração baseada em difusão; o perfil padrão usa SDXL e um pipeline nativo de cerca de 1024 px
- A limpeza de metadados abrange EXIF, PNG text chunks, XMP
DigitalSourceTypee C2PA Content Credentials, removendo campos relacionados a IA que acionam o rótulo “Made with AI” no Instagram, Facebook e X(Twitter), enquanto preserva metadados padrão como Author, Copyright e Title - O suporte inclui o logotipo sparkle, SynthID e C2PA/EXIF do Google Gemini/Nano Banana/Gemini 3 Pro; C2PA do OpenAI DALL-E 3/ChatGPT; PNG text chunks e marcas d'água esteganográficas do Stable Diffusion; Content Credentials do Adobe Firefly; e EXIF/XMP do Midjourney
- Smart Face Protection detecta pessoas com YOLO antes do processamento por difusão, extrai rostos e, após o processamento, mistura novamente os rostos originais com uma máscara elíptica suave para reduzir distorções nos traços faciais
- Analog Humanizer adiciona opcionalmente grão de filme e aberração cromática para fazer a saída parecer uma foto tirada de uma tela, sendo descrito como um recurso para contornar classificadores de imagens de IA
- Recomenda-se instalar com
pipx install git+https://github.com/wiltodelta/remove-ai-watermarks.gitouuv tool install git+https://github.com/wiltodelta/remove-ai-watermarks.git; a instalação padrão inclui remoção de marca d'água visível e remoção de metadados - Os requisitos são Python 3.10+; a remoção de marca d'água visível e o processamento de metadados podem ser feitos apenas com CPU, enquanto a remoção de marca d'água invisível recomenda GPU com CUDA ou MPS, mas também funciona lentamente em CPU
- Na primeira execução da remoção de marca d'água invisível, cerca de 2GB de modelos são baixados automaticamente, e o dispositivo é detectado automaticamente na ordem CUDA (Linux/Windows) > MPS(macOS) > CPU, podendo ser especificado com
--device - A CLI pode ser usada como
remove-ai-watermarks all image.png -o clean.png, e o processamento em lote de diretórios comoremove-ai-watermarks batch ./images/ --mode all; também há subcomandosvisible,invisibleemetadata - A API Python usa
GeminiEnginepara detectar e remover marcas d'água, ehas_ai_metadataeremove_ai_metadatapara verificar e remover metadados de IA de imagens - O roadmap inclui testes de regressão automatizados para SynthID-Image v2, limitações na remoção de EXIF/XMP interno em AVIF/HEIF/JPEG-XL, e um pipeline de vídeo planejado como pacote separado; a remoção de Nightshade/Glaze/PhotoGuard não é suportada por ser considerada um ataque a proteções de artistas
- A seção legal afirma que a sinalização de origem gerada por IA é regulamentada em várias jurisdições, e que remover essas informações com a intenção de enganar sobre a origem pode violar leis, a DMCA e termos de plataformas, sendo o usuário responsável por cumprir as regras
- O modelo de ameaça foca em ajudar imagens de IA já distribuídas a responder a sistemas automáticos de detecção e rótulos “Made with AI”, alertando que, se o arquivo original passou pela conta do criador ou por sistemas do Google, isso não anonimiza registros do lado do servidor
1 comentários
Comentários do Hacker News
Um comentário em outro tópico sobre SynthID e OpenAI foi subestimado, mas acho que captura bem qual deveria ser o espírito hacker nessa questão
Nós valorizamos a privacidade, então não deveríamos aceitar ferramentas que coloquem um código de barras em toda ação digital. A resposta “ainda não fazem isso” também não é muito convincente
O espírito hacker, acima de tudo, deveria estar em rodar modelos open source localmente sem depender de empresas
Elas passam a querer meios de identificar e punir quem ameaça seu poder
Se privacidade é importante, basta usar modelos locais
Acho até bom quando algo tem uma indicação clara de que é IA, porque aí posso ignorar tudo mais que venha daquela fonte
Essa ferramenta é uma boa forma de mostrar isso às pessoas
Por exemplo, quando se faz uma remoção de objeto mais complexa no editor
É engraçado que este post esteja exatamente uma posição acima do post OpenAI Adopts SynthID Watermarks
Colocar marca d’água em imagens geradas a partir de dados treinados com material protegido por direitos autorais roubado parece meio errado, embora eu entenda a motivação de querer distinguir o que é real do que não é
No caso do Gemini, essa explicação é um pouco enganosa. O que é removido de fato é só a marca d’água visível
Para remover o SynthID, seria preciso regenerar a imagem com SDXL em baixo nível de ruído, o que provavelmente destruiria muitos pequenos detalhes e não deve funcionar direito em alta resolução. NB2 e GPT Image 2 suportam saída de imagem de até 4K
Acima disso é upscaling, então fica parecido com o SDXL. O GPT Image 2 suporta 4K nativamente, mas ainda é experimental
Para remover a marca d’água do Gemini, basta abrir as ferramentas de desenvolvedor e bloquear a requisição HTTP para watermark
É um overlay de logo aplicado no cliente
Acho difícil aceitar a explicação de que o “caso de uso adequado ao modelo de ameaça” seria preservar arte ou registros históricos contra rótulos falso-positivos de “gerado por IA”
Não vejo o que gerar imagens com IA tem a ver com isso. Geradores de imagem não podem inserir marca d’água em algo que não criaram e, se a marca d’água realmente tiver fidelidade suficiente para rastrear até um ID de sessão específico, como diz o README, então também parece muito improvável que apareça um falso positivo em arte feita por humanos. Além disso, editar a imagem para apagar a marca d’água inevitavelmente altera o próprio objeto que se quer “preservar”
Quanto mais leio, mais me convenço de que os casos de uso no README são besteira, e que o objetivo real é permitir postar lixo de IA nas redes sociais contornando o rótulo de gerado por IA
Na prática, é muito fácil pegar uma imagem real e pedir ao Gemini ou ao ChatGPT para alterar só uma parte bem pequena dela. Pode ser uma mudança mínima, como iluminação ou sombra, e a imagem resultante muitas vezes é detectada por essas ferramentas de marca d’água. Desse jeito, qualquer imagem real pode facilmente ser apresentada como imagem gerada por IA
Independentemente de gostar ou não deste projeto específico, acho que o caminho daqui para frente está em provar a autenticidade de recursos não-IA, e não em tentar colocar marca d’água em tudo que é gerado por IA
Marca d’água só funciona direito quando o método é secreto
Colocar uma cifra em ruído de alta frequência é uma abordagem antiga. No campo dos modelos generativos, seria muito mais interessante aproveitar a flexibilidade da geração para codificar isso na estrutura macroscópica
Não dá simplesmente para usar modelos open source?