mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-10-19 23:47:30 +02:00
The default package installs without `pixels`, and the Homebrew formula ships exactly that build, so a first run that followed this project's own install instructions died mid-command on a bare `ModuleNotFoundError: No module named 'cv2'` -- the one moment the user needed the extra named, and the only moment they were not told it. `visible`, `erase`, `all` and `batch` now stop with the install hint; `remove_batch` lets the same error out instead of counting one absent package as an error per image, which turned a directory of 84 into 84 failures with no cause named. Ask `optional_deps.pixels_available()` rather than matching the exception's module name. An ImportError raised inside `cv2/__init__.py` carries `cv2.cv2` and a numpy ABI mismatch carries `None`, so a name match let exactly the tracebacks this guard exists for through. `identify` keeps its historical no-op when the visible arm cannot decode, but the report no longer stays silent about it: an install lacking the extra dropped the visible Gemini mark from a marked image and read exactly like a clean scan. The caveat names which silence happened, because an absent extra and an unreadable file need different fixes. `metadata --remove` reports surviving markers instead of crashing when the raster-normalization recovery cannot import cv2, and the video runtime's install hint is now shell-quoted like the others -- bare brackets are a glob in zsh. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>