Código abierto para detectar y eliminar por ingeniería inversa la marca de agua SynthID de Gemini
(github.com/aloshdenny)- Sin acceso al codificador/decodificador de SynthID de Google, reconstruye la estructura de la marca de agua invisible de imágenes de Gemini usando únicamente procesamiento de señales y análisis espectral
- Hallazgo clave: SynthID inserta portadoras en posiciones de frecuencia distintas según la resolución, y la consistencia de la plantilla de fase entre imágenes generadas por el mismo modelo supera el 99.5%; en la práctica, es un patrón fijo
- Los métodos existentes de compresión JPEG e inyección de ruido provocan una gran pérdida de calidad, pero el método de sustracción V3 de codebook espectral multirresolución logra una reducción del 91% en la consistencia de fase mientras mantiene más de 43 dB de PSNR
- Guarda perfiles por resolución en un codebook y, según la imagen de entrada, realiza selección automática → sustracción en el dominio FFT → repetición en múltiples pasadas para eliminar la marca de agua residual
- La señal de la marca de agua es más fuerte en el canal verde, y aplica ponderaciones por canal (G=1.0, R=0.85, B=0.70) para una eliminación precisa
- El detector entrega la presencia de la marca de agua y su nivel de confianza con una precisión del 90%, usando análisis multiescala basado en codebook
- Proyecto con fines de investigación y educación; se prohíbe usarlo para hacer pasar imágenes generadas por IA como si fueran hechas por humanos
- Escrito en Python, con todo el código publicado en GitHub
1 comentarios
Comentarios en Hacker News
Insertar una marca de agua de 1 bit indetectable en una imagen de millones de píxeles no es tan difícil
Asumiendo que Google es lo suficientemente competente, probablemente usaría dos marcas de agua: una versión externa y más laxa que se hace pública, y otra versión privada para uso interno o para solicitudes de las fuerzas del orden
Además, siendo Google, probablemente almacenaría en una base de datos todas las imágenes generadas (o su neural hash) vinculadas a la cuenta
Asumir que la capa externa será vulnerada y mantener una segunda capa que no pueda probarse públicamente es un principio básico de seguridad
Aun así, me pregunto si un usuario podría demostrarlo cuando los modelos se recrean continuamente y tienen características no deterministas (non-deterministic)
La calidad de este repo es baja para llamarlo investigación asistida por IA, y ni siquiera lo compara correctamente con el detector SynthID de Google
De hecho, incluso con ayuda de un LLM se podría hacer ingeniería inversa a las solicitudes de red e implementar la detección de SynthID sin navegador ni Gemini. Eso sería el verdadero ground truth
También es común que ataquen la fuente o la desprecien diciendo “eso lo escribió una IA”
Últimamente da la impresión de que la comunidad de HN se está volviendo cada vez más hostil hacia las herramientas de IA
Creo que hoy vi la marca de agua en una imagen generada con Nano Banana
Copié la imagen desde Chrome a Slack, y el resultado solo se veía como un cuadrado negro con un punto rojo
Me pregunto si no habrá sido un error de ese tipo
Sabía que alguien terminaría haciendo algo así, pero no entiendo por qué querrían eliminar deliberadamente un mecanismo para detectar imágenes generadas por IA
Si solo lo sabe el lado malo, el riesgo aumenta
El público no entiende una lógica binaria del tipo “si no hay marca de agua, entonces es una imagen real”
Al final, el watermarking para IA está condenado al fracaso
Además, en el pasado tampoco se añadían marcas de agua invisibles a medios manipulados; esto es más un problema filosófico que tecnológico
Si en Stable Diffusion se usa una denoising strength baja, la marca de agua casi desaparece
Este repo dice proponer un método menos destructivo, pero viendo las huellas de texto generado por IA en el README, no inspira confianza
SynthID se nota visiblemente en algunas imágenes, especialmente en zonas con muchos bordes o texto
Me pregunto si el método de este repo podrá hacer que esas partes se vean más naturales
En el README, las huellas de Claude son demasiado evidentes
Las paredes de la tabla están desalineadas y la estructura de las frases sigue un patrón muy típico de Claude
Intenta imitar una tabla ASCII, pero como el ancho de los caracteres varía, las líneas no coinciden
Incluso tiene un error de off-by-one
Tengo la sensación de que incluso en 2037 seguiremos viendo tablas Unicode desalineadas
Este repo evalúa su rendimiento para eliminar la marca de agua usando solo su propio detector
Como ni siquiera lo valida con la app SynthID de Google, no tiene mucho sentido
En la descripción del proyecto dice “no hagas pasar contenido generado por IA como si fuera hecho por humanos”, pero en la práctica distribuye una herramienta CLI para quitar marcas de agua
Hasta los nombres de configuración como “aggressive” y “maximum” son bastante obvios
El README parece una salida de IA sin editar, con contenido repetido y una estructura desprolija
La idea base (carrier dependiente de la resolución, consistencia de fase entre imágenes) es interesante, pero el empaquetado destruye la confianza
Si reduces la escala de una imagen y luego la vuelves a ampliar, la marca de agua desaparece
En realidad, no es tan difícil
Hay un artículo relacionado en el blog de deepwalker.xyz