Copie un paragraphe généré par Gemini, colle-le ailleurs, puis regarde le fichier avec une loupe numérique : il transporte des dizaines de caractères invisibles qui trahissent son origine. Des espaces exotiques, des codes de contrôle, des métadonnées planquées dans le conteneur. Rien de visible, tout de détectable.
C’est le petit jeu préféré des fournisseurs d’IA : signer leurs contenus sans rien montrer. Google l’assume carrément avec SynthID, un filigrane statistique tissé dans le choix des mots. Claude glisse des caractères invisibles dans ses réponses. Les images et les PDF portent des cartes d’identité normalisées C2PA. La transparence a ses raisons, la vie privée aussi.
Un développeur parisien, Guillaume Meyer, a décidé de remettre l’interrupteur à portée de main du lecteur. Son projet Watermarks Remover, publié le 11 août 2026 sous licence MIT, détecte puis efface ces marques sur des contenus que tu possèdes. Bilan : 20 800 étoiles sur GitHub en moins d’un mois, et une montée en puissance éclair jusqu’à la version 0.7.0 du 3 septembre. Voilà comment ça marche, et ce que ça ne fait pas.
Des filigranes que tu ne verras jamais
Premier niveau, le plus sournois : les caractères invisibles. La norme Unicode, qui définit l’ensemble des caractères que manipulent les ordinateurs, contient des dizaines de codes d’espacement exotiques, de marques bidirectionnelles et de caractères de contrôle. À l’écran, tu ne vois rien. Dans le fichier, chaque code est une preuve. Un simple copier-coller les transporte partout.
Deuxième niveau : les métadonnées, ces informations techniques rangées à l’intérieur du fichier. Le standard C2PA, poussé par un consortium qui réunit notamment Adobe et Microsoft, ajoute aux médias une sorte de carte d’identité : quel outil a créé le contenu, quand, avec quels réglages. Les photos embarquent de l’EXIF depuis toujours, les documents Office et les PDF cachent leurs propres propriétés. Une image publiée telle quelle raconte souvent plus que ce qu’elle montre.
Troisième niveau, le plus malin : les filigranes statistiques. L’idée de SynthID-Text, chez Google DeepMind, tient en une phrase : au lieu de cacher un code dans le texte, le modèle choisit certains mots parmi des synonymes équivalents, selon une règle secrète. La phrase semble parfaitement naturelle, mais un détecteur qui connaît la règle mesure le biais et conclut : généré par une IA. Les chercheurs ont décliné le concept en plusieurs familles, dont les listes vertes de Kirchenbauer et le schéma de Gumbel d’Aaronson, que le projet traite aussi.

Source : capture GitHub du dépôt guillaumemeyer/watermarks-remover, début septembre 2026.
Trois étapes : détecter, nettoyer, vérifier
L’outil suit la logique d’un nettoyage sérieux : on ne supprime rien avant d’avoir vu ce qui se cache dans le fichier. La détection scanne les caractères invisibles, les manifests C2PA, les métadonnées EXIF et XMP, les propriétés de documents, et propose un score pour les marques statistiques. Le rapport distingue ce qui est avéré de ce qui est simplement probable.
Le nettoyage opère ensuite en deux couches. La couche A, entièrement déterministe, retire les caractères invisibles et les métadonnées sans toucher au contenu : de la chirurgie de fichier, sans intelligence artificielle. La couche B s’attaque aux filigranes statistiques : elle fait reformuler le texte par un modèle local pour dilater les signatures, avec une stratégie calibrée sur les bancs d’essai du projet, une paraphrase légère complétée d’un remplacement de mots par un petit modèle de langue. La version 0.7.0 a intégré cette couche directement dans le service.
Dernière étape, souvent oubliée ailleurs : la vérification. L’outil re-scanne le résultat et te dit si la marque se laisse encore détecter. Pour les puristes, deux bancs d’essai optionnels, MarkLLM et MarkDiffusion, permettent de prouver le nettoyage avec les instruments de mesure des laboratoires. Le projet embarque aussi un module de recherche, le stealer, qui tente de reconstituer la signature d’un modèle SynthID en le questionnant massivement. C’est de la recherche sur des modèles que tu es autorisé à tester, et les auteurs le disent clairement : on n’y récupère pas la clé secrète, seulement un estimateur.

Schéma explicatif NumeriBrain, réalisé par la rédaction d’après la documentation du projet (ce n’est pas une capture du produit).
L’installation : un service local et un skill
L’architecture est simple et assumée : toute la machinerie tourne dans un petit service web local, et le skill n’est qu’un mode d’emploi que ton agent IA lit. Le service écoute sur l’adresse 127.0.0.1, celle de ta propre machine, et rien ne repart chez un tiers. Le projet tient en deux briques : un service écrit en Python pur, à partir de la version 3.10, sans la moindre dépendance à installer, et un installateur qui pose le skill dans ton agent.
La voie la plus rapide, fidèle au README :
- Pour lancer le service : make serve, ou python3 service/scripts/server.py --host 127.0.0.1 --port 8765. Aucune bibliothèque à ajouter.
- Pour tout embarquer dans Docker : docker compose up --build -d. L’image officielle est aussi publiée sur le registre GHCR.
- Pour installer le skill dans Claude Code : python3 install_skill.py --skill remove-ai-marks --target claude-code. Le même installateur couvre Cursor, un projet précis et claude.ai, où il produit un zip à téléverser dans les réglages de skills.
- Sur Claude Code, encore plus court, via le marketplace intégré : /plugin marketplace add guillaumemeyer/watermarks-remover, puis /plugin install watermarks-remover@watermarks-remover. La mise à jour tient en une commande.
✉️ Un moment, avant de continuer la lecture…
Le rendez-vous du dimanche : un extrait de la chronique « Un pavé dans la tech », les 4-5 infos qui comptent et un aperçu de la semaine à venir. Inscription gratuite, désinscription en un clic.
La pièce maîtresse pour les fans d’automatisation : le plugin enregistre un hook, un déclencheur exécuté par l’agent lui-même, qui passe chaque fichier écrit ou modifié au détecteur. En mode check, il signale les marques trouvées et laisse l’agent proposer le ménage. En mode clean, il nettoie directement, sans demander l’avis du modèle. Le projet documente honnêtement la limite : un hook ne peut pas réécrire les messages du chat avant que tu les lises, il ne couvre que les fichiers que l’agent écrit.
Au quotidien, un passage type tient en deux commandes : python3 service/scripts/inspect_file.py rapport.md pour voir ce qui se cache dans un fichier, puis python3 service/scripts/clean_file.py rapport.md -o rapport.nettoye.md pour produire une version propre. C’est le même réflexe que pour brancher des modèles locaux sur tes agents, comme on le détaillait dans notre test de Magnitude : la puissance reste chez toi, l’agent exécute.
Pourquoi l’utiliser et quand s’abstenir
Les usages légitimes ne manquent pas. Tu publies un document de travail préparé avec un agent et tu ne veux pas que chaque relecteur voie son historique de production. Tu envoies une photo à un service tiers et tu ne comptes pas livrer ses métadonnées avec. Tu veux simplement savoir ce qu’un fichier contient avant de le transmettre. Et tu veux tout ça sans téléverser tes contenus sur un site web anonyme qui ferait exactement ce que tu reproches aux IA.
Soyons honnêtes sur les limites, le projet l’est lui-même. La couche B améliore les chances de passer inaperçu, elle ne garantit rien : certains filigranes, en particulier les versions images de SynthID, sont conçus pour résister précisément à ce type d’attaque. La reformulation peut aussi transformer un texte que tu aimais en texte un peu moins à toi. Et un nettoyage ne se vérifie jamais assez : refais passer le scan après.
Reste la question qui fâche : le droit. L’outil est pensé pour des contenus que tu possèdes ou que tu es autorisé à modifier. Retirer la provenance d’une photo de presse, d’une œuvre ou du contenu de quelqu’un d’autre n’est pas l’usage prévu, et peut poser de vrais problèmes légaux. Il faut aussi se rappeler pourquoi ces marques existent : elles aident à repérer les contenus truqués et les deepfakes. Les effacer sur tes brouillons, oui. Les effacer partout par principe, c’est choisir l’aveuglement collectif.
Si tu aimes l’idée d’un assistant qui respecte ce qu’il ne doit pas voir, on avait déjà vu avec notre article sur l’agent et le coffre-fort de mots de passe qu’un agent bien réglé peut rester aveugle sur ce qui compte. Watermarks Remover complète la panoplie dans l’autre sens : il s’occupe de ce que tes outils laissent derrière eux.
La transparence mérite un interrupteur
Le débat est lancé partout : les régulateurs veulent de la traçabilité, les fournisseurs veulent des preuves, les utilisateurs veulent un peu de tranquillité. Les deux peuvent cohabiter, à une condition : que ce soit toi qui décides de ce que tes fichiers racontent. Un projet open source qui tourne chez toi, dont tu peux lire les 275 commits et la licence, remet juste la main sur le commutateur.
La prochaine fois qu’un texte sorti d’une IA te semblera suspectement lisse, lance le détecteur. Tu découvriras peut-être que ton document parlait de toi dans ton dos.
Sources
Watermarks Remover — le dépôt GitHub officiel du projet, avec le README complet et les instructions d’installation.
La note de version v0.7.0 — le détail des nouveautés de septembre : reformulation en service, retrait des marques audio et vidéo.
SynthID — la page officielle de Google DeepMind sur le filigrane invisible des contenus générés.
C2PA — le site du standard de traçabilité des médias, avec la spécification complète.
—
Recherche, relecture et illustration assistées par IA. Le contenu reflète le travail éditorial de la rédaction.



No comments yet