DWT/DCT Watermark Remover — Detect and Disrupt Stable Diffusion Invisible Watermarks
Detect and disrupt the CompVis invisible-watermark library signature (dwtDct) used by Stable Diffusion. Files stay on your device.
Drop a PNG or JPEG image
DWT/DCT invisible watermarks are detected and disrupted in your browser. Nothing is uploaded.
Intended use
- Intended for personal privacy protection: removing metadata and watermarks from files you own before sharing online. Not intended for: academic dishonesty, platform ToS circumvention, or misrepresenting content origin.
- Full dwtDct detection requires the invisible-watermark WASM library. Current detection is a Phase 1 placeholder.
- The disruption pass is generic and may not fully remove the watermark signal. Treat the output as 'best-effort sanitized.'
Stable Diffusion and many of its derivatives embed an invisible watermark into every generated image. This is not a visible logo or a metadata chunk — it is a 48-bit message encoded into the frequency-domain coefficients of the pixel data using the Discrete Wavelet Transform (DWT) and Discrete Cosine Transform (DCT). The implementation comes from the CompVis invisible-watermark library, which is bundled by default in most SD pipelines including Automatic1111, ComfyUI, and Stability AI’s official releases.
When the SD image pipeline writes a PNG or JPEG, the dwtDct encoder transforms a 48-bit payload (containing a fixed signature or configurable message) into wavelet-coefficient perturbations. These perturbations are imperceptible to the eye but detectable by the matching decoder. Detectors like the open-source invisible-watermark Python package and Hugging Face’s watermark detection demos use this same library to check whether an image originated from Stable Diffusion.
This tool targets that watermark. In Phase 2, the WASM-compiled dwtDct decoder will read the probability score and decode the 48-bit message from the image. In Phase 1, a generic humanization pipeline (micro-blur, fractional rescale, brightness perturbation) provides a best-effort disruption pass. The goal is to give you control over whether your images carry the Stable Diffusion origin signature — entirely in your browser, with no files uploaded.
How to use
Drop a PNG or JPEG image
Drag any PNG or JPEG into the drop zone. The file is read in your browser and never leaves your device. The detector looks for DWT/DCT watermark signatures embedded by the CompVis invisible-watermark library.
Read the detection result
The tool reports the detection probability, any decoded watermark string, and the evidence list. Full dwtDct detection requires the invisible-watermark WASM library (Phase 2). In the current phase, a generic humanization pipeline is applied as a best-effort disruption pass.
Download the cleaned image
The disruption pass applies micro-blur, resample, and brightness perturbation to degrade the frequency-domain watermark signal. The filename gets a `-dwt-dct-clean` suffix.
Frequently asked
What is the dwtDct watermark?
dwtDct (Discrete Wavelet Transform / Discrete Cosine Transform) is the watermarking method used by the CompVis invisible-watermark library, which is bundled with Stable Diffusion and many downstream tools. It embeds a 48-bit message into the frequency-domain coefficients of the generated image. Variants include dwtDctSvd and RivaGAN.
Which models use this watermark?
Stable Diffusion XL and many community fine-tunes embed the dwtDct watermark by default via the CompVis library. Models built on the SD pipeline — including some NovelAI, Automatic1111, and ComfyUI workflows — may also carry it, though the watermark is configurable and can be disabled.
Can I read the decoded watermark string?
In Phase 2 (with WASM support), the tool will decode the 48-bit message to reveal the original watermark payload. The current Phase 1 placeholder reports detection-only metadata and applies a generic disruption pass.
Are my images uploaded?
No. Detection and disruption both run in your browser. The image bytes are read, parsed, and rewritten in JavaScript. No network call is made, no server sees the content, and nothing is stored between sessions.
Limitations
- Phase 1 WASM dependencyFull dwtDct detection and decoding requires the invisible-watermark WASM library compiled from the CompVis repository. This is planned for Phase 2. Currently, the tool applies a generic humanization pipeline as a disruption fallback.
- PNG and JPEG onlyThe tool handles PNG and JPEG inputs. WebP, AVIF, and other formats are not yet supported.
- Generic disruption onlyWithout WASM-based detection, the disruption pass cannot target the specific DWT/DCT frequency bands. The humanization pipeline is a general-purpose blur+resample+perturbation pass that may degrade the watermark signal but is not optimized for dwtDct.
Platform notes
- macOS
- No native macOS tool can detect or remove dwtDct watermarks. Preview.app does not surface any invisible-watermark indicators. The invisible-watermark Python library can be used via CLI if you have a Python environment set up.
- Windows
- Windows has no built-in invisible-watermark awareness. Any tool claiming to detect dwtDct watermarks without access to the CompVis library is heuristic-only.
- Linux
- CLI alternative: the `invisible-watermark` Python package can detect and decode dwtDct watermarks. For scripted disruption, the humanization pipeline in this tool is exposed as a pure-function module — see `src/lib/ai-cleanup/image-effects.ts` in the open-source release.
- Web
- Runs entirely client-side. The file is read into a Uint8Array, heuristic detection is performed, and the humanization pipeline produces a Blob URL for download. No upload, no server roundtrip, no telemetry.