Un repositorio publicado en GitHub bajo el nombre remove-ai-watermarks ofrece una CLI y librería en Python que elimina, en un solo comando, las marcas de agua visibles e invisibles que las grandes plataformas de IA generativa estampan sobre las imágenes que producen. Cubre el sparkle visible de Google Gemini (Nano Banana), SynthID en sus dos versiones, C2PA Content Credentials, EXIF, XMP y los PNG text chunks que disparan los sellos Made with AI en Instagram, Facebook y X.
El proyecto, mantenido por el usuario wiltodelta, acumula 221 estrellas y 20 forks al momento de redactar este artículo y se distribuye con un demo online gratuito en raiw.cc. La discusión es relevante porque pone sobre la mesa, con código funcional, hasta qué punto la trazabilidad criptográfica y perceptual que defienden Google, Adobe, Meta y OpenAI resiste un ataque técnico bien informado.
TL;DR
- remove-ai-watermarks es una CLI en Python que elimina marcas visibles e invisibles de imágenes generadas por Gemini, DALL-E, SD, Firefly y Midjourney.- Borra el sparkle de Nano Banana en ~0.05s por imagen sin GPU, usando reverse alpha blending con un mapa alfa conocido.- Para SynthID y otras marcas invisibles usa regeneración por difusión con SDXL a 1024 px, ~50 pasos a strength 0.05.- Strippea metadatos C2PA, EXIF, XMP y PNG text chunks que disparan el sello Made with AI en Instagram, Facebook y X.- Incluye Smart Face Protection con YOLO y un Analog Humanizer con grano de película y aberración cromática para esquivar clasificadores.- El repo wiltodelta/remove-ai-watermarks tiene 221 estrellas y un servicio web gratuito en raiw.cc que usa la misma librería.- Migró de SD-1.5 a SDXL en mayo de 2026 tras verificar empíricamente que SynthID v2 de Gemini 3 Pro resistía el pipeline anterior.
Qué hace exactamente la herramienta
La promesa de remove-ai-watermarks es directa: pasarle una imagen generada por un modelo de IA y obtener una versión que ningún sistema actual de detección automatizada pueda identificar como sintética. Eso implica atacar tres capas distintas al mismo tiempo.
La primera capa es la marca de agua visible. Hoy solo Google la aplica de forma sistemática: el sparkle multicolor que Nano Banana y Gemini 3 Pro estampan en una esquina de cada imagen generada. La segunda es la invisible en el dominio del píxel o de la frecuencia: SynthID de DeepMind, StableSignature de Meta, TreeRing en el espacio latente de los modelos de difusión. La tercera es la metadata: campos EXIF, XMP, fragmentos de texto en PNG y, sobre todo, el manifiesto criptográfico C2PA que cargan ChatGPT Images, Adobe Firefly y los modelos compatibles con Content Credentials.
La CLI las desactiva con un único comando, encadenando tres pipelines independientes que se pueden activar o desactivar por separado. El proyecto declara compatibilidad explícita con Gemini, DALL-E 3, ChatGPT Images 2.0, Stable Diffusion (AUTOMATIC1111 y ComfyUI), Adobe Firefly, Midjourney, StableSignature y TreeRing.
Las tres capas que la herramienta ataca en paralelo sobre cada imagen.
Cómo derrota el sparkle de Gemini sin GPU
El sparkle de Gemini se aplica con una operación trivial: alpha blending. La imagen final que ves es una combinación lineal entre el logo y la imagen original, ponderada por un canal alfa que decide cuánta opacidad tiene la marca en cada píxel.
watermarked = α × logo + (1 − α) × original
Si conocés el mapa alfa exacto y la apariencia del logo, la operación se invierte en una sola línea de álgebra. remove-ai-watermarks incluye un mapa alfa que el autor extrajo generando una imagen de Nano Banana sobre fondo negro puro, lo que aísla matemáticamente la contribución del logo.
original = (watermarked − α × logo) / (1 − α)
El detalle no trivial es la ubicación. El sparkle puede aparecer escalado o desplazado si la imagen pasó por un crop o un resize. Para eso, el repo implementa un detector de tres etapas basado en Normalized Cross-Correlation que busca el logo en distintas posiciones y escalas, devuelve una puntuación de confianza y solo aplica la inversión si supera un umbral. Tras el reverse blend, un paso de gradient-masked inpainting limpia los bordes residuales que el algoritmo deja en la frontera del logo.
El resultado declarado es de 0.05 segundos por imagen sin GPU. Es la parte más rápida y determinista del sistema, y la única que no introduce ruido perceptual en el resto de la imagen.
💭 Clave: el sparkle solo es invertible porque Google decidió usar una operación cerrada con un logo público. Si en lugar de un blend lineal hubieran aplicado un inpainting generativo con perturbaciones aleatorias por imagen, la herramienta no podría revertirlo. Es una decisión de diseño que prioriza la velocidad de cómputo en el lado de Google sobre la robustez de la marca.
El ataque a SynthID y las marcas invisibles
Las marcas invisibles son una historia distinta. SynthID, presentado públicamente por Google DeepMind en 2023 y desplegado por defecto en todas las imágenes de Gemini, no es un overlay: es un patrón disperso en el dominio de la frecuencia que resiste compresión JPEG, cropping y resizing. La promesa formal es que un detector autorizado por Google puede leerlo aun después de transformaciones agresivas.
El ataque del repo es indirecto pero efectivo: si no se puede borrar el patrón a mano, se regenera la imagen entera con un modelo de difusión que aplica suficiente ruido para destruir la firma de frecuencia sin alterar visiblemente el contenido. El pipeline por defecto, vigente desde mayo de 2026, usa Stable Diffusion XL:
image → resize a ~1024px (resolución nativa de SDXL)
→ encode a espacio latente con el VAE
→ ruido controlado (forward diffusion)
→ denoise (~50 pasos, strength 0.05)
→ decode al dominio de píxeles con el VAE
→ upscale a la resolución original
Los números importan: con un strength de 0.05 el modelo perturba lo justo para reescribir cada píxel en el espacio latente, pero no lo suficiente para distorsionar el contenido reconocible. El autor documenta que el pipeline anterior basado en SD-1.5 a 768 px no derrotaba a SynthID v2 en los outputs de Gemini 3 Pro, y que la migración a SDXL fue empírica: probó hasta que el detector de referencia dejó de marcar las imágenes regeneradas.
Smart Face Protection con YOLO
Cualquier paso de difusión, por suave que sea, tiende a deformar caras humanas. Los modelos generativos tienen un prior fuerte sobre rostros y arrastran la geometría facial hacia la media estadística de su set de entrenamiento. La herramienta resuelve eso con un paso previo: corre YOLO para detectar personas en la imagen, extrae las regiones faciales antes de la difusión y, después de regenerar el resto, blendea de vuelta los rostros originales con una máscara elíptica suave.
Analog Humanizer
Una vez removida la marca, queda el problema de los clasificadores que aprenden a distinguir imágenes IA por características estadísticas globales, no por una marca explícita. El módulo opcional Analog Humanizer inyecta grano de película y aberración cromática calibrados para que el resultado sea estadísticamente indistinguible de una foto tomada de la pantalla de un monitor. Es el equivalente, en términos digitales, a fotocopiar y escanear un documento para borrar metadatos.
El Analog Humanizer añade ruido analógico calibrado para esquivar clasificadores.
Cómo se eliminan los metadatos y el sello Made with AI
La parte menos glamorosa, pero probablemente la más importante para el uso cotidiano, es el stripping de metadatos. Instagram, Facebook y X no detectan IA mirando los píxeles: leen el manifiesto C2PA embebido en el archivo, el campo XMP DigitalSourceType o un puñado de etiquetas EXIF, y si alguno indica generación por IA, agregan el sello Made with AI. C2PA, una iniciativa empujada por Adobe, Microsoft y The New York Times, firma criptográficamente el manifiesto, lo que garantiza autenticidad pero no impide que el manifiesto se borre por completo.
El repo limpia los siguientes contenedores:
- PNG text chunks, donde Stable Diffusion guarda prompt, modelo, sampler y seed.- EXIF y XMP, usados por Midjourney y Firefly para metadata de generación.- Manifiestos C2PA en PNG, JPEG, AVIF, HEIF y JPEG-XL, que son las cinco contenedores donde la coalición decidió incrustar el bloque firmado.
Sin manifiesto y sin XMP, las plataformas pierden la señal explícita que dispara el sello. Las marcas perceptuales (SynthID, StableSignature) ya fueron eliminadas en el paso anterior por la regeneración por difusión.
flowchart LR
A["Imagen IA con marcas"] --> B["Detector NCC del sparkle"]
B -->|si lo encuentra| C["Alpha reversal + inpainting"]
B -->|si no| D["Saltea visible"]
C --> E["Difusion SDXL 1024px"]
D --> E
E --> F["YOLO: face protection"]
F --> G["Strip C2PA, EXIF, XMP"]
G --> H["Analog Humanizer opcional"]
H --> I["Imagen limpia"]
Instalación y uso desde la CLI
El proyecto usa uv como gestor de dependencias de Python, lo que simplifica la instalación y reduce los problemas habituales de versiones en torch y diffusers. Los comandos son idénticos en las tres plataformas si tenés uv instalado:
# Windows (PowerShell), macOS y Linux
git clone https://github.com/wiltodelta/remove-ai-watermarks
cd remove-ai-watermarks
uv sync
# Limpieza basica de una imagen
uv run remove-ai-watermarks clean entrada.png salida.png
# Procesamiento por lotes con perfil SDXL completo
uv run remove-ai-watermarks batch ./carpeta_entrada ./carpeta_salida --profile sdxl
# Solo strip de metadatos (sin difusion, instantaneo)
uv run remove-ai-watermarks strip imagen.jpg salida.jpg --metadata-only
El flag --metadata-only es el modo más liviano y honesto si tu objetivo es solo evitar los sellos automáticos en redes: deja la imagen pixel-idéntica al original y descarta los manifiestos C2PA. El modo completo, con difusión, está pensado para casos donde se quiere derrotar también detectores estadísticos.
⚠️ Ojo: el proyecto no se posiciona como herramienta para creación de desinformación. La discusión técnica es legítima, pero el uso responsable —usos académicos, investigación de robustez, recuperación de imágenes propias con metadata corrupta— es muy distinto del uso para fabricar evidencia falsa o desinformación. El autor incluye la licencia y no asume responsabilidad legal por el uso.
Por qué importa: la trazabilidad como infraestructura frágil
La existencia pública y funcional de remove-ai-watermarks reabre una discusión que la industria intentó cerrar a fuerza de comunicados: ¿es la marca de agua una solución técnica viable para la trazabilidad de contenido generado por IA?
La Casa Blanca firmó en 2023 compromisos voluntarios con OpenAI, Google, Meta, Microsoft, Anthropic y otros para implementar marcas de agua en contenido generado. La Unión Europea, en el AI Act de 2024, exige etiquetado de contenido sintético. Adobe lanzó Content Credentials como infraestructura abierta para resolver el problema con firma criptográfica. C2PA es ahora la coalición de referencia, y publicaciones como The New York Times o la BBC ya integran lectura de manifiestos en sus pipelines editoriales.
La hipótesis subyacente es que una imagen generada por IA va a llegar a los lectores con un sello legible. La herramienta demuestra, con código auditable, que tres ataques bien conocidos en seguridad y procesamiento de imágenes —reverse alpha blending, regeneración por difusión y stripping de metadatos— bastan para neutralizar las tres capas que componen la marca. Y lo hace en segundos, sin GPU para el caso visible, sin entrenar modelos nuevos, sobre commodity hardware.
La asimetría es estructural: defender requiere que la marca sobreviva a cualquier transformación, mientras que atacar solo requiere una transformación que la rompa. Los autores académicos de SynthID lo reconocen en sus papers: la marca está diseñada para resistir ediciones casuales, no ataques adversariales informados con acceso al código.
Implicaciones para periodismo, redes y verificación
El sello Made with AI de Meta ya cubre, según la propia empresa, decenas de millones de imágenes mensuales. Para una redacción periodística que verifica contenido viral, ese sello es una señal débil pero útil. Si el atacante motivado puede borrarla con una línea de comando, la verificación tiene que apoyarse en otras señales:
- Análisis forense estadístico, no basado en marcas embebidas sino en correlaciones de ruido, frecuencias o artefactos de modelos específicos.- Procedencia firmada de origen, no solo de generación: certificar al fotógrafo, dispositivo y momento de captura, como propone el estándar C2PA Capture.- Análisis contextual y de fuentes: la verificación tradicional, que en última instancia no depende de píxeles.
Para las grandes plataformas, la lección es que la única defensa robusta posible es marcar lo auténtico en origen, no marcar lo sintético en destino. Es la misma discusión que en seguridad llevó del blacklisting al allowlisting: enumerar lo malo no escala, enumerar lo bueno sí.
Qué sigue
El propio CHANGELOG del repo es transparente sobre la dinámica de gato y ratón: el pipeline SD-1.5 funcionó contra SynthID v1 pero fue obsoleto por v2, y por eso migraron a SDXL. Es razonable esperar una SynthID v3 diseñada para sobrevivir regeneraciones por difusión, probablemente embebida más profundamente en el modelo generativo (no como post-proceso) y verificada por un detector que sea robusto a downscaling y reencoding.
Paralelamente, las plataformas pueden pasar de leer un manifiesto a requerir un manifiesto firmado válido para no aplicar restricciones. El cambio de criterio mueve la carga: en vez de marcar lo IA, dejarían sin contexto lo no firmado, lo que penaliza también a quien no usa IA pero no tiene Content Credentials configurado. Es una decisión política, no técnica.
Por ahora, lo concreto es que la herramienta existe, es pública, funciona, y se mantiene. Y eso obliga a periodistas, plataformas y arquitectos de sistemas de verificación a aceptar que la marca de agua, en su forma actual, es una capa entre muchas, no la solución del problema.
Preguntas frecuentes
¿remove-ai-watermarks es legal?
El proyecto está bajo una licencia open source explícita y procesa archivos locales. La legalidad de eliminar metadatos o marcas de tus propias imágenes depende de la jurisdicción y del propósito: la mayoría de marcos legales no prohíben modificar archivos personales, pero sí prohíben fabricar evidencia falsa, suplantar identidad o violar términos de servicio de plataformas. El uso responsable —investigación, recuperación de metadata corrupta, pruebas de robustez— es muy distinto del uso para desinformación.
¿Funciona contra todas las marcas de agua actuales?
El propio CHANGELOG documenta que el pipeline anterior (SD-1.5 a 768 px) no derrotaba SynthID v2 de Gemini 3 Pro. La migración a SDXL a 1024 px lo resuelve en la fecha actual, pero los esquemas evolucionan. Para ChatGPT Images 2.0 el repo admite que existe una marca imperceptible cuyo detector no es público todavía, por lo que el resultado contra ese modelo no es verificable.
¿Por qué SDXL y no un modelo más nuevo?
SDXL tiene VAE y arquitectura abiertos, corre razonablemente en GPU de consumo y su resolución nativa de 1024 px se alinea con la resolución típica de las imágenes generadas por Gemini. Modelos más nuevos como Flux o SD3 son alternativas viables, pero introducen sus propios artefactos y requieren recalibrar el strength óptimo para no destruir contenido.
¿Qué hace exactamente el Analog Humanizer?
Aplica grano de película sintético con distribución calibrada de luminancia y un patrón de aberración cromática suave en los bordes de alto contraste. La idea es que clasificadores entrenados para distinguir IA por características estadísticas globales —patrones de ruido demasiado limpios, ausencia de aberraciones ópticas— vean una imagen con la firma visual de un sensor analógico o de una pantalla fotografiada.
¿Cuál es el costo computacional real?
El stripping de metadatos y el reverse alpha blending son operaciones triviales: corren en CPU en milisegundos. El pipeline de difusión con SDXL a 1024 px y 50 pasos requiere GPU para tiempos razonables: alrededor de 10-15 segundos por imagen en una RTX 4090, varios minutos en CPU. El procesamiento por lotes en una carpeta es directo y soporta resume si se interrumpe.
¿Cómo verifico que la imagen ya no tiene SynthID después de procesarla?
El detector oficial de SynthID no es público. La verificación práctica en el repo se hace con detectores de terceros y con re-ejecución de los analizadores estadísticos que las plataformas usan internamente, lo que da una señal indirecta pero no una garantía formal. Para auditorías rigurosas hay que confiar en que el pipeline de difusión destruyó la información de frecuencia, sin un oráculo externo que lo confirme.
📖 Resumen en Telegram: Ver resumen
Referencias
- wiltodelta/remove-ai-watermarks en GitHub — repositorio oficial con CLI, librería y documentación.- raiw.cc — demo web gratuito que usa la misma librería como backend.- C2PA — Coalition for Content Provenance and Authenticity — especificación del manifiesto que la herramienta strippea.- arxiv.org — papers sobre robustez adversarial de marcas de agua perceptuales en modelos de difusión.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
Top comments (0)