v0.6.4: visible Doubao removal + universal eraser + audio/video metadata strip
Visible Doubao watermark removal + universal region eraser
remove-ai-watermarks visible now also removes the visible Doubao "豆包AI生成" corner text strip, alongside the Gemini sparkle. --mark auto (default) routes between the two by detector confidence; --mark gemini / --mark doubao force one. The Doubao path anchors the bottom-right box by geometry (the mark scales with image width), extracts the light low-saturation glyphs with a polarity-aware white top-hat mask, and inpaints them (cv2). Deterministic, offline, no GPU (~30 ms). Best on photo/illustration backgrounds; on high-contrast edges a faint residue can remain, and a dense-text background is left untouched rather than smeared.
New remove-ai-watermarks erase --region x,y,w,h is a universal, position- and colour-agnostic eraser for any logo / watermark / object you box. Default cv2 backend is instant and dependency-free; optional big-LaMa via onnxruntime (lama extra, Carve/LaMa-ONNX, model downloaded on first use) gives cleaner fills on textured regions at ~3-4 GB RAM per call. --region is repeatable.
Container metadata strip for audio/video via ffmpeg
remove-ai-watermarks metadata --remove now strips container metadata from non-ISOBMFF audio/video — WebM / Matroska, MP3, WAV, FLAC, OGG — via a lossless ffmpeg stream copy (-map_metadata -1 -map_chapters -1 -c copy). Codec data is untouched; only container tags/chapters (ID3, RIFF, Vorbis comments, EBML tags) are dropped. Requires ffmpeg on PATH (raises a clear error if absent). MP4/MOV/M4V/M4A and AVIF/HEIF/JXL continue to use the no-re-encode ISOBMFF box stripper.
Verified end-to-end on a real ffmpeg-made WAV/MP3 carrying a "Suno AI" title tag → tag removed, audio preserved.
Evaluated but not built: Resemble PerTh audio detection — its get_watermark() returns a raw bit array with no presence/confidence flag, so reliably distinguishing watermarked from clean audio isn't feasible with the public API (same wall as the SynthID pixel detector). AVIF/HEIF EXIF/XMP stored as meta-box items also remains a gap (would need exiftool).