Remove-AI-Watermarks - CLI y biblioteca para eliminar marcas de agua de IA de imágenes
(github.com/wiltodelta)- Remove-AI-Watermarks es una CLI y biblioteca de Python para procesar de una sola vez marcas de agua visibles, marcas de agua invisibles y metadatos de generación por IA en imágenes creadas con Google Gemini (Nano Banana), ChatGPT/DALL-E, Stable Diffusion, Adobe Firefly, Midjourney y otros
- La eliminación de marcas de agua visibles está dirigida al logotipo sparkle de Gemini/Nano Banana, y se procesa mediante inversión de alpha blending usando mapas alfa conocidos e inpainting con máscara de gradiente; tarda alrededor de 0.05 segundos por imagen y no requiere GPU
- La eliminación de marcas de agua invisibles funciona debilitando patrones en el dominio de píxeles y frecuencias, como SynthID, StableSignature y TreeRing, mediante regeneración basada en difusión; el perfil predeterminado usa SDXL y una tubería nativa de aproximadamente 1024px
- La limpieza de metadatos abarca EXIF, PNG text chunks, XMP
DigitalSourceTypey C2PA Content Credentials; elimina campos relacionados con IA que activan la etiqueta “Made with AI” en Instagram, Facebook y X (Twitter), mientras conserva metadatos estándar como Author, Copyright y Title - El alcance de soporte incluye el logotipo sparkle, SynthID y C2PA/EXIF de Google Gemini/Nano Banana/Gemini 3 Pro; C2PA de OpenAI DALL-E 3/ChatGPT; PNG text chunks y marcas de agua esteganográficas de Stable Diffusion; Content Credentials de Adobe Firefly; y EXIF/XMP de Midjourney, entre otros
- Smart Face Protection detecta personas con YOLO antes del procesamiento por difusión, extrae los rostros y, después del procesamiento, vuelve a mezclar los rostros originales con una máscara ovalada suave para reducir la distorsión de rasgos faciales
- Analog Humanizer agrega opcionalmente grano de película y aberración cromática para que la salida parezca una foto tomada a una pantalla, y se describe como una función para evadir clasificadores de imágenes de IA
- Se recomienda instalar con
pipx install git+https://github.com/wiltodelta/remove-ai-watermarks.gitouv tool install git+https://github.com/wiltodelta/remove-ai-watermarks.git, y la instalación predeterminada incluye eliminación de marcas de agua visibles y de metadatos - Los requisitos son Python 3.10+; la eliminación de marcas de agua visibles y el procesamiento de metadatos pueden hacerse solo con CPU, y para la eliminación de marcas de agua invisibles se recomienda una GPU con CUDA o MPS, aunque también funciona lentamente en CPU
- La eliminación de marcas de agua invisibles descarga automáticamente un modelo de alrededor de 2GB en la primera ejecución, y el dispositivo se detecta automáticamente en el orden CUDA (Linux/Windows) > MPS (macOS) > CPU, aunque también puede especificarse con
--device - La CLI se usa como
remove-ai-watermarks all image.png -o clean.png, y para procesamiento por lotes de directorios comoremove-ai-watermarks batch ./images/ --mode all; también ofrece los subcomandosvisible,invisibleymetadata - La API de Python puede usar
GeminiEnginepara detectar y eliminar marcas de agua, yhas_ai_metadatayremove_ai_metadatapara verificar y eliminar metadatos de IA en imágenes - La hoja de ruta incluye pruebas de regresión automáticas para SynthID-Image v2, limitaciones para eliminar EXIF/XMP incrustado en AVIF/HEIF/JPEG-XL y una tubería de video planeada como paquete separado; no admite la eliminación de Nightshade/Glaze/PhotoGuard porque se considera un ataque contra protecciones de artistas
- La sección legal indica que el etiquetado del origen generado por IA está regulado en varias jurisdicciones, y que eliminar información de procedencia con intención de engañar puede violar leyes, la DMCA y los términos de las plataformas, por lo que el usuario es responsable de cumplir con la normativa
- El modelo de amenazas se enfoca en ayudar a que imágenes de IA ya distribuidas respondan a sistemas automáticos de detección y etiquetas “Made with AI”, y advierte que si el archivo original pasó por la cuenta del creador o por sistemas de Google, no puede anonimizar también los registros del lado del servidor
1 comentarios
Comentarios en Hacker News
Creo que el comentario en otro hilo sobre SynthID y OpenAI fue subestimado, y captura bien cuál debería ser el espíritu hacker en este tema
Valoramos la privacidad, así que no deberíamos aceptar herramientas que pongan códigos de barras en toda acción digital. La réplica de “todavía no lo hacen” tampoco resulta muy convincente
El espíritu hacker debería estar, ante todo, en ejecutar modelos open source localmente sin depender de corporaciones
Quieren un medio para detectar y castigar a quienes amenacen su poder
Si la privacidad importa, entonces usa modelos locales
Si algo tiene una marca clara de que es IA, hasta me parece mejor, porque así puedo ignorar todo lo demás que venga de esa fuente
Esta herramienta es una buena forma de mostrarle eso a la gente
Por ejemplo, cuando haces una eliminación de objetos más compleja en un editor de fotos
Es gracioso que esta publicación esté justo un puesto arriba de OpenAI Adopts SynthID Watermarks
Poner marcas de agua en imágenes generadas a partir de datos entrenados con material con copyright robado se siente mal de algún modo, aunque entiendo la razón de querer distinguir si son reales o no
En el caso de Gemini, esta explicación es un poco engañosa. Lo único que realmente se elimina es la marca de agua visible
Para quitar SynthID hay que regenerar la imagen con SDXL a un nivel bajo de ruido, pero eso probablemente arruine muchos detalles pequeños y no funcionará bien en alta resolución. NB2 y GPT Image 2 soportan salida de imágenes de hasta 4K
Por encima de eso es escalado, así que es parecido a SDXL. GPT Image 2 sí soporta 4K de forma nativa, pero todavía es experimental
Para quitar la marca de agua de Gemini basta con abrir las herramientas de desarrollador y bloquear la solicitud HTTP hacia watermark
Funciona superponiendo el logo desde el cliente
La explicación de “caso de uso que sí encaja en el modelo de amenaza: preservar arte o registros históricos frente a etiquetas de ‘generado por IA’ que sean falsos positivos” no resulta convincente
No veo qué tiene que ver generar imágenes con IA con eso. Un generador de imágenes no puede insertar una marca de agua en algo que no creó, y si, como dice el README, la marca de agua tiene una fidelidad suficiente como para rastrear incluso un ID de sesión específico, entonces también parece muy poco probable que aparezca una marca de agua de falso positivo en arte hecho por humanos. Además, las modificaciones de imagen necesarias para borrar la marca inevitablemente alteran el objeto mismo que supuestamente se quiere “preservar”
Cuanto más leo, más me convenzo de que los casos de uso del README son puro disparate, y de que el propósito real es dar una herramienta para evadir la etiqueta de generado por IA y subir imágenes basura hechas con IA a redes sociales
En la práctica es muy fácil tomar una imagen real y pedirle a Gemini o ChatGPT que cambie solo una parte mínima. Puede ser algo tan menor como la iluminación o las sombras, y esas imágenes resultantes a menudo son detectadas por esa herramienta de marcado. De esta forma, casi cualquier imagen real puede presentarse fácilmente como si fuera una imagen generada por IA
Independientemente de si gusta o no este proyecto en particular, creo que el camino a futuro está en la prueba de autenticidad de recursos no generados por IA, más que en intentar poner marcas de agua a todo lo generado por IA
Las marcas de agua solo funcionan bien cuando el método es secreto
Meter texto cifrado en ruido de alta frecuencia es una técnica vieja. En el espacio de los modelos generativos, sería mucho más interesante codificarlo dentro de la estructura macro aprovechando la flexibilidad de la generación
¿Por qué no simplemente usar modelos open source?