About this project

Remove AI Watermarks is a Python package and command-line toolkit for working with AI-generation provenance in images and video. Its documentation states that it is intended for lawful use on content the user owns or generated and that it does not target stock-agency previews or other third-party paid-content watermarks. Image features include provenance inspection, optional AI-versus-camera and source-export classification, removal of registered visible marks, manual region erasing, and metadata stripping. Recognized visible image marks include the Google Gemini/Nano Banana sparkle, Doubao and Jimeng marks, Qwen, Kling AI, Yuanbao, Baidu, LiblibAI, RunningHub, and calibrated Microsoft and Samsung variants. Filling can use OpenCV by default or optional MI-GAN and LaMa backends. Metadata support covers C2PA, EXIF, XMP, IPTC, generator parameters, China TC260 AIGC labels, and vendor-specific signals. JPEG metadata removal is described as preserving the encoded image scan. For invisible image marks, the main CLI/API path uses diffusion pipelines such as qwen-zimage, sdxl-zimage, or chroma-zimage to regenerate the image; these pipelines require CUDA and have no CPU or Apple GPU fallback. A specialized local Microsoft Paint InvisMark path can inspect and disrupt the validated local Watermarker.dll payload with smaller pixel changes and without CUDA. An optional verified-text post-pass accepts operator-reviewed text manifests. Video commands can identify provenance, inspect or remove metadata, remove registered visible marks, process directories, and run an optional invisible-pixel regeneration profile. Supported containers include MP4, MOV, M4V, WebM, MKV, AVI, and FLV. Visible video support lists Sora 2, current and legacy Veo marks, Seedance, Doubao, Dola, Hailuo AI, and Kling AI. The detector requires a stable repeating mark across adjacent frames; audio is copied, changed video is transcoded, and temporal consistency processing is enabled by default. Metadata processing avoids stream transcoding where possible, with format-specific handling for TC260 tags and container metadata. The optional video SynthID path uses a calibrated VAE-regeneration profile with shared temporal latent noise. The project says its default noise profile passed documented provider-oracle checks on specific samples, but also notes that Google does not provide a local decoder, results are not guaranteed for every file, provider systems can change, and important outputs should be rechecked. The README reports copied audio watermark status as unverified. The package is distributed through modular extras for metadata, visible removal, video processing, detection, classification, diffusion, pixels, HEIF, TrustMark, MI-GAN, LaMa, and other features. High-level Python APIs accept file paths or BGR NumPy arrays and cover single files, batches, metadata inspection, visible removal, video processing, and diffusion workflows. The repository also documents an agent skill, a separate ComfyUI integration, and a hosted version at raiw.cc. Important limitations include possible changes to faces, text, resolution, frame rate, or fine detail; rejection of HDR/PQ/HLG and greater-than-8-bit video for the visible path; and the principle that a missing local signal means unknown rather than confirmed clean.