Remove-AI-Watermarks - CLI und Bibliothek zum Entfernen von AI-Wasserzeichen aus Bildern
(github.com/wiltodelta)- Remove-AI-Watermarks ist eine CLI und Python-Bibliothek, die sichtbare Wasserzeichen, unsichtbare Wasserzeichen und AI-Erzeugungsmetadaten aus Bildern von Google Gemini (Nano Banana), ChatGPT/DALL-E, Stable Diffusion, Adobe Firefly, Midjourney und weiteren in einem Durchgang verarbeitet
- Das Entfernen sichtbarer Wasserzeichen zielt auf das Sparkle-Logo von Gemini/Nano Banana ab und wird mithilfe von Reverse-Alpha-Blending mit bekannten Alpha-Maps sowie Inpainting mit Gradientenmasken durchgeführt; es dauert etwa 0,05 Sekunden pro Bild und benötigt keine GPU
- Das Entfernen unsichtbarer Wasserzeichen schwächt Pixel- und Frequenzbereichsmuster wie SynthID, StableSignature und TreeRing durch diffusionsbasierte Regenerierung; das Standardprofil verwendet SDXL und eine native Pipeline mit etwa 1024 px
- Die Metadatenbereinigung zielt auf EXIF, PNG-Text-Chunks, XMP
DigitalSourceTypeund C2PA Content Credentials ab; dabei werden AI-bezogene Felder entfernt, die auf Instagram, Facebook und X (Twitter) das Label „Made with AI“ auslösen, während Standardmetadaten wie Author, Copyright und Title erhalten bleiben - Der unterstützte Umfang umfasst das Sparkle-Logo, SynthID und C2PA/EXIF von Google Gemini/Nano Banana/Gemini 3 Pro, C2PA von OpenAI DALL-E 3/ChatGPT, PNG-Text-Chunks und steganografische Wasserzeichen von Stable Diffusion, Content Credentials von Adobe Firefly sowie EXIF/XMP von Midjourney
- Smart Face Protection erkennt vor der Diffusionsverarbeitung Personen per YOLO, extrahiert Gesichter und blendet nach der Verarbeitung die Originalgesichter mit einer weichen elliptischen Maske wieder ein, um Verzerrungen der Gesichtszüge zu verringern
- Analog Humanizer fügt optional Filmkorn und chromatische Aberration hinzu, damit die Ausgabe wie ein vom Bildschirm abfotografiertes Bild wirkt; beschrieben wird dies als Funktion zum Umgehen von AI-Bildklassifikatoren
- Für die Installation werden
pipx install git+https://github.com/wiltodelta/remove-ai-watermarks.gitoderuv tool install git+https://github.com/wiltodelta/remove-ai-watermarks.gitempfohlen; die Standardinstallation umfasst das Entfernen sichtbarer Wasserzeichen und das Entfernen von Metadaten - Voraussetzung ist Python 3.10+; das Entfernen sichtbarer Wasserzeichen und die Metadatenverarbeitung funktionieren nur mit CPU, für das Entfernen unsichtbarer Wasserzeichen wird eine CUDA- oder MPS-GPU empfohlen, es läuft aber auch langsam auf der CPU
- Beim ersten Ausführen des Entfernens unsichtbarer Wasserzeichen werden automatisch etwa 2 GB an Modellen heruntergeladen; das Gerät wird automatisch in der Reihenfolge CUDA (Linux/Windows) > MPS (macOS) > CPU erkannt und kann mit
--deviceangegeben werden - Die CLI wird etwa mit
remove-ai-watermarks all image.png -o clean.pngverwendet, für Batch-Verarbeitung von Verzeichnissen etwa mitremove-ai-watermarks batch ./images/ --mode all; außerdem gibt es die Unterbefehlevisible,invisibleundmetadata - Die Python-API kann mit
GeminiEngineWasserzeichen erkennen und entfernen; mithas_ai_metadataundremove_ai_metadatalassen sich AI-Metadaten eines Bildes prüfen und entfernen - Die Roadmap umfasst automatische Regressionstests für SynthID-Image v2, Einschränkungen beim Entfernen interner EXIF/XMP-Daten aus AVIF/HEIF/JPEG-XL sowie eine als separates Paket geplante Video-Pipeline; das Entfernen von Nightshade/Glaze/PhotoGuard wird nicht unterstützt, da dies als Angriff auf den Schutz von Künstlern betrachtet wird
- Im rechtlichen Abschnitt wird darauf hingewiesen, dass die Kennzeichnung der AI-Herkunft in vielen Rechtsräumen reguliert ist und das Entfernen mit der Absicht, Herkunftsinformationen zu verschleiern, gegen Gesetze, den DMCA oder Plattformbedingungen verstoßen kann; die Verantwortung für die Einhaltung liegt beim Nutzer
- Das Bedrohungsmodell fokussiert sich darauf, bereits verbreitete AI-Bilder gegenüber automatischen Erkennungssystemen und „Made with AI“-Labels anzupassen, warnt aber davor, dass bei Originaldateien, die über Erstellerkonten oder Google-Systeme gelaufen sind, serverseitige Aufzeichnungen dadurch nicht anonymisiert werden
1 Kommentare
Hacker-News-Kommentare
Ich fand, dass ein Kommentar in einem anderen Thread über SynthID und OpenAI unterschätzt wurde; meiner Meinung nach trifft er gut, worum es beim Hacker-Geist in dieser Sache gehen sollte
Wir legen Wert auf Privatsphäre, also sollten wir keine Werkzeuge akzeptieren, die jede digitale Handlung mit einem Barcode versehen. Das Gegenargument „Das machen sie noch nicht“ ist ebenfalls wenig überzeugend
Der Hacker-Geist sollte vor allem darin liegen, Open-Source-Modelle lokal auszuführen, statt von Unternehmen abhängig zu sein
Sie wollen Mittel, um Menschen aufzuspüren und zu bestrafen, die ihre Macht bedrohen
Wenn Privatsphäre wichtig ist, sollte man lokale Modelle verwenden
Ich finde es eher gut, wenn etwas eine klare Kennzeichnung als KI hat, weil ich dann auch alles andere aus dieser Quelle ignorieren kann
Dieses Tool ist ein guter Weg, den Leuten genau das zu zeigen
Zum Beispiel bei aufwendigerer Objektentfernung in einem Bildeditor
Es ist witzig, dass dieser Beitrag direkt eine Zeile über dem Beitrag „OpenAI Adopts SynthID Watermarks“ steht
Bilder, die aus mit gestohlenem urheberrechtlich geschütztem Material trainierten Daten erzeugt wurden, mit einem Wasserzeichen zu versehen, fühlt sich irgendwie falsch an, auch wenn ich den Grund verstehe, echte von unechten unterscheiden zu wollen
Bei Gemini ist diese Erklärung etwas irreführend. Was sich wirklich sauber entfernen lässt, ist nur das sichtbare Wasserzeichen
Um SynthID zu entfernen, müsste man das Bild mit SDXL bei niedrigem Rauschpegel neu generieren; dabei würden wahrscheinlich viele kleine Details beschädigt, und bei hoher Auflösung würde es wohl nicht richtig funktionieren. NB2 und GPT Image 2 unterstützen eine Bildausgabe bis 4K
Alles darüber ist Upscaling und damit ähnlich wie bei SDXL. GPT Image 2 unterstützt nativ 4K, ist aber noch experimentell
Um das Gemini-Wasserzeichen zu entfernen, muss man nur die Entwicklertools öffnen und die HTTP-Anfrage an
watermarkblockierenDas Logo wird clientseitig als Overlay eingeblendet
Die Beschreibung „Passender Anwendungsfall im Threat Model: Kunst oder historische Aufzeichnungen vor falsch-positiven ‚KI-generiert‘-Labels zu bewahren“ ist schwer nachzuvollziehen
Ich verstehe nicht, was das mit dem Erzeugen von Bildern durch KI zu tun haben soll. Bildgeneratoren können keine Wasserzeichen in Dinge einfügen, die sie nicht selbst erstellt haben, und wenn das Wasserzeichen, wie im README beschrieben, so präzise ist, dass sich sogar eine bestimmte Sitzungs-ID zurückverfolgen lässt, dann scheint es auch sehr unwahrscheinlich, dass bei von Menschen geschaffener Kunst falsch-positive Wasserzeichen auftreten. Außerdem verändern Bildbearbeitungen zum Entfernen eines Wasserzeichens zwangsläufig genau das Objekt, das man angeblich „bewahren“ will
Je mehr ich lese, desto mehr bin ich überzeugt, dass die Anwendungsfälle im README Unsinn sind und der eigentliche Zweck darin besteht, KI-generiert-Labels zu umgehen, damit man KI-Müllbilder in sozialen Medien posten kann
Es ist tatsächlich sehr einfach, ein reales Bild zu nehmen und Gemini oder ChatGPT zu bitten, nur einen winzigen Teil zu ändern. Sogar kleine Änderungen wie Beleuchtung oder Schatten sind möglich, und das Ergebnis wird oft von solchen Wasserzeichen-Tools erkannt. Auf diese Weise lässt sich praktisch jedes reale Bild leicht als KI-generiertes Bild erscheinen lassen
Unabhängig davon, ob man dieses konkrete Projekt mag oder nicht, glaube ich, dass der Weg nach vorn eher im Echtheitsnachweis nicht-ki-basierter Quellen liegt als in Versuchen, alles KI-Erzeugte mit Wasserzeichen zu versehen
Wasserkennzeichnung funktioniert nur dann richtig, wenn die Methode geheim ist
Chiffretext in Hochfrequenzrauschen einzubetten ist ein alter Ansatz. Im Bereich generativer Modelle wäre es viel interessanter, die Flexibilität der Generierung zu nutzen und in makroskopische Strukturen zu kodieren
Warum nicht einfach Open-Source-Modelle verwenden?