Zurück zu den Updates
New releaseSep 4, 2026

remove-ai-watermarks v0.37.1

Entfernt sichtbare und unsichtbare KI-Wasserzeichen sowie Provenienz-Metadaten aus Bildern und Videos. Python-Bibliothek und CLI für SynthID, C2PA, EXIF, IPTC, XMP und gängige Markierungen generativer KI.

Teilen

KI-Wasserzeichen entfernen

Entferne KI-Herkunftskennzeichnungen aus Bildern und Videos, die du selbst erstellt hast:

  • bekannte sichtbare Labels wie das Google Gemini Sparkle-Wasserzeichen und Anbieter-Textmarken;
  • unsichtbare Pixel-Wasserzeichen durch direkte Störung des lokalen Formats oder Diffusions-Regeneration;
  • C2PA-, EXIF-, XMP-, IPTC- und verwandte KI-Metadaten.

Die Video-Unterstützung umfasst die Identifizierung von Herkunftsnachweisen, die vollständige Bereinigung von sichtbaren Markierungen und Metadaten, Verzeichnis-Batches, die Entfernung sichtbarer Markierungen von Sora, Veo, Seedance, Doubao, Dola, Hailuo AI und Kling AI sowie die oracle-zertifizierte VAE-Regeneration zur Entfernung von Video-SynthID.

raiw.cc betreibt diese Bibliothek als gehosteten Dienst, mit inkludierter GPU und ohne Installation. Die Entfernung sichtbarer Markierungen und Metadaten bei Standard-Ausgabe bis 12 MP ist dort kostenlos; Originalauflösung über 12 MP und die Entfernung unsichtbarer Wasserzeichen sind kostenpflichtig.

PyPI Python Downloads License Tests Sponsor skills.sh

Dieses Projekt ist für die rechtmäßige Verwendung bei Inhalten gedacht, die dir gehören. Es richtet sich nicht gegen Vorschauen von Stock-Agenturen oder andere Wasserzeichen, die kostenpflichtige Inhalte Dritter schützen. Siehe Umfang, Sicherheit und rechtliche Hinweise.

Wähle, was du tun möchtest

ZielBefehlGPU
Herkunftssignale und Wasserzeichen findenidentifyNein
Ein Foto anhand der Pixel klassifizieren (Opt-in, keine Herkunft)classifyNein
Bekannte sichtbare KI-Markierungen entfernenvisibleNein
Einen von dir ausgewählten Bereich löscheneraseNein
KI-Metadaten entfernenmetadataNein
Unterstützte Video-Herkunftsnachweise identifizierenvideo identifyNein
Sichtbare Markierungen und KI-Metadaten aus Video entfernenvideo allNein
KI-Metadaten aus Video entfernenvideo metadataNein
Eine registrierte sichtbare KI-Markierung aus Video entfernenvideo visibleNein
Ein Verzeichnis mit Videos verarbeitenvideo batchAbhängig vom Modus
Das kalibrierte Video-Pixel-SynthID-Entfernungsprofil anwendenvideo invisibleEmpfohlen
Ein Bild regenerieren, um unsichtbare Wasserzeichen zu störeninvisibleErforderlich (CUDA)
Sichtbare, unsichtbare und Metadaten-Entfernung ausführenallEmpfohlen
Ein Verzeichnis verarbeitenbatchAbhängig vom Modus

Microsoft Paint- und Photos-InvisMark-Deklarationen werden automatisch an die Pixel-Regeneration weitergeleitet. Der Befehl all entfernt sowohl das versteckte Pixel-Wasserzeichen als auch sein verknüpftes C2PA-Manifest; das alleinige Entfernen von Metadaten entfernt nur das Manifest. Eine spezialisierte Python-API kann die validierte lokale Watermarker.dll-Nutzlast ohne Diffusion inspizieren und stören.

Installationsmodi

