mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-28 00:10:25 +02:00
fix(visible): safe-inpaint pill gate, cut metadata-only false fires
Verified 0.13.0 pill removal on a 32k real-upload corpus. The metadata-OR-wordmark gate was only ~1/3 precise: TC260 metadata confirms Jimeng-class provenance, not pill presence, so the weak edge-NCC detector's false fires (textured ceilings/walls, where inpaint visibly smears) were admitted whenever metadata was present. Split into two arms (_keep_pill): the reliable bottom-right wordmark (~94% precise, survives metadata stripping) removes the pill unrestricted; the metadata-only arm removes it ONLY when the top-left footprint is flat enough for an invisible inpaint (PillEngine.footprint_is_flat, median-Sobel <= _FLAT_TEXTURE_MAX). Keeps real flat-scene pills and harmless flat false fires; leaves the damaging textured false fires untouched. Corpus: 270 -> 118 removals, ~90 true preserved, damaging FP -> ~0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0e5a4cbc54
commit
a8fd02a8f7
@@ -340,10 +340,12 @@ def _warn_if_esrgan_unavailable(upscaler: str) -> None:
|
||||
|
||||
|
||||
def _aigc_metadata_present(path: Path) -> bool:
|
||||
"""True when the file carries a China-AIGC (TC260) metadata label. Used to gate
|
||||
the weak-detector 'AI生成' pill: metadata confirms Jimeng-class provenance. NB
|
||||
this is only ONE of two confirmations -- ``remove_auto_marks`` also accepts the
|
||||
bottom-right wordmark, so a metadata-STRIPPED upload can still be handled."""
|
||||
"""True when the file carries a China-AIGC (TC260) metadata label. Feeds the
|
||||
weak-detector 'AI生成' pill gate (``remove_auto_marks`` → ``_keep_pill``): metadata
|
||||
confirms Jimeng-class provenance but not pill presence, so the metadata-only arm
|
||||
removes the pill ONLY on a flat, safe-to-inpaint footprint. The reliable
|
||||
bottom-right wordmark is the other, unrestricted confirmation arm (and it survives
|
||||
a metadata-STRIPPED upload)."""
|
||||
with contextlib.suppress(Exception):
|
||||
from remove_ai_watermarks import metadata
|
||||
|
||||
|
||||
Reference in New Issue
Block a user