WIBE is a modular and extensible framework for automated testing of invisible image watermarking methods under various attack scenarios. The system is designed to support research and development of robust watermarking techniques by enabling systematic evaluation through a customizable processing pipeline.
The system architecture consists of a sequence of processing configurable stages.
- Modularity and extensibility through a plugin-based architecture
- Reproducibility ensured by YAML-configured experiments
- Usability with a simple command-line interface
- Flexible persistence through multiple storage backends, including files and ClickHouse database
- Transparency via real-time visual feedback
- Scalability to run experiments on clusters
To assess implemented watermarking algorithms and attacks on watermarks, follow the step-by-step procedure below.
- Clone the repository and navigate to its directory (all subsequent commands should be run from this location):
git clone https://github.com/ispras/wibe.git
- Update the submodules:
git submodule update --init --recursive
- Create and activate a virtual environment (the exact command varies slightly between OSes – you know how to do this):
python -m venv venv
- Download the pre-trained model weights:
(venv) python download_models.py
- Install the dependencies:
(venv) python install_requirements.py
- Set the HF_TOKEN environment variable with your HuggingFace token (see HuggingFace Authentication Setup for details), then authenticate:
(venv) python huggingface_login.py
- All set! Specify the path to your
сonfiguration file
as a required parameter:
(venv) python -m wibench --config configs/trustmark_demo.yml -d
- Upon completion of computations, you can view watermarked images and explore interactive charts for different combinations of watermarking algorithms, attacks, and computed performance metrics.
Below, from left to right, are the original, watermarked with StegaStamp, and attacked by FLUX Regeneration images.
And here are the same as above, the original and watermarked images, as well as their difference.
To explore interactive wind rose chart with average TPR@0.1%FPR
for all algorithms and attacks evaluated so far, run the following command:
(venv) python make_plots.py --results_dir path_to_results_directory
Below is an average TPR@0.1%FPR
chart for 7 algorithms under different types of attacks (evaluated on 300 images from the DiffusionDB dataset).
See the full documentation here.
Watch our video tutorial here.