Open source pour détecter et supprimer par rétro-ingénierie le watermark SynthID de Gemini
(github.com/aloshdenny)- Sans accès à l’encodeur/décodeur SynthID de Google, la structure du watermark invisible des images Gemini est reconstituée uniquement par traitement du signal et analyse spectrale
- Découverte clé : SynthID insère des porteuses à des positions fréquentielles différentes selon la résolution, et la cohérence du modèle de phase dépasse 99,5 % entre les images générées par un même modèle — en pratique, un motif fixe
- Les approches existantes par compression JPEG ou injection de bruit entraînent une forte perte de qualité, mais la méthode V3 de soustraction de codebook spectral multi-résolution atteint une réduction de 91 % de la cohérence de phase tout en maintenant un PSNR supérieur à 43 dB
- Les profils par résolution sont stockés dans un codebook et, selon l’image d’entrée, le système applique une sélection automatique → soustraction dans le domaine FFT → répétition multi-passages pour supprimer le watermark résiduel
- Le signal du watermark est le plus fort dans le canal vert, et une suppression précise est effectuée avec des poids par canal (G=1.0, R=0.85, B=0.70)
- Le détecteur affiche avec une précision de 90 % la présence du watermark et un niveau de confiance, en utilisant une analyse multi-échelle fondée sur un codebook
- Projet à visée de recherche et d’enseignement ; l’usage visant à faire passer des images générées par IA pour des créations humaines est interdit
- Écrit en Python, avec l’intégralité du code publiée sur GitHub
1 commentaires
Commentaires sur Hacker News
Insérer un filigrane 1 bit indétectable dans une image de plusieurs millions de pixels n’est pas si difficile
En supposant que Google soit suffisamment compétent, il utiliserait probablement deux filigranes — une version relâchée rendue publique, et une autre version privée, réservée à l’interne ou aux réquisitions des forces de l’ordre
De plus, s’il s’agit de Google, ils stockeraient probablement toutes les images générées (ou leur neural hash) dans une base de données liée au compte
Partir du principe que la couche externe finira par être percée, et conserver une deuxième couche qui ne peut pas être testée publiquement, c’est un principe fondamental de la sécurité
Cela dit, comme le modèle est continuellement recréé et possède des caractéristiques non déterministes (non-deterministic), je me demande si un utilisateur pourrait vraiment le prouver
Ce dépôt est de mauvaise qualité pour ce qui se présente comme une recherche assistée par IA, et il ne compare même pas correctement son approche au détecteur SynthID de Google
En réalité, même avec l’aide d’un LLM, on pourrait faire de la rétro-ingénierie des requêtes réseau pour implémenter la détection SynthID sans navigateur ni Gemini. Ce serait le véritable ground truth
Et il arrive aussi souvent qu’on attaque la source ou qu’on la rabaisse en disant « c’est écrit par une IA »
J’ai l’impression que la communauté HN glisse de plus en plus vers une forme de haine des outils d’IA
Je crois avoir vu aujourd’hui un filigrane sur une image générée avec Nano Banana
J’ai copié l’image de Chrome vers Slack, et le résultat n’apparaissait que comme un carré noir avec un point rouge
Je me demande si ce n’était pas simplement ce genre d’erreur
Je savais bien que quelqu’un finirait par créer ce genre de chose, mais je ne comprends pas pourquoi on chercherait délibérément à supprimer un moyen de détecter les images générées par IA
Si seuls les acteurs malveillants le savent, c’est encore plus dangereux
Le grand public ne comprend pas une logique binaire du type « s’il n’y a pas de filigrane, alors c’est une vraie image »
Au final, le filigranage de l’IA est condamné à l’échec
Et d’ailleurs, par le passé, on n’apposait pas non plus de filigrane invisible sur les médias manipulés — c’est plus une question de philosophie que de technologie
Dans Stable Diffusion, si on utilise une faible denoising strength, le filigrane disparaît presque complètement
Ce rapport prétend proposer une méthode moins destructrice, mais vu les traces d’écriture IA dans le README, je n’y crois pas vraiment
SynthID est visiblement perceptible sur certaines images, surtout dans les zones avec beaucoup de contours ou de texte
Je me demande si la méthode de ce rapport pourrait rendre ces parties plus naturelles
À lire le README, la patte de Claude est beaucoup trop évidente
Les bordures du tableau sont décalées, et la structure des phrases suit des schémas typiques de Claude
Ça imite des tableaux ASCII, mais la largeur des caractères varie, donc les lignes ne s’alignent pas
Il y a même une erreur de type off-by-one
J’ai l’impression qu’en 2037 on regardera encore des tableaux Unicode mal alignés
Ce dépôt teste ses performances de suppression du filigrane uniquement avec son propre détecteur
Comme il ne vérifie pas le résultat avec l’application SynthID de Google, cela n’a pas vraiment de sens
La description du projet dit « ne faites pas passer du contenu généré par IA pour du contenu humain », mais en pratique il distribue un outil CLI de suppression de filigrane
Des noms de réglages comme « aggressive » et « maximum » sont assez explicites
Le README ressemble à une sortie IA non éditée, avec des répétitions et une structure brouillonne
L’idée de base (porteuse dépendante de la résolution, cohérence de phase entre les images) est intéressante, mais le packaging ruine toute crédibilité
Si on réduit puis réagrandit une image, le filigrane disparaît
En pratique, ce n’est vraiment pas si difficile
Il y a un article à ce sujet sur le blog de deepwalker.xyz