Files
remove-ai-watermarks/docs/installation.md
T

2.9 KiB

Installation

Python 3.10.1 or newer is required.

Core install

The core package provides:

  • provenance inspection;
  • visible watermark removal with OpenCV;
  • manual region erasing with OpenCV;
  • AI metadata inspection and removal.

Install it as an isolated command with uv:

uv tool install remove-ai-watermarks

Or with pipx:

pipx install remove-ai-watermarks

You can also install the Homebrew package on macOS or Linux:

brew install wiltodelta/tap/remove-ai-watermarks

Invisible watermark removal

Diffusion based removal needs the gpu extra:

uv tool install --force "remove-ai-watermarks[gpu]"

The code supports CUDA, XPU, MPS, and CPU devices. A GPU is recommended because CPU inference is slow.

For the CUDA only Qwen Image plus Z-Image profile:

uv tool install --force "remove-ai-watermarks[qwen-zimage]"

The qwen-zimage extra includes the normal gpu dependencies.

Optional features

Install only what you need:

Extra Adds
migan MI-GAN ONNX fill backend
lama big-LaMa ONNX fill backend
detect Open DWT-DCT watermark decoder used by identify
trustmark Adobe TrustMark decoder
esrgan Real-ESRGAN upscaling before diffusion
qwen-zimage CUDA only Qwen Image plus Z-Image pipeline

Example:

uv tool install --force "remove-ai-watermarks[migan,detect]"

Some optional models download their weights on first use.

Install from the repository

git clone https://github.com/wiltodelta/remove-ai-watermarks.git
cd remove-ai-watermarks
uv sync --frozen

Add the feature groups required for your work:

uv sync --frozen --extra dev
uv sync --frozen --extra dev --extra gpu

Run commands from the repository root:

uv run remove-ai-watermarks --help

Development setup

Install development dependencies:

uv sync --frozen --extra dev

Run the complete project gate:

bash maintain.sh

The script runs dependency checks, linting, formatting checks, type checking, and the test suite.

Hugging Face authentication

Pass a Hugging Face token directly when the selected model or account requires one:

remove-ai-watermarks invisible image.png --hf-token "$HF_TOKEN"

The CLI also loads HF_TOKEN from the environment and from a local .env file. The same name is documented in .env.example.

Troubleshooting

The first model run is slow

Diffusion and learned fill backends may download model weights on first use. Later runs reuse their caches.

The command skips invisible removal

The normal behavior is to skip diffusion when no supported local signal is found. A missing signal does not prove that the image is clean. If you know the image came from a relevant generator, use --force.

If the CLI reports that diffusion dependencies are unavailable, install the gpu extra.