BedarfInstallation
Metadaten-Inspektion und -Entfernungremove-ai-watermarks
Klassifizierung Foto versus Kameraremove-ai-watermarks[classify]
Klassifizierung von OpenAI/Google/unbekannten Quell-Exportenremove-ai-watermarks[source-classify]
Sichtbare Erkennung und Entfernungremove-ai-watermarks[visible]
Sichtbare Videoverarbeitungremove-ai-watermarks[video]
Video-SynthID-Entfernungremove-ai-watermarks[video,diffusion]
Torch-freie DWT-DCT-Erkennungremove-ai-watermarks[detect]
Direkte lokale Paint-InvisMark-Störungremove-ai-watermarks[pixels]
Unsichtbare Bildentfernung (benötigt CUDA)remove-ai-watermarks[qwen-zimage]
Alle Produktionsfunktionen, die im aktiven Python verfügbar sindremove-ai-watermarks[all]

Niedrigschwelligere und spezialisierte Extras umfassen pixels, heif, trustmark, migan, lama, diffusion, classify-onnx und source-classify. Die Installationsanleitung dokumentiert deren genaue Abhängigkeitszusammensetzung, Python-Kompatibilität und Modellanforderungen.

Schnellstart

Installiere die metadatenorientierte Standard-CLI:```bash uv tool install remove-ai-watermarks

Ein Image inspizieren:```bash
remove-ai-watermarks identify image.png

Um ein Foto anhand von Pixeln zu klassifizieren (KI versus Kamera, optionaler Anbieter), installiere das Extra und rufe classify auf. identify startet es nie:```bash uv tool install --force "remove-ai-watermarks[classify]" remove-ai-watermarks classify image.png

Anleitung: [Foto-Pixel-Klassifizierung](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/photo-classify.md).

Für ein leichtgewichtiges, sich enthaltendes Signal zur Erkennung von OpenAI/Google/unbekannten Quellenexporten nach der Metadatenentfernung verwenden Sie die separate Python-API. Es handelt sich nicht um einen SynthID-Detektor:```python
import remove_ai_watermarks as raiw

result = raiw.classify_source("image.png")
print(result.label, result.reason)

Installiere remove-ai-watermarks[source-classify]. Anleitung: source-pipeline classification.

Signierte Provenienz ist der unterstützte Weg für SynthID und identify liest sie. Es gibt keinen lokalen SynthID-Pixeldetektor im Paket. Forschung zu einem periodischen Gitter-Experten befindet sich in scripts/synthid_runtime/ und synthid-detector-research.md.

Für die Entfernung sichtbarer Wasserzeichen installiere die Pixel-Abhängigkeiten:```bash uv tool install --force "remove-ai-watermarks[visible]"

Dann entferne eine bekannte sichtbare Markierung und KI-Metadaten:```bash
remove-ai-watermarks visible image.png -o clean.png

Metadaten entfernen, ohne sichtbares Inpainting oder Diffusion auszuführen:```bash remove-ai-watermarks metadata image.png --remove -o clean.png

Ohne `-o` überschreibt dieser Befehl die Quelldatei direkt.

KI-Metadaten aus einer MP4-, MOV-, M4V-, WebM-, MKV-, AVI- oder FLV-Datei
untersuchen oder entfernen:```bash
remove-ai-watermarks video metadata input.mp4 --check
remove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4

Der Befehl video metadata transkodiert keine Video- oder Audiostreams. Anders als der obige Bildbefehl schreibt er bei Weglassen von -o <source>_clean und bewahrt das Original auf. Die MP4- und MOV-Inspektion umfasst den nativen TC260-AIGC-Tag in moov.udta.meta.keys/ilst, einschließlich eines moov, das nach der Mediennutzlast platziert ist, sowie der QuickTime-Form-meta-Varianten, die der iOS-Export von Doubao schreibt (eine bloße meta-Box als direktes moov-Kind und eine schlüssellose hdlr=mdir-Metadatenliste). Schlüsselbasierte workflow- und prompt-Einträge in derselben Metadatenlistenstruktur werden ebenfalls erkannt und entfernt, einschließlich ComfyUI-Exporten. Die MKV- und WebM-Inspektion liest die normative Platzierung Segment.Tags.Tag.SimpleTag. AVI verwendet LIST/INFO/AIGC, während FLV script.onMetaData.AIGC verwendet. Die Nicht-ISOBMFF-Formate werden zur Entfernung mit Stream-Kopie remuxt.

Verwenden Sie den produktorientierten Videopfad, um eine Datei zu identifizieren oder zu bereinigen:```bash uv tool install --force "remove-ai-watermarks[video]" remove-ai-watermarks video identify input.mp4 remove-ai-watermarks video all input.mp4 -o clean.mp4

`video all` entfernt eine stabile registrierte sichtbare Markierung, wenn vorhanden, und entfernt immer verifizierte KI-Metadaten. Wenn keines der beiden Signale gefunden wird, schreibt es dennoch einen Same-Container-Passthrough, sodass Anwendungsaufrufer einen vorhersehbaren Ausgabevertrag erhalten. Die Entfernung proprietärer unsichtbarer Videos ist standardmäßig ausgeschlossen.
`--invisible` aktiviert das verlustbehaftete, oracle-zertifizierte Video-SynthID-Profil.

Verarbeite ein Verzeichnis mit demselben Vertrag:```bash
remove-ai-watermarks video batch ./videos --mode all

Entfernen Sie eine unterstützte sichtbare Videomarkierung:```bash remove-ai-watermarks video visible input.mp4 -o clean.mp4 remove-ai-watermarks video visible veo.mp4 --mark veo -o veo_clean.mp4 remove-ai-watermarks video visible seedance.mp4 --mark seedance -o seedance_clean.mp4 remove-ai-watermarks video visible dola.mp4 --mark dola -o dola_clean.mp4 remove-ai-watermarks video visible hailuo.mp4 --mark hailuo -o hailuo_clean.mp4 remove-ai-watermarks video visible kling.mp4 --mark kling -o kling_clean.mp4

Dieser Pfad durchsucht die vollständige Sequenz, bevor Pixel geändert werden. Er akzeptiert nur eine Markierung, die sich an einer stabilen Position über benachbarte Frames hinweg wiederholt, und verwendet dann dieselben OpenCV-, MI-GAN- oder LaMa-Fill-Backends wie bei der Bildentfernung. Audio wird ohne Neukodierung kopiert und darf sein natürliches Ende erreichen; der Videostream wird transkodiert, weil sich seine Pixel ändern. Standardmäßig richtet ein abgesicherter Optical-Flow-Durchlauf den vorhergehenden akzeptierten Fill bewegungsaus und blendet ihn nur ein, wenn der nahegelegene Quellkontext übereinstimmt; verwenden Sie `--no-temporal-consistency`, um dies zu deaktivieren. Der Encoder bewahrt die unterstützte 8-Bit-Chroma-Subsampling der Quelle, Farb-Tags und die MP4/MOV-Track-Zeitskala, anstatt sich auf ffmpegs implizite Raw-BGR-Standardwerte zu verlassen. Variable Frame-Intervalle werden durch eine zeitgestempelte In-Memory-NUT-Brücke bewahrt, anstatt auf die durchschnittliche Bildrate reduziert zu werden. Nicht-Null-Startzeitstempel der Quelle werden zusammen mit dem kopierten Audio-Offset beibehalten. Der Standardwert `--mark auto` durchsucht alle Provider in einem einzigen Decode-Durchlauf und wählt die erste stabile Übereinstimmung in der unten gezeigten Spezifitätsreihenfolge aus. Übergeben Sie eine explizite Markierung, um die Erkennung auf einen Provider zu beschränken.
Sora deckt das sich bewegende Sora-2-Maskottchen und das Wortmarke ab. Veo deckt sowohl den aktuellen vierteiligen Diamanten als auch den Legacy-Text `Veo` ab. Seedance deckt das feste umrahmte `AI`-Label ab, Dola deckt den festen Text `Dola AI` ab, Hailuo AI deckt das zusammengesetzte Label `MINIMAX | hailuo AI` ab, und Kling AI deckt das Label `KLING AI` oder `KlingAI` unten rechts mit seinem Versionssuffix ab. Eine abgeschlossene Kodierung wird atomar veröffentlicht. Es wird keine Ausgabe geschrieben, wenn keine stabile Markierung gefunden wird.
HDR-, PQ/HLG- und Eingaben mit mehr als 8 Bit werden vor der Kodierung abgelehnt, anstatt stillschweigend durch OpenCVs 8-Bit-BGR-Grenze reduziert zu werden.

Wenden Sie das kalibrierte Video-Pixel-SynthID-Entfernungsprofil an:```bash
uv tool install --force "remove-ai-watermarks[video,diffusion]"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4

Dieser Pfad regeneriert die vollständige Sequenz mit einem latenten Rauschfeld, das über die Zeit hinweg geteilt wird, kopiert vollständiges Audio, entfernt Quellmetadaten und veröffentlicht den fertiggestellten Encode atomar. Das Standardprofil noise_std=0.15 hat sowohl die Zwei-Träger-Kalibrierung als auch eine vollständige öffentliche Acht-Sekunden-Veo-Oracle-Prüfung bestanden. Google veröffentlicht keinen lokalen Decoder, daher bleibt eine frische Anbieterprüfung für ungewöhnlich wichtige Dateien oder nach Anbieteränderungen nützlich, ist aber kein Produktergebniszustand. Die CLI beschreibt daher die Video-Pixel-Regenerierung, anstatt ein SynthID-Urteil pro Datei zu beanspruchen, und meldet das kopierte Audio-Wasserzeichen als UNVERIFIED.

Für die Entfernung unsichtbarer Wasserzeichen über die CLI oder die High-Level-API installieren Sie das Extra qwen-zimage. Eine NVIDIA-GPU ist erforderlich: Alle Diffusionsprofile sind CUDA-only, und es gibt keinen CPU- oder MPS-Fallback. Die spezialisierte lokale Paint-API verwendet das Extra pixels ohne CUDA.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png

Wenn die lokalen Detektoren ein unsichtbares Wasserzeichen nicht bestätigen können, du aber weißt, dass das Bild von einem KI-Generator stammt, füge `--force` hinzu:```bash
remove-ai-watermarks invisible image.png -o clean.png --force

Typografie-lastige Bilder können sich für den experimentellen Verifizierter-Text-Nachdurchlauf entscheiden. Er akzeptiert manuell geprüfte Zeichenketten und Zeilenboxen oder ein operatorverifiziertes rein geometrisches Manifest; er behandelt rohe OCR-Ausgabe niemals als Ground Truth und läuft nicht automatisch:```bash uv tool install --force "remove-ai-watermarks[text-restoration]" remove-ai-watermarks invisible image.png -o clean.png
--text-manifest verified-lines.json --force

Siehe die [CLI-Anleitung](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/cli.md#restore-operator-verified-text) für das Manifest-Schema, Kompatibilitätseinschränkungen und Oracle-Hinweise.

Siehe die [Installationsanleitung](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/installation.md) für Homebrew, uv, optionale Funktionen und die Entwicklungsumgebung.

## Beispiele

### Sichtbare Gemini-Markierung

| Vorher | Nachher |
| --- | --- |
| ![Bild mit einem sichtbaren Gemini-Wasserzeichen](https://assets.kitploit.com/production/public/readmes/7369/4f6643f46057e4a4ec503f5bf0daf7243768915090f2d7fc5ac183c2d928c5ca.png) | ![Bild nach Entfernung des sichtbaren Wasserzeichens](https://assets.kitploit.com/production/public/readmes/7369/45193ef965a27342b183a1834b01ef812f653da2ec356a81fce1aed79f1ef814.png) |

Das `after`-Raster wird aus dem verfolgten `before`-Raster über den öffentlichen Pfad generiert:```bash
uv run remove-ai-watermarks visible demo_banana_before.png \
  --backend cv2 -o demo_banana_after.png

Hochwertige unsichtbare Entfernung

qwen-zimage ist das Standardprofil: ein Qwen-Image-2512-Lightning-Durchlauf unter Canny ControlNet, gefolgt von SAM-maskierter Z-Image-Reparatur jedes erkannten Gesichts. Die Alternative sdxl-zimage tauscht die globale Stufe gegen SDXL aus und behält dieselbe Gesichts- Stufe. Ein drittes Profil, chroma-zimage, verwendet den Apache-2.0-Chroma1-Global-Durchlauf mit eigenen flachen Vendor-Untergrenzen; siehe docs/chroma1-engine-research.md für die Kalibrierung. --pipeline auto wählt sdxl-zimage für Google, chroma-zimage für Microsoft und ansonsten qwen-zimage. Alle sind nur CUDA.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png --force

| OpenAI-Beispiel vorher | OpenAI-Beispiel nachher |
| --- | --- |
| [![OpenAI portrait grid before qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/28ff8732b037f98a4ef5bc277bbcdaa32e5eb9ccbd00b6c8c616e46ef68ae8a0.png)](data/synthid/originals/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM.png) | [![OpenAI portrait grid after qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/8066deab6162ef4fba352ffb475a119bfe94f097a4f5531e0fe141cbb8e089b5.png)](docs/images/qwen-zimage/ChatGPT/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM_full_clean.png) |

| Gemini-Beispiel vorher | Gemini-Beispiel nachher |
| --- | --- |
| [![Gemini sign before qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/4affd7f27767a445db6abf741355743ba8d95108ad922c9fff045feed8492236.png)](data/synthid/originals/Gemini_Generated_Image_633uuy633uuy633u.png) | [![Gemini sign after qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/42858417874f6cd8bc7c9bdb39f6bde8aa32310a3e219e7ee2dff23a4742c7b1.png)](docs/images/qwen-zimage/Gemini/Gemini_Generated_Image_633uuy633uuy633u_full_clean.png) |

Diese exakten Ausgabedateien wurden mit den passenden Provider-Verifizierern
geprüft. Das Ergebnis gilt für diese Dateien, nicht für jeden Seed, jedes Bild
oder jede zukünftige Wasserzeichenversion.

## Häufige Rezepte

### Jede erkannte sichtbare Markierung entfernen```bash
remove-ai-watermarks visible image.png -o clean.png

Der Standardwert --mark auto prüft alle registrierten sichtbaren Markierungen und entfernt jede Übereinstimmung. Wenn die Markierung für Sie sichtbar ist, der Detektor sie jedoch übersieht, wählen Sie ihren Bereich explizit aus:```bash remove-ai-watermarks erase image.png
--region 1640,1930,400,100
-o clean.png

`--region` verwendet `x,y,width,height` und kann wiederholt werden.

### Ein gelerntes Fill-Backend verwenden

Das `visible`-Extra verwendet OpenCV-Inpainting, wenn kein gelerntes Backend installiert ist.
Für schwierigere Hintergründe enthalten die Extras für gelernte Backends automatisch
dieselben Pixel-Abhängigkeiten:```bash
uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan

| -s | --server | Server URL (default: http://localhost:8080) | | -t | --token | API token for authentication | | -o | --output | Output format: json, yaml, table (default: table) | | -v | --verbose | Enable verbose output | | -q | --quiet | Suppress non-essential output | | -h | --help | Show help message | | -V | --version | Show version information |

Examples

# List all projects
kitploit-cli projects list

# Get details of a specific project
kitploit-cli projects get --id 12345

# Create a new scan
kitploit-cli scans create --project 12345 --target https://example.com

# Export results to JSON
kitploit-cli scans results --id 67890 --output json

# Run with a custom server
kitploit-cli --server https://api.example.com --token YOUR_TOKEN projects list

Configuration

The CLI reads configuration from the following sources, in order of precedence:

  1. Command-line flags
  2. Environment variables
  3. Configuration file (~/.kitploit/config.yaml)
  4. Default values

Environment Variables

VariableDescription
KITPLOIT_SERVERServer URL
KITPLOIT_TOKENAPI token
KITPLOIT_OUTPUTDefault output format
KITPLOIT_TIMEOUTRequest timeout in seconds
KITPLOIT_DEBUGEnable debug mode (true/false)

Configuration File

server: http://localhost:8080
token: your-api-token
output: table
timeout: 30
debug: false

Exit Codes

CodeDescription
0Success
1General error
2Invalid arguments
3Authentication failed
4Resource not found
5Server error

Troubleshooting

Connection Refused

If you get a connection refused error, make sure the server is running:

# Check if the server is running
curl http://localhost:8080/health

# Start the server
kitploit-server --config /etc/kitploit/server.yaml

Authentication Errors

Verify your API token is valid and has the required permissions:

# Test your token
kitploit-cli auth verify --token YOUR_TOKEN

Debug Mode

Enable debug mode to see detailed request and response information:

kitploit-cli --verbose --debug projects list

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone the repository
git clone https://github.com/kitploit/kitploit-cli.git
cd kitploit-cli

# Install dependencies
make deps

# Build the binary
make build

# Run tests
make test

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

### CUDA-Speicherverbrauch reduzieren```bash
remove-ai-watermarks invisible image.png -o clean.png \
  --cpu-offload --force

CPU-Offloading verringert den CUDA-Speicherdruck, indem Modellkomponenten zwischen CPU und GPU verschoben werden, auf Kosten der Geschwindigkeit.

Ein Verzeichnis verarbeiten```bash

remove-ai-watermarks batch ./images --mode visible remove-ai-watermarks batch ./images --mode all

## Was das Tool erkennen kann

Die Unterstützung sichtbarer Markierungen umfasst:

- sichtbares Glitzer-Wasserzeichen von Google Gemini und Nano Banana;
- Doubao, die Jimeng-Wortmarke und die `AI生成`-Pille oben links, Qwen, Kling AI,
  Yuanbao, Baidu, die unten mittig platzierte Wortmarke von LiblibAI und die kompakte Pille oben links
  sowie RunningHub-Labels;
- eine kalibrierte Variante des weißen KI-Badges oben rechts von Microsoft;
- eine kalibrierte Variante des Samsung Galaxy AI-Labels.

Die Untersuchung von Metadaten und Provenienz umfasst C2PA, EXIF, XMP, IPTC, gängige
Generator-Parameter in Bild- und Video-Containern, China TC260 AIGC-Labels
und mehrere anbieterspezifische Signale. Optionale Decoder ergänzen die Unterstützung für offene
DWT-DCT-Wasserzeichen und Adobe TrustMark.

Die genaue Unterstützungsmatrix, einschließlich wichtiger Einschränkungen bei Locale und Detektoren, befindet sich
in [unterstützte Signale](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md). Die
[Galerie synthetischer Beispiele](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/data/fixtures/visible/README.md) enthält ein kanonisches
Beispiel für jede registrierte Bild- und Videomarkierung.

## Wie es funktioniert

Die Entfernung sichtbarer Markierungen erfolgt in drei Schritten:

1. Eine registrierte Markierung in ihrem erwarteten Bereich erkennen.
2. Eine Maske um die Markierung herum erstellen.
3. Nur den maskierten Bereich mit OpenCV, MI-GAN oder LaMa füllen.

Die Metadatenentfernung verwendet formatbewusstes Stripping. Die JPEG-Metadatenentfernung bewahrt
den kodierten Bildscan, anstatt ihn neu zu komprimieren. Native MP4/MOV TC260-Werte
und verschlüsselte Generierungsparameter werden geleert, ohne Box-Größen oder
Medien-Offsets zu verändern. Andere unterstützte Container verwenden ihren entsprechenden Metadaten-
Pfad.

Die unsichtbare Entfernung über die CLI und die High-Level-API regeneriert das Bild durch
eine Diffusions-Pipeline. Spezialisierte Aufrufer können stattdessen das positiv identifizierte lokale Microsoft Paint-Format dekodieren und stören, mit deutlich kleineren Pixeländerungen.
Keiner der beiden Wege kann garantieren, dass jeder proprietäre Verifizierer jede Ausgabe ablehnt.

Siehe [unterstützte Signale](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md) und
[bekannte Einschränkungen](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/known-limitations.md) für die vollständige technische Grenze.

## Python-API

Die API zur Entfernung sichtbarer Markierungen erfordert `remove-ai-watermarks[visible]`.```python
import remove_ai_watermarks as raiw

result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)

report = raiw.remove_visible_detailed("watermarked.png", "clean.png")
print(report.status)  # cleaned | partial | unvalidated | no_watermark

complete = raiw.remove_all("watermarked.png", "clean.png")
print(complete.visible_status, complete.visible_marks)

images = raiw.remove_batch("images", "images_clean", mode="visible")
for item in images.items:
    print(item.source, item.visible_status, item.visible_marks)

provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
print(complete.visual_invisible_action, complete.audio.watermark_status)
batch = raiw.remove_video_batch("videos", "videos_clean")
cleaned = raiw.remove_video_metadata("input.mp4")
synthid_cleaned = raiw.remove_video_invisible("input.mp4", "synthid_clean.mp4")
print(synthid_cleaned.visual_invisible_action, synthid_cleaned.audio.watermark_status)
visible = raiw.remove_video_visible("input.mp4", "clean.mp4")
print(visible.mark)
veo = raiw.remove_video_visible("veo.mp4", "veo_clean.mp4", mark="veo")
seedance = raiw.remove_video_visible(
    "seedance.mp4",
    "seedance_clean.mp4",
    mark="seedance",
)
dola = raiw.remove_video_visible("dola.mp4", "dola_clean.mp4", mark="dola")

Die High-Level-API akzeptiert einen Dateipfad oder ein BGR-NumPy-Array. Bei Pfad-Eingaben liest sie außerdem Provenienz-Metadaten, bewahrt Alpha auf und kann KI-Metadaten aus dem geschriebenen Ergebnis entfernen.

Siehe den Python-API-Leitfaden für sichtbare Entfernung, die vollständige remove_all- und remove_batch-Pipeline, Provenienz-Inspektion, Metadaten- Entfernung und Diffusion-Nutzung.

Agent-Skill

Coding-Agents können den veröffentlichten Skill installieren und diese CLI steuern:```bash npx skills add wiltodelta/remove-ai-watermarks

Claude Code kann dieses Repository als Plugin-Marktplatz hinzufügen:```text
/plugin marketplace add wiltodelta/remove-ai-watermarks
/plugin install remove-ai-watermarks@remove-ai-watermarks

Der Skill lehnt Stock-Agentur- und andere Markierungen von Drittanbietern für bezahlte Assets ab. Siehe die Agent-Skill-Anleitung.

ComfyUI

Das separate Paket ComfyUI Remove AI Watermarks bietet Nodes für sichtbare Entfernung, Erkennung, Bereichslöschung und unsichtbare Entfernung.

Wichtige Einschränkungen

  • Ein fehlendes lokales Signal bedeutet unbekannt, nicht sauber. Proprietäre Pixel- Wasserzeichen können nach dem Entfernen von Metadaten verbleiben.
  • Die sichtbare Entfernung rekonstruiert einen kleinen Bereich. Die Ergebnisse hängen vom Hintergrund und dem gewählten Fill-Backend ab.
  • Die unsichtbare Entfernung verändert das gesamte Bild und kann Gesichter, Text oder feine Details verändern.
  • Die sichtbare Videoentfernung erkennt das sich bewegende Sora 2-Wortzeichen, den aktuellen Veo- Diamanten plus den Legacy-Veo-Text, das gerahmte AI-Label von Seedance sowie die festen Doubao-, Dola-, Hailuo AI- und Kling AI-Labels. Sie erkennt nicht den älteren Sora Turbo- Eckwirbel oder nicht registrierte Layouts dieser Anbieter. Das klassische OpenCV-Backend kann strukturierte Hintergründe verschmieren; verwenden Sie MI-GAN oder LaMa, wenn die Wiederherstellungsqualität wichtig ist.
  • Die Video-SynthID-Regenerierung ändert Auflösung, Bildrate und Bilddetails. Das mitgelieferte Profil ist oracle-zertifiziert, aber kein öffentlicher lokaler Decoder kann eine beliebige Ausgabe zur Laufzeit zertifizieren. Überprüfen Sie ungewöhnlich wichtige Ausgaben nach Anbieteränderungen erneut.
  • Die Entfernung unsichtbarer Wasserzeichen über die CLI und die High-Level-API erfordert CUDA. Alle Diffusionsprofile lehnen jedes andere Gerät bei der Konstruktion ab, anstatt auf eines zurückzufallen, das sie nicht ausführen kann. Die spezialisierte lokale Paint-API, die sichtbare Entfernung, das Metadaten-Stripping und identify laufen ohne CUDA.
  • Anbieter-Wasserzeichensysteme können sich ändern. Validieren Sie wichtige Ausgaben mit dem eigenen Verifier des Anbieters, sofern einer verfügbar ist.

Der mitgelieferte Befehl video invisible verwendet das zertifizierte noise_std=0.15- Profil. Die begleitende Research-Harness scripts/video_synthid_sweep.py erstellt eine abgestimmte Re-Encode-Kontrolle plus VAE-regenerierte Kandidaten und lässt das Verifier-Urteil leer:```bash uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/

Um zu bewerten, was eine Ausgabe tatsächlich gekostet hat, verwenden Sie `scripts/video_fidelity_probe.py`:
Der PSNR der Engine selbst wird nach der Eingabe-Skalierung und vor der finalen
Kodierung gemessen, sodass nur die Probe das gelieferte Bild sieht.```bash
uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4

Die Kontrolle muss weiterhin SynthID-positiv sein, bevor ein negativer Kandidat als Entfernungsnachweis zählen kann. In der Zwei-Clip-Kalibrierung vom 2026-07-29 waren beide passenden Kontrollen im integrierten SynthID-Verifier von Gemini positiv; der stärkere Kandidat war auf beiden Trägern negativ, während ein schwächerer Kandidat auf einem negativ war. Ein späteres adversariales Follow-up, das gewöhnliches Gemini bat, das Pixel-Ergebnis neu zu interpretieren, gab UNAVAILABLE zurück; dieses Follow-up war kein erneuter Verifier-Durchlauf und entkräftet die integrierten Urteile nicht. Eine Vollclip-Prüfung vom 2026-07-31 an einem öffentlichen achtsekündigen Veo-Sample ergab, dass 0.10 noch erkannt und 0.15 nicht erkannt wurde, sodass 0.15 nun der zertifizierte Standardwert ist. Die reproduzierbaren Hashes und Urteile für diese Vollclip-Prüfung -- ein Träger, zwei Zeilen -- befinden sich in data/evaluations/video-synthid-oracle.csv. Die frühere Zwei-Clip-Kalibrierung ist nur narrativ: Ihre Urteile wurden nicht in einem versionierten Manifest festgehalten, daher ist der zertifizierte Standardwert als auf den Zeilen vom 2026-07-31 beruhend zu betrachten.

Dokumentation

Beginnen Sie mit dem Dokumentationsindex.

Forschungsnotizen und historische Experimente sind separat im Dokumentationsindex aufgeführt. Sie erklären vergangene Entscheidungen, definieren jedoch nicht die aktuelle öffentliche API.

Mitwirken

Installieren Sie die Entwicklungsumgebung und führen Sie das Projekt-Gate aus:```bash uv sync --frozen --extra dev bash maintain.sh

Siehe [Modul-Interna](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/module-internals.md), bevor Sie ein Subsystem mit dokumentierten Invarianten ändern.

## Lizenz

[Apache 2.0](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/LICENSE). Copyright 2025-2026 wiltodelta.

Kategorien