Skip to content

Releases: guillaumemeyer/watermarks-remover

v0.3.1 — stronger Layer B statistical-watermark rewrite

Choose a tag to compare

@guillaumemeyer guillaumemeyer released this 13 Aug 00:16
  • rewrite_text.py default paraphrase now performs an explicit word-choice + syntax attack (clause order, connectors, transition words, sentence boundaries, function words) rather than a generic rewrite
  • New --strength humanize: zero-shot "write like a human" pass targeting formulaic AI-style phrasing
  • New --strength code: rewrites comments, docstrings, and string literals, and renames local identifiers while preserving behavior and public API names
  • Structural pass now emits "natural, varied human prose" instead of AI-typical "clear professional style"
  • New --temperature (default 0.9) for both Ollama and OpenAI-compatible backends
  • New --candidates N: generates N rewrites and selects the most lexically diverged (bigram Jaccard distance) with a length-drift guard
  • Stronger model hygiene: prefer local open-weight models and avoid any known-watermarked vendor, not just the suspected origin
  • Residual-risk reporting now distinguishes short/highly predictable text (lower risk) from long, high-entropy prose (higher risk)
  • Docs updated in SKILL.md, removal-matrix.md, and vendor-notes.md; tests cover new prompts, divergence scoring, and candidate selection

v0.3.0 — optional SynthID pixel scoring

Choose a tag to compare

@guillaumemeyer guillaumemeyer released this 12 Aug 18:17

What's new

Optional, externally backed pixel-domain SynthID scoring for images — detection only, not removal.

  • score_synthid.py adapter for an external aloshdenny/reverse-SynthID checkout
  • inspect_image.py / clean_image.py surface the score via REVERSE_SYNTHID_DIR or --synthid-dir
  • setup_synthid.sh bootstraps the checkout (scorer-only dependencies; --full installs upstream requirements)
  • Dockerfile.synthid plus make docker-synthid-build / docker-synthid-help
  • New Makefile targets smoke-synthid and bootstrap-synthid
  • Tests for the scorer adapter, CLI unavailable path, JSON parsing, and runtime errors

Notes

The upstream scorer is not bundled; it loads from a local checkout at runtime and remains under its non-commercial Research License. Pixel watermark removal and C2PA soft binding remain out of scope.

Verification: 33 tests pass, CLI smoke passes.

v0.2.0 — c2patool false-positive fix

Choose a tag to compare

@guillaumemeyer guillaumemeyer released this 12 Aug 16:07

watermarks-remover v0.2.0

Bug-fix release: has_manifest no longer reports a clean asset as carrying a C2PA manifest.

Fixed

  • image_meta.py: parenthesised the positive has_manifest substring matches so the negative markers (no claim, no jumbf) veto all of them. c2patool reports a missing manifest as Error: No claim found, which contains the substring claim and previously matched the first positive alternative — flagging every clean PNG, JPEG, PDF, SVG and DOCX as carrying C2PA. See #3.
  • Added tests/test_c2patool_report.py — 4 cases: No claim found, No JUMBF data found, a genuine manifest, and c2patool absent.

Docs

  • Fixed broken c2patool links (repo moved to contentauth/c2pa-rs).
  • Added a disclaimer on the quality cost of text-watermark removal.

Install

git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover
mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marks

Full changelog: see README

v0.1.0 — packaging polish + provenance honesty

Choose a tag to compare

@guillaumemeyer guillaumemeyer released this 11 Aug 21:28

watermarks-remover v0.1.0

Minor release after v0.0.1: packaging polish and clearer honesty around the industry two-layer provenance model (C2PA + soft binding / SynthID-class media).

What's new

Packaging

  • Makefile with test, smoke, and install-skill
  • pytest.ini
  • Fixture samples: Markdown, HTML, SVG
  • PDF degraded-clean test path

Docs / honesty

  • Two-layer model: hard-bound C2PA (in scope) vs soft binding / pixel-audio-video watermarks (out of scope)
  • README Residual risk after a clean table + external verify links (Content Credentials, SynthID)
  • Institute of AI PM C2PA & SynthID guide in references
  • Skill report template, ethics, and removal matrix updated so metadata strip is not oversold

Unchanged (still from v0.0.1)

  • Layer A Unicode scrub, Layer B rewrite hook, multi-format container cleaners
  • Multi-vendor framing (Claude / Gemini / OpenAI / open-LLM)

Install

git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover
git checkout v0.1.0
make install-skill
make test

Full changelog: README

v0.0.1 — initial multi-vendor release

Choose a tag to compare

@guillaumemeyer guillaumemeyer released this 11 Aug 20:30

watermarks-remover v0.0.1

First public release: agent skill + stdlib Python scripts to strip multi-vendor AI provenance marks from text and files (privacy / hygiene on content you own).

What's included

Skill

  • skills/remove-ai-marks/ (replaces Claude-only remove-claude-marks)
  • Multi-vendor framing: Claude, Gemini/SynthID-class, OpenAI provenance, open-LLM sampling marks
  • Ethics-first docs: own content only; no “undetectable human” claims

Layer A — Unicode / edit-based text

  • Strip invisible controls, bidi marks, tag characters, space homoglyphs
  • inspect_text.py / clean_text.py with finer inspect kinds (bidi, tag_chars, zwj_family, …)

Layer B — statistical (token-sampling) text

  • Agent multi-pass rewrite recipe (paraphrase → back-translate → structural)
  • Optional rewrite_text.py hook: print-prompt (default), Ollama, OpenAI-compatible
  • Best-effort only — no vendor detector / secret-key claims

Files — C2PA / AI metadata

  • PNG, JPEG (existing)
  • SVG, PDF (exiftool preferred), DOCX, ODT, HTML, Markdown frontmatter
  • Unified inspect_file.py / clean_file.py

Docs & tests

  • vendor-notes.md, mark-classes.md, expanded removal matrix
  • Pytest suite (20 tests)

Optional tools

Install

git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover
mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marks

Out of scope (this release)

  • Pixel-domain image watermarks (e.g. SynthID-image)
  • Official SynthID-Text / secret-key detectors
  • Training-time / backdoor model marks

Full changelog: see README