remove-ai-watermarks : analyse pratique de wiltodelta/remove-ai-watermarks
Dissolvant de filigrane AI. Bibliothèque CLI et Python pour supprimer les filigranes IA visibles et invisibles (Gemini / Nano Banana sparkle, SynthID) et les métadonnées de provenance (C2PA, EXIF, IPTC) des images.
En bref
- De quoi s’agit-il ?
- AI watermark remover. CLI and Python library to strip visible and invisible AI watermarks (Gemini / Nano Banana sparkle, SynthID) and provenance metadata (C2PA, EXIF, IPTC) from images. Cette analyse s'en tient aux usages et limites décrits par le dépôt.
- À qui s’adresse-t-il ?
- Pour vérifier remove-ai-watermarks, partez du README de wiltodelta/remove-ai-watermarks et reprenez exactement la commande d'installation ou l'exemple qu'il donne. Utilisez une entrée de test contrôlée, notez la sortie, le code de retour et les fichiers touchés, puis répétez le cas après redémarrage.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Ce que traite cet outil
Le dépôt fournit une interface en ligne de commande et une bibliothèque Python pour supprimer les signaux de provenance IA des images et des vidéos. Selon le README, trois catégories sont visées : les étiquettes visibles connues comme le sparkle Gemini et les marques texte des fournisseurs, les filigranes de pixels invisibles via la régénération par diffusion, et les métadonnées comme C2PA, EXIF, XMP, IPTC et les champs IA associés. La documentation précise explicitement que le projet est destiné à un usage licite sur du contenu que vous possédez, et ne cible pas les aperçus d'agences de photos ni les filigranes protégeant du contenu payant tiers. Le README renvoie à une note distincte legal-and-safety pour les détails de portée ; cette note n'est pas incluse dans les métadonnées du dépôt.
Suppression des marques visibles
La suppression des marques visibles suit un processus en trois étapes : détecter une marque enregistrée dans sa zone attendue, construire un masque autour d'elle, puis remplir uniquement la zone masquée avec OpenCV, MI-GAN ou LaMa. Le README liste les marques visibles prises en charge, notamment le sparkle Google Gemini et Nano Banana, ainsi que les étiquettes texte de Doubao, Jimeng, Qwen, Kling, Yuanbao, Baidu, LibLibAI et RunningHub, plus une variante calibrée de l'étiquette Samsung Galaxy AI. La commande visible utilise par défaut `--mark auto`, qui vérifie toutes les marques enregistrées et supprime toutes les correspondances. Une commande `erase` séparée accepte des régions explicites avec des coordonnées `x,y,largeur,hauteur`.
Suppression des métadonnées et de la provenance
La suppression des métadonnées est adaptée au format. Le README indique que la suppression des métadonnées JPEG préserve le scan d'image encodé au lieu de le recompresser ; les valeurs natives TC260 dans MP4/MOV sont effacées sans modifier les tailles de boîtes ni les offsets média ; les autres conteneurs pris en charge utilisent leur chemin de métadonnées correspondant. Les types de métadonnées pris en charge incluent C2PA, EXIF, XMP, IPTC, les paramètres de génération courants, les étiquettes AIGC TC260 chinoises et plusieurs signaux spécifiques aux fournisseurs. La commande `metadata` écrase la source en place lorsque `-o` est omis, tandis que la commande vidéo métadonnées écrit `<source>_clean` et préserve l'original. Pour MP4 et MOV, l'inspection inclut la balise native TC260 `AIGC` dans `moov.udta.meta.keys/ilst`, même lorsque `moov` est placé après la charge utile média.
Support vidéo
Les commandes vidéo couvrent l'identification de provenance, le nettoyage visible-plus-métadonnées, les lots de dossiers et la suppression des marques visibles de Sora, Veo, Seedance, Dola, Hailuo et Kling. Le README précise que Sora couvre la mascotte mobile Sora 2 et le mot-symbole, Veo couvre à la fois le losange à quatre points actuel et l'ancien texte `Veo`, Seedance couvre l'étiquette `AI` encadrée fixe, Dola couvre le texte fixe `Dola AI`, Hailuo couvre l'étiquette composite `MINIMAX | hailuo AI`, et Kling couvre l'étiquette `KLING AI` en bas à droite avec son suffixe de version. Le chemin vidéo visible scanne la séquence complète avant de modifier les pixels, n'accepte qu'une marque qui se répète à une position stable sur des trames adjacentes, et réutilise les mêmes backends de remplissage OpenCV, MI-GAN ou LaMa que pour les images. L'audio est copié sans ré-encodage ; le flux vidéo est transcodé car ses pixels changent. Un passage de flux optique gardé aligne par défaut le remplissage précédent accepté ; `--no-temporal-consistency` le désactive. L'encodeur préserve l'échantillonnage chroma 8 bits pris en charge, les étiquettes de couleur et l'échelle de temps des pistes MP4/MOV. Les entrées HDR, PQ/HLG et supérieures à 8 bits sont rejetées avant l'encodage.
Suppression des filigranes invisibles
La suppression des filigranes invisibles régénère l'image via un pipeline de diffusion pour perturber les filigranes de pixels et de domaine fréquentiel. Le README décrit le profil par défaut `qwen-zimage` comme un passage Qwen-Image-2512 Lightning sous Canny ControlNet, suivi d'une réparation Z-Image masquée par SAM des visages détectés. Le profil alternatif `sdxl-zimage` remplace l'étape globale par SDXL et conserve la même étape de visage. Les deux profils sont uniquement CUDA, sans fallback CPU ou MPS. Pour SynthID vidéo, la commande `video invisible` utilise le profil certifié `noise_std=0.15`, qui a réussi une calibration à deux porteuses et un contrôle oracle complet de huit secondes sur un échantillon Veo public. Comme Google ne publie pas de décodeur local, la documentation recommande de revérifier les fichiers particulièrement importants ou après des changements de fournisseur ; ce n'est pas un état de résultat produit.
Installation et aperçu des commandes
L'installation se fait via uv. Le paquet par défaut `remove-ai-watermarks` fournit l'inspection et la suppression des métadonnées. Les extras activent des fonctionnalités supplémentaires : `[visible]` pour la détection et la suppression visibles, `[video]` pour le traitement vidéo visible, `[video,diffusion]` pour la suppression SynthID vidéo, `[detect]` pour la détection DWT-DCT sans torch, `[qwen-zimage]` pour la suppression d'image invisible, et `[all]` pour toutes les fonctionnalités de production. Le README montre des commandes de démarrage rapide comme `uv tool install remove-ai-watermarks` suivi de `remove-ai-watermarks identify image.png`, et après installation de `[visible]`, `remove-ai-watermarks visible image.png -o clean.png`. Pour la vidéo, `video metadata`, `video all`, `video visible` et `video invisible` gèrent les tâches respectives, et `batch` et `video batch` traitent les dossiers. Les commandes affichées sont des exemples littéraux ; le README ne fournit pas de référence complète des paramètres.
Limitations et vérification
Le README énumère plusieurs limitations. Un signal local manquant signifie inconnu, pas propre ; des filigranes de pixels propriétaires peuvent subsister après suppression des métadonnées. La suppression visible reconstruit une petite région ; les résultats dépendent de l'arrière-plan et du backend de remplissage choisi. La suppression invisible modifie toute l'image et peut altérer les visages, le texte ou les détails fins. La suppression vidéo visible ne reconnaît pas l'ancien tourbillon d'angle Sora Turbo ni les mises en page non enregistrées de ces fournisseurs. La régénération SynthID vidéo change la résolution, la fréquence d'images et les détails de l'image, et aucun décodeur local public ne peut certifier une sortie arbitraire à l'exécution. Le profil fourni est certifié oracle pour les cas testés, mais la documentation recommande de revérifier les sorties importantes après des changements de fournisseur. Le README mentionne également un outil de recherche `scripts/video_synthid_sweep.py` et une calibration avec deux clips le 2026-07-29 où les deux contrôles appariés étaient positifs dans le vérificateur intégré de Gemini, et un suivi le 2026-07-31 où `0.10` était encore détecté et `0.15` ne l'était pas, faisant de `0.15` le défaut certifié.
Essai concret avec remove-ai-watermarks
Pour vérifier remove-ai-watermarks, partez du README de wiltodelta/remove-ai-watermarks et reprenez exactement la commande d'installation ou l'exemple qu'il donne. Utilisez une entrée de test contrôlée, notez la sortie, le code de retour et les fichiers touchés, puis répétez le cas après redémarrage. Cette trace permet de distinguer une capacité documentée d'une hypothèse. Le matériau ne précise pas les comportements que le README ne décrit pas, notamment la couverture complète, les performances sur de gros volumes et la compatibilité avec toutes les versions. Ces points doivent rester ouverts avant une intégration dans un produit. Pour une équipe, examinez aussi la licence Apache-2.0 et les fichiers de configuration réellement présents dans wiltodelta/remove-ai-watermarks.
Conclusion éditoriale
Pour vérifier remove-ai-watermarks, partez du README de wiltodelta/remove-ai-watermarks et reprenez exactement la commande d'installation ou l'exemple qu'il donne. Utilisez une entrée de test contrôlée, notez la sortie, le code de retour et les fichiers touchés, puis répétez le cas après redémarrage. Cette trace permet de distinguer une capacité documentée d'une hypothèse. Le matériau ne précise pas les comportements que le README ne décrit pas, notamment la couverture complète, les performances sur de gros volumes et la compatibilité avec toutes les versions. Ces points doivent rester ouverts avant une intégration dans un produit. Pour une équipe, examinez aussi la licence Apache-2.0 et les fichiers de configuration réellement présents dans wiltodelta/remove-ai-watermarks. remove-ai-watermarks s'adresse aux lecteurs dont le besoin correspond à ce périmètre et qui peuvent effectuer cet essai sur leur environnement. Il ne convient pas à une décision fondée sur des garanties que le README ne formule pas.
Notes de la communauté