mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-09-01 18:20:35 +02:00
One committed example per registered mark: 12 PNG (image registry) and 6 MP4 clips (video registry), generated by scripts/render_visible_examples.py from the committed silhouettes and detector templates -- never from user uploads. The generator self-verifies (exit 1 when a mark misses its own example) and tests/test_visible_examples.py holds both sides to it: registry completeness both ways, per-engine detection on the canonical example, and the shipped temporal selection accepting each clip. Second tranche of measured-but-unregistered candidates parked under scripts/assets/visible-mark-candidates/ with a README recording why none ships yet (positives do not separate from clean negatives): samsung_en, gemini_text, notebooklm, dola, mindvideo, higgsfield, jianying, capcut, zsky, chromastudio, digenai, gendo.
42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
# Visible-mark example gallery
|
|
|
|
One committed example per registered visible mark, so the repository carries a
|
|
working sample of everything it supports. `tests/test_visible_examples.py` holds
|
|
both sides to it: a mark registered without an example fails the suite, and so
|
|
does an engine that stops detecting its own example.
|
|
|
|
## What these files are
|
|
|
|
Every example is SYNTHETIC: `scripts/render_visible_examples.py` composites the
|
|
mark's committed silhouette (the same font-rendered asset the detector matches)
|
|
onto a deterministic generated base photo at the engine's measured geometry.
|
|
No user upload and no vendor asset enters the repository: corpus files under
|
|
`data/spaces/` are user content and stay out of git by policy, and the
|
|
silhouettes themselves are our own renders (`scripts/render_vendor_silhouettes.py`).
|
|
|
|
The examples demonstrate DETECTION geometry and house style, not vendor raster
|
|
fidelity; real-world variants (fonts, opacities, sizes) are covered by the
|
|
engines' calibration cohorts, which are local-only.
|
|
|
|
## Regeneration
|
|
|
|
uv run python scripts/render_visible_examples.py
|
|
|
|
The generator self-verifies: it fails (exit 1) if any registered mark does not
|
|
detect on its own example, so regeneration is the fix point for drift.
|
|
|
|
## Layout
|
|
|
|
<mark-key>/example.png 1536x2048..2048x2048 PNG, one per image mark
|
|
<mark-key>/example.mp4 960x540 90-frame clip, one per video mark
|
|
(kling carries both: it is registered in both registries)
|
|
|
|
Special cases: `gemini` composites the sparkle alpha map at the provider's
|
|
configured position; `jimeng_pill` is the capture-less pill at the measured
|
|
3:4 portrait geometry; `microsoft` is the opaque white pill with dark text
|
|
holes (the discriminator its detector keys on). Video examples composite the
|
|
detector's own synthetic template on every frame; where two marks share a
|
|
shape family the example carries the discriminative variant (`veo` the legacy
|
|
text form, `kling` the logo-plus-wordmark pair flush to the edge), because the
|
|
temporal selection resolves cross-template ties by table order.
|