Releases: Vitruves/firemark
firemark v0.1.3
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
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