mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-06-05 02:28:00 +02:00
e572767555
Visible-watermark work across all three corner-mark engines plus a committed,
reproducible alpha-build pipeline (scripts/visible_alpha_solve.py) fed by committed
solid black/gray/white captures.
- jimeng: new "即梦AI" wordmark remover (reverse-alpha + thin residual inpaint,
always NCC-aligned -- the mark re-rasterizes/jitters per image). Detect via glyph
silhouette NCC (0.45 threshold; does not cross-fire with Doubao). Registered in the
visible-mark catalog; `visible --mark jimeng` / `--mark auto`.
- doubao: fix a real production defect -- the shipped remover left a READABLE
"豆包AI生成" outline on real samples while detect() returned conf 0.0 (fooled by a
thin outline), so the test passed and the "56/56 clean" claim was detector-measured,
not visual. Root cause: under-estimated alpha + fixed-geometry-no-inpaint + tight
locate box. Rebuilt alpha (careful gray-self solve), always-align, thin inpaint,
widened locate box -> readable outline becomes faint texture-level traces.
- gemini: rebuild gemini_bg_{96,48} from our own controlled captures (validated NCC
0.9998 vs the prior third-party asset); removal re-verified clean, no behaviour change.
- tests: add textured-shift regression to both engines (guards the align-on-shift path
the Doubao defect exposed; lesson: a detector-only removal test is insufficient,
assert visual residual).
- docs: CLAUDE.md, README, capture READMEs and docstrings synced; stale
"exact/pixel-exact/56-clean" claims removed.
Also includes a SynthID label-wording clarification in identify.py/cli.py
("SynthID pixel watermark" -> "SynthID watermark, inferred from C2PA metadata").
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
49 lines
1.1 KiB
Plaintext
49 lines
1.1 KiB
Plaintext
# Dependencies
|
|
.venv/
|
|
__pycache__/
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
|
|
# Environment secrets
|
|
.env
|
|
|
|
# OS files
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Test results
|
|
data/results/
|
|
|
|
# SynthID corpus reference fills (synthetic black/white calibration tiles,
|
|
# regenerable; the labeled pos/neg/cleaned images ARE tracked, see README)
|
|
data/synthid_corpus/refs/
|
|
|
|
# Reference materials
|
|
_refs/
|
|
|
|
# Downloaded model weights
|
|
yolov8n.pt
|
|
.coverage
|
|
|
|
# Claude Code local settings
|
|
.claude/settings.local.json
|
|
.claude/scheduled_tasks.lock
|
|
|
|
# Visible-watermark alpha calibration. The solid black/gray/white CAPTURES are
|
|
# committed (content-free: a solid colour + the watermark; the source for
|
|
# scripts/visible_alpha_solve.py so the alpha assets are reproducible). The
|
|
# synthetic seeds (regenerable) and any real-content validation download (a real
|
|
# generated scene, kept local for privacy) are NOT committed.
|
|
data/doubao_capture/seeds/
|
|
data/jimeng_capture/seeds/
|
|
data/jimeng_capture/captures/jimeng_content_*.png
|
|
data/gemini_capture/seeds/
|
|
data/gemini_capture/captures/gemini_content_*.png
|