mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-06 22:18:36 +02:00
The SDXL removal pipelines (sdxl + controlnet) were built without add_watermarker=False, so diffusers embedded its default open "Stable Diffusion XL" DWT-DCT invisible watermark on every output whenever invisible-watermark is installed (the detect extra). A watermark REMOVER was therefore replacing one detectable AI watermark (SynthID) with another: the cleaned output re-read as AI (identify -> "Open invisible watermark: Stable Diffusion XL"), observed on the SynthID validation sample. Both SDXL loaders now call a shared _disable_sdxl_watermarker helper (mirrors _maybe_add_fp16_vae; the ControlNetModel sub-model and the Qwen loader never call it, since only the pipeline accepts the kwarg). Verified end to end: the affected outputs re-run clean (is_ai=None, no open watermark). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>