v0.8.5
Bug fix
--protect-text and --protect-faces are now off by default.
Both features were inadvertently shielding SynthID from removal:
- Text protection re-scrubs detected text blocks at high resolution after the global pass. The per-region re-scrub may not be strong enough to re-destroy SynthID at the effective upscaled resolution, leaving the watermark intact in text areas even after it was removed everywhere else.
- Face protection literally pastes back the original (pre-diffusion) face pixels after the global pass -- SynthID is guaranteed to survive in face regions, regardless of strength.
Verified June 2026 on gpt-image 1600x1600 via openai.com/verify: same image, with --protect-text SynthID detected; without, SynthID removed.
Both are now opt-in (--protect-text / --protect-faces) and considered experimental. The default all and invisible commands run the full-image diffusion pass with no region shielding.
pip install -U remove-ai-watermarks
remove-ai-watermarks all image.png -o clean.png
Also adds docs/synthid.md -- a primary-source technical reference for how SynthID-Image works, what it survives, and what removes it (arXiv:2510.09263, arXiv:2605.09203).