{"adoption": {"forks": 496, "observed_at": "2026-08-28T04:09:14.062533+00:00", "stars": 5278}, "canonical_url": "https://ross.abutalabs.com/products/remove-ai-watermarks", "card": {"archived": false, "artifact_type": "library", "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.", "domain": ["image-processing", "privacy", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["image-processing", "video-processing", "computer-vision", "cli", "privacy"], "health_score": 100, "homepage": "https://raiw.cc", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["wiltodelta/remove-ai-watermarks"], "name": "wiltodelta/remove-ai-watermarks", "platform": ["python", "cli", "windows"], "pushed_at": "2026-08-26T18:22:38+00:00", "repo": "wiltodelta/remove-ai-watermarks", "stars": 5278, "tags": ["watermark-removal", "synthid", "c2pa", "content-credentials", "exif", "xmp", "iptc", "metadata-stripping", "generative-ai", "diffusion-models", "stable-diffusion", "gemini", "provenance", "invisible-watermark", "video-watermark", "metadata", "video", "command-line", "linux", "macos", "gpu"], "topics": ["cli", "computer-vision", "diffusion-models", "image-processing", "metadata", "python", "watermark-removal", "c2pa", "gemini", "synthid", "ai-watermark", "content-credentials", "exif", "flux", "generative-ai", "nano-banana", "stable-diffusion", "comfyui", "watermark-remover", "video-processing"], "urls": [], "use_cases": ["remove the Gemini sparkle watermark from my AI-generated image", "strip C2PA content credentials and 'Made with AI' metadata from photos", "remove SynthID invisible watermark from images I generated", "clean visible AI marks from Sora or Veo videos", "batch process a directory of AI images to remove watermarks and metadata", "identify what AI provenance signals exist in an image or video", "erase a selected region of an image to remove a vendor label"], "what_it_is": "A Python library and CLI for removing AI watermarks and provenance metadata from images and video the user generated themselves. It handles visible vendor marks (Gemini sparkle, Sora, Veo, Kling, etc.), invisible pixel watermarks like SynthID via diffusion/VAE regeneration, and metadata such as C2PA, EXIF, XMP, and IPTC.", "when_to_avoid": ["you want to remove watermarks from third-party or stock content you do not own - the project explicitly targets only your own generated content", "you have no GPU and need invisible watermark removal, which requires CUDA", "you need a fully hosted no-install solution - the companion site raiw.cc offers that instead"], "when_to_choose": ["you need to clean provenance marks from AI content you own, across visible, metadata, and hidden pixel layers", "you want a scriptable CLI or Python API with batch processing for images and video", "you need SynthID removal via GPU-based regeneration with face restoration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/remove-ai-watermarks", "repo": "wiltodelta/remove-ai-watermarks", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:14.062533+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:59:18.103164+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70e7012faa1850fce3d1b4199f5fccd5cb11cd3320fb12bbcaf6a9ce2fd2dc07", "fetched_at": "2026-08-28T04:09:14.062533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wiltodelta/remove-ai-watermarks"}, {"content_hash": "117e32d817a27f28c274d1718c537f55d508ad640223ee29b2c83bfa8563f156", "fetched_at": "2026-08-29T08:54:11.736962+00:00", "kind": "homepage", "missing": false, "url": "https://raiw.cc"}, {"content_hash": "a9b894c72202596e906ef66a9536f064430bb75a173ea0162ebaae508d955e24", "fetched_at": "2026-08-29T08:54:11.746562+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/remove-ai-watermarks/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 11, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 161, "days_push": 7, "days_rel": 6, "gap_med": 0.0, "n_releases_24m": 79}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}