Skip to content

Releases: Vitruves/firemark

firemark v0.1.3

10 Mar 20:15

Choose a tag to compare

firemark v0.1.3

New features

  • Smarter anti-AI strips — Adversarial prompt-injection strips now auto-detect content-dense regions and
    overlay them there, preventing simple cropping attacks.
  • QR code placement — New --qr-code-position and --qr-code-size flags for precise QR code control (center,
    corners).
  • WebP & TIFF support — Full input/output support for .webp, .tif, and .tiff formats.
  • 3 new filigrane patterns — plume (flowing feather curves), constellation (star nodes connected by a
    geometric web), ripple (overlapping elliptical wave fronts).

Improved

  • All filigrane patterns are now visibly stronger and truly random — Every pattern (guilloche, rosette,
    crosshatch, border, lissajous, moiré, spiral, mesh) renders with higher visibility and heavy per-render
    randomization: jittered positions, variable frequencies, random element counts, and structural variation.
    No two renders are pixel-identical.
  • Example configuration file — Added examples/config/firemark.toml with ultra-secure and light presets.

Full changelog

See CLI.md for the complete flag reference (70+ options).

v0.1.2 — AI-Removal Hardening

09 Mar 18:32

Choose a tag to compare

v0.1.2 — AI-Removal Hardening

What's new

Non-deterministic rendering — Every output is now unique, even with identical settings. Universal post-render perturbation (alpha jitter, sub-pixel color noise, edge micro-dots, sparse ghost pixels) is applied automatically to all watermark types. Per-renderer randomization has been added across all 17 styles, filigrane patterns, and shape/text/effect renderers. This makes pixel-perfect AI removal impossible.

Anti-AI on by default — Adversarial prompt-injection strips are now embedded automatically. These confuse AI-based watermark removal tools by injecting conflicting instructions. Disable with --no-anti-ai if you don't want the visible prompt text.

Automatic update check — firemark now checks crates.io for newer versions on startup.

Changes

  • --anti-ai replaced by --no-anti-ai (anti-AI is now opt-out, not opt-in)
  • All 17 watermark types now produce non-deterministic output
  • All 8 filigrane pattern generators randomized (guilloche, rosette, crosshatch, moiré, border, mesh,
    spiral, lace)
  • Shared text background (used by 7 renderers) gains grid phase offset, per-cell position jitter, and
    opacity jitter
  • New src/watermark/perturb.rs module applies universal perturbation to every render

Install / upgrade

cargo install firemark