mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-07 06:28:36 +02:00
fix(cli): preserve SynthID uncertainty in no-visible-mark message
The 'no signal' branch of the visible no-mark path claimed 'No AI provenance signal found either', which reads as 'the image is clean'. A missing metadata proxy is not proof an invisible pixel watermark (SynthID) is absent: it cannot be detected once metadata is gone and may have been stripped upstream. The message now preserves that uncertainty and routes to both 'all' (regenerate pixels) and 'erase'. Regression-guarded by the SynthID/all asserts in test_cli.py. CLAUDE.md visible-command note updated to match. Also adds a 'Scope and non-goals' section (CLAUDE.md + README): removing AI-provenance marks on the user's own content is in scope; stripping stock/paid-content watermarks (Shutterstock/Getty/iStock, classifieds) is out of scope by principle, not by difficulty. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d8cdc9f478
commit
41a2af2ecb
@@ -349,8 +349,12 @@ def _no_visible_mark_exit(source: Path) -> NoReturn:
|
||||
)
|
||||
else:
|
||||
console.print(
|
||||
" No AI provenance signal found either. If there is a logo or object to remove,\n"
|
||||
" target it directly with the region eraser:\n"
|
||||
" No visible mark and no readable AI provenance signal. This does not prove\n"
|
||||
" the image is clean: an invisible pixel watermark such as SynthID cannot be\n"
|
||||
" detected here once the metadata proxy is absent (it may have been stripped\n"
|
||||
" earlier). If the image is AI-generated, regenerate the pixels with:\n"
|
||||
f" remove-ai-watermarks all {source.name}\n"
|
||||
" If instead there is a logo or object to remove, target it with the region eraser:\n"
|
||||
f" remove-ai-watermarks erase {source.name} --region x,y,w,h"
|
||||
)
|
||||
raise SystemExit(EXIT_NO_VISIBLE_MARK)
|
||||
|
||||
Reference in New Issue
Block a user