{"data":{"slug":"wiltodelta-remove-ai-watermarks","name":"remove-ai-watermarks","tagline":"AI watermark remover for visible and invisible marks on images","github_url":"https://github.com/wiltodelta/remove-ai-watermarks","owner":"wiltodelta","repo":"remove-ai-watermarks","owner_avatar_url":"https://avatars.githubusercontent.com/u/1192743?v=4","primary_language":"Python","stars":5612,"forks":520,"topics":["ai-watermark","c2pa","cli","comfyui","computer-vision","content-credentials","diffusion-models","exif","flux","gemini","generative-ai","image-processing","metadata","nano-banana","python","stable-diffusion","synthid","video-processing","watermark-removal","watermark-remover"],"archived":false,"github_pushed_at":"2026-09-16T23:17:45+00:00","maintenance_label":"Very active","stars_delta_30d":1250,"url":"https://www.graphcanon.com/tools/wiltodelta-remove-ai-watermarks","markdown_url":"https://www.graphcanon.com/tools/wiltodelta-remove-ai-watermarks.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/wiltodelta-remove-ai-watermarks","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=wiltodelta-remove-ai-watermarks","description":"Remove visible and invisible AI watermarks and provenance metadata from images and video. Python library and CLI for SynthID, C2PA, EXIF, IPTC, XMP, and common generative-AI marks.","homepage_url":"https://raiw.cc","license":"Apache-2.0","open_issues":0,"watchers":15,"ai_summary":"A CLI and Python library that removes various forms of AI watermarks and provenance metadata from images.","readme_excerpt":"## Installation modes\n\n| Need | Install |\n| --- | --- |\n| Metadata inspection and stripping | `remove-ai-watermarks` |\n| Photograph AI-versus-camera classification | `remove-ai-watermarks[classify]` |\n| OpenAI/Google/unknown source-export classification | `remove-ai-watermarks[source-classify]` |\n| Visible detection and removal | `remove-ai-watermarks[visible]` |\n| Visible video processing | `remove-ai-watermarks[video]` |\n| Video SynthID removal | `remove-ai-watermarks[video,diffusion]` |\n| Torch-free DWT-DCT detection | `remove-ai-watermarks[detect]` |\n| Direct local Paint InvisMark disruption | `remove-ai-watermarks[pixels]` |\n| Invisible image removal (needs CUDA) | `remove-ai-watermarks[qwen-zimage]` |\n| Every production feature available on the active Python | `remove-ai-watermarks[all]` |\n\nLower-level and specialized extras include `pixels`, `heif`, `trustmark`,\n`migan`, `lama`, `diffusion`, `classify-onnx`, and `source-classify`. The\n[installation guide](docs/installation.md#feature-extras) documents their exact\ndependency composition, Python compatibility, and model requirements.\n\n---\n\n## Quick start\n\nInstall the metadata-focused default CLI:\n\n```bash\nuv tool install remove-ai-watermarks\n```\n\nInspect an image:\n\n```bash\nremove-ai-watermarks identify image.png\n```\n\nTo classify a photograph from pixels (AI versus camera, optional provider),\ninstall the extra and call `classify`. `identify` never starts it:\n\n```bash\nuv tool install --force \"remove-ai-watermarks[classify]\"\nremove-ai-watermarks classify image.png\n```\n\nGuide: [photo pixel classification](docs/photo-classify.md).\n\nFor a lightweight, abstaining OpenAI/Google/unknown source-export signal after\nmetadata removal, use the separate Python API. It is not a SynthID detector:\n\n```python\nimport remove_ai_watermarks as raiw\n\nresult = raiw.classify_source(\"image.png\")\nprint(result.label, result.reason)\n```\n\nInstall `remove-ai-watermarks[source-classify]`. Guide:\n[source-pipeline classification](docs/source-classify.md).\n\nSigned provenance is the supported route for SynthID and `identify` reads it.\nThere is no local SynthID pixel detector in the package. Research on a\nperiodic lattice expert is in `scripts/synthid_runtime/` and\n[synthid-detector-research.md](docs/synthid-detector-research.md).\n\nFor visible watermark removal, install the pixel dependencies:\n\n```bash\nuv tool install --force \"remove-ai-watermarks[visible]\"\n```\n\nThen remove a known visible mark and AI metadata:\n\n```bash\nremove-ai-watermarks visible image.png -o clean.png\n```\n\nStrip metadata without running visible inpainting or diffusion:\n\n```bash\nremove-ai-watermarks metadata image.png --remove -o clean.png\n```\n\nWithout `-o` this command overwrites the source in place.\n\nInspect or remove AI metadata from an MP4, MOV, M4V, WebM, MKV, AVI, or FLV\nfile:\n\n```bash\nremove-ai-watermarks video metadata input.mp4 --check\nremove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4\n```\n\nThe `video metadata` command does not transcode video or audio streams. Unlike\nthe image command above, when `-o` is omitted it writes `<source>_clean` and\npreserves the original. MP4 and MOV\ninspection includes the native TC260 `AIGC` tag in\n`moov.udta.meta.keys/ilst`, including a `moov` placed after the media payload,\nplus the QuickTime-form `meta` variants Doubao's iOS export writes (a bare\n`meta` box as a direct `moov` child, and a keyless `hdlr=mdir` metadata list).\nKeyed `workflow` and `prompt` entries in the same metadata-list structure are\nalso detected and removed, including ComfyUI exports.\nMKV and WebM inspection reads the normative\n`Segment.Tags.Tag.SimpleTag` placement. AVI uses `LIST/INFO/AIGC`, while FLV\nuses `script.onMetaData.AIGC`. The non-ISOBMFF formats are remuxed with stream\ncopy for removal.\n\nUse the product-oriented video path to identify or clean a file:\n\n```bash\nuv tool install --force \"remove-ai-watermarks[video]\"\nremove-ai-watermarks video identify input.mp4\nremove-ai-watermarks video all input.mp4 -o","github_created_at":"2026-03-25T18:15:24+00:00","created_at":"2026-07-11T12:22:47.29865+00:00","updated_at":"2026-09-21T06:00:42.606032+00:00","categories":[{"slug":"computer-vision","name":"Computer Vision","url":"https://www.graphcanon.com/categories/computer-vision","markdown_url":"https://www.graphcanon.com/categories/computer-vision.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/computer-vision"}],"tags":[{"slug":"ai-watermark","name":"ai-watermark"},{"slug":"computer-vision","name":"computer-vision"},{"slug":"image-processing","name":"image-processing"},{"slug":"metadata","name":"metadata"},{"slug":"watermark-removal","name":"watermark-removal"}],"trust":{"provenance":{"is_fork":false,"github_id":1191930807,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-21T06:00:41.770Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":30,"days_since_push":4,"last_release_at":"2026-09-16T17:56:47Z","stars_delta_30d":1250,"open_issues_delta_30d":-2},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:22:48.869Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-21T06:00:42.289Z"},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-09-21T06:00:42.289Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-21T06:00:42.289Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-09-21T06:00:42.289Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":{"notes":["For invisible watermark removal, CPU only works but is slower; GPU (CUDA or MPS) recommended.","The tool supports installation without a container system and requires manual setup, including the use of pip for Python packages."],"min_ram_gb":null,"requires_docker":false},"constraints":{"min_ram_gb":null,"requires_docker":false},"when_to_use":["When you need to remove specific types of AI watermarks known as Gemini or Nano Banana sparkle.","In scenarios where SynthID watermark presence hampers image usability.","For the removal of C2PA, EXIF, and IPTC provenance metadata from images when working with Python 3.10+."],"when_not_to_use":["If you are working in an environment that does not support Python 3.10 or higher.","When watermark removal requires GPU acceleration but your system lacks CUDA or MPS support and only offers CPU (which is slower for invisible watermarks).","In compliance-driven environments where removing provenance metadata might violate terms of service or agreements regarding content credentials."],"source":"enrich:decision_facts","observed_at":"2026-07-14T19:26:15.456Z"},"constraint_facets":{"min_ram_gb":null,"requires_docker":false},"decision_summary":[{"label":"Requirements","value":"For invisible watermark removal, CPU only works but is slower; GPU (CUDA or MPS) recommended.; The tool supports installation without a container system and requires manual setup, including the use of pip for Python packages."},{"label":"Adopt for","value":"remove-ai-watermarks is a Python library and CLI that specializes in removing both visible and invisible AI watermarks such as Gemini/Nano Banana sparkle and SynthID, along with provenance metadata from images."}]}}