mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-06-05 02:28:00 +02:00
411ef16ec3
Add an optional, commercial-safe face-restoration post-pass that recovers face identity the diffusion removal pass drifts (canny holds structure, not likeness) while still scrubbing the pixel watermark in the face regions. - face_restore.py: GFPGANer singleton (CPU unless CUDA), the basicsr torchvision.transforms.functional_tensor shim, and the pure feather _composite_faces helper (unit-tested without the model). GFPGAN re-synthesizes each face from a StyleGAN2 prior, so composited face pixels are GAN-generated (no watermark, no pixel-copy) -- oracle-clean at weight 0.5 with identity preserved. - InvisibleEngine.remove_watermark: restore_faces / restore_faces_weight, best-effort, auto-skips when the extra is absent or no face is detected. - CLI --restore-faces/--no-restore-faces + --restore-faces-weight on invisible/all/batch (on by default). - restore extra (gfpgan/facexlib/basicsr), numpy<2-pinned (scipy<1.18, numba<0.60) and kept out of `all`; basicsr needs Python <3.13 + setuptools<69 to build, so pin .python-version 3.12. Commercial-safe: GFPGAN Apache-2.0, RetinaFace MIT. The CodeFormer alternative is non-commercial and is not shipped. The earlier IP-Adapter FaceID layer was removed (footgun: needs high strength, corrupts faces at the low removal strength). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
53 lines
1.2 KiB
Plaintext
53 lines
1.2 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
|
|
|
|
# GFPGAN downloads its RetinaFace/parsing weights to a CWD ./gfpgan/weights/
|
|
# working dir on first use (the restore extra). Runtime artifact, never committed.
|
|
gfpgan/
|