Skip to content

Releases: PyModel/watermark-remover

v0.1.0 — first release

Choose a tag to compare

@elkaix elkaix released this 13 Aug 03:47

First public release. Tools for finding and removing AI provenance signals from files you own, across four channels.

Layers

  • A — hidden Unicode (clean_text): context-aware deterministic scrub of zero-width characters, bidi controls, Unicode tags, and exotic spaces. Verifiable: reports exactly what was removed.
  • B — token-distribution text watermarks (rewrite): paraphrase, back-translation, structural rewrite, and TSAPA-style evolutionary search over a local Ollama or OpenAI-compatible endpoint. Best-effort, labeled as such.
  • V — visible image marks (remove_visible): MorphoMod masking, hole fill, dilation, texture-patch synthesis, and optional external inpainting (LaMa, MI-GAN, diffusion). Mask removal verifiable; fidelity best-effort.
  • M — metadata (clean_image, clean_file): format-aware C2PA, EXIF, and XMP rewrite for JPEG, PNG, HEIF/AVIF, PDF, and OOXML/ODF containers.
  • Soft binding (inspect_soft_binding): detects embedded and remote C2PA manifests. Detection and warning only.
  • SynthID: optional external adapter, scoring only.

Also in this release

  • Batch processing with glob validation and safe input-to-output mapping
  • Atomic writes, guarded backups, and bounded reads throughout; in-place edits validate the full transform before overwriting
  • Symlink rejection on input roots and outputs
  • Gradio demo (demo.py) wrapping the cleaning pipeline
  • --disable-thinking / --allow-thinking for reasoning models, with WATERMARKS_REWRITE_DISABLE_THINKING env fallback

Install

Python 3.10+, standard library only. Networks, models, GPUs, and system binaries (exiftool, c2patool, pypdf) sit behind opt-in adapters.

git clone https://github.com/Pythoughts-labs/watermark-remover.git
cd watermark-remover
python skills/remove-ai-marks/scripts/clean_text.py --help

Honesty contract: deterministic cleaners report exactly what they removed. Rewrite, inpainting, and detector-evasion methods are labeled best-effort. Nothing here certifies that a vendor detector will fail.