Hysen Labs
Open-source project
Vitruves/firemark avatar
Vitruves

firemark

Stop sending naked documents. Firemark watermarks images & PDFs in one command. Optimized to tackle AI watermark removal. Written in Rust.

100 stars7 forksRustMIT
01
DEEP OPEN-SOURCE ANALYSIS

firemark: watermark everything before you send it

Firemark stamps watermarks on images and PDFs from the command line, offering 17 styles, banknote style filigrane, and non deterministic rendering meant to survive AI based removal.

02
DEEP OPEN-SOURCE ANALYSIS

Why bother watermarking at all?

The README makes the case with a rental scam. You send an unmarked copy of your ID or a pay stub to a landlord, the landlord disappears, and your documents get used to open accounts or take loans. A visible overlay naming the recipient and the purpose makes the document useless anywhere else. Firemark is the tool that does this in one command.

03
DEEP OPEN-SOURCE ANALYSIS

What do the styles look like?

Seventeen styles ship with the tool. Diagonal is the default, a full page repeating diagonal text. Then come stamp with a large centred double bordered mark, stencil lettering, typewriter text, a handwritten style signature, full width redaction bars, a badge, ribbon, seal, frame, tile, mosaic, weave, ghost, watercolor, noise, and halftone. Output lands next to the input as name-watermarked.ext unless you set an explicit output path or a custom suffix.

04
DEEP OPEN-SOURCE ANALYSIS

What is the security filigrane for?

On top of the visible text sits a filigrane layer inspired by banknote security. These fine geometric patterns are meant to be very hard to scrub with an image editor. The default is guilloche, sinusoidal wave bands, with rosette, crosshatch, border, lissajous, moire, spiral, mesh, plume, constellation, and ripple as options, plus a mode that combines everything.

05
DEEP OPEN-SOURCE ANALYSIS

How does it fight AI removal?

Every render is non deterministic by default. Firemark adds post render perturbation, alpha jitter, sub pixel colour noise, edge micro dots, and sparse ghost pixels, plus per renderer randomness, so two outputs are never pixel identical. The idea is to stop AI vision models from learning a predictable pattern to subtract. Prompt injection strips are embedded by default to confuse removal tools, and a flag disables them if you do not want visible prompt text.

06
DEEP OPEN-SOURCE ANALYSIS

How is it configured?

A TOML config file saves you from repeating flags. The example includes two presets: ultra-secure with dense tiling, full filigrane, QR traceability, and metadata stripping, and a light one with simple diagonal text and no extras. Input and output cover PNG, JPEG, PDF, WebP, and TIFF, and prebuilt binaries exist for Linux and macOS on both x86 64 and arm64.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes