WIBE-X is a modular and extensible framework for automated testing of invisible digital watermarking methods across image and audio domains under various attack scenarios. Extending the original WIBE framework, it provides a unified processing pipeline for systematic evaluation of both classical and neural watermarking techniques
The system architecture consists of a sequence of processing configurable stages.
- Multi-domain support for invisible digital watermarking in images and audio
- Modularity and extensibility through a unified plugin-based architecture for watermarking methods, datasets, attacks, and metrics
- Comprehensive robustness testing with configurable individual and composed transformations, including conventional and neural codecs and generative resynthesis
- Reproducibility through declarative YAML-configured experiments and isolated execution environments
- Comprehensive evaluation with modality-specific quality metrics and unified watermark robustness metrics
- Flexible persistence through multiple storage backends, including files and ClickHouse database
- Interactive visual diagnostics based on sample-level evaluation results
- Scalability from local workstations to multi-GPU and distributed cluster environments
Algorithms
Attacks
| Attack | Config name | Description |
|---|---|---|
| Distortions | jpeg, rotate90, rotate, gaussianblur, gaussiannoise, centercrop, resize, randomcropout, brightness, contrast, pixelshift, colorinversion | Common distortions like JPEG, blur, noise, rotation, etc |
| WPWMAttacker | wpwmattacker | Saliency-Aware Diffusion Reconstruction for Effective Invisible Watermark Removal |
| DIP | dip | DIP-based watermark evasion attack adopted from the github repository |
| Adversarial | adversarialembedding | Adversarial embedding attack from WAVES |
| Adversarial PSNR | adversarialembeddingpsnr | Modification of adversarial embedding attack that uses PSNR |
| Averaging | averaging | Attack based on simple averaging from paper |
| Blur Deblur | blurdeblurfpninception | Blur image and restore it with DeblurGAN-v2 |
| DoG Blur Deblur | dogblurdeblurfpninception | DoG blur image and restore it with DeblurGAN-v2 |
| BM3D | bm3d | Block-matching and 3D filtering image denoising |
| VAE | vaeattack | Adversarial attack using a FLUX.1-schnell VAE to generate noisy image reconstructions |
| StegastampInversion | stegastampinversion | Adversarial attack that inverts watermarks encoded by Stegastamp |
| DiffusionRegeneration | diffusionregeneration | Invisible Image Watermarks Are Provably Removable Using Generative AI |
| FluxRegeneration | fluxregeneration | Image regeneration attack using FLUX image-to-image diffusion model |
| FluxRinsing | fluxrinsing | Multi-step image purification using repeated FLUX regeneration |
| VAERegeneration | vaeregeneration | Based on WatermarkAttacker |
| Frequency Masking | frequencymasking | Image-domain frequency masking attack that suppresses low-frequency components. |
| Latent Frequency Masking | latentfrequencymasking | Latent-space frequency masking attack for diffusion model representations. |
| Image Editing Flux Kontext | imageeditingfluxcontext | Adversarial attack that edits images using instruction-guided generation. (Flux Kontext model) |
| Image Editing InstructPix2Pix | imageeditinginstructpix2pix | Adversarial attack that edits images using instruction-guided generation. (InstructPix2Pix model) |
| LIIF | liifattack | LIIF super-resolution |
| SEMAttack | semattack | Black-Box Forgery Attacks on Semantic Watermarks for Diffusion Models |
| WMForger | wmforger | Transferable Black-Box One-Shot Forging of Watermarks via Image Preference Models |
| TrustMarkRM | trustmarkrm | TrustMark: Universal Watermarking for Arbitrary Resolution Images |
| NRP small | nrpsmall | A Self-supervised Approach for Adversarial Robustness. Smaller backbone variant. |
| NRP large | nrplarge | A Self-supervised Approach for Adversarial Robustness. Larger backbone variant. |
| MPRNet | mprnetattack | Multi-stage progressive image restoration |
| Uni inv attack FLUX | uniinvattackflux | Image Inversion and Reconstruction using Flux model |
| Uni edit attack FLUX | unieditattackflux | Image Editing using Flux model |
| DISCO | discoattack | DISCO: Adversarial Defense with Local Implicit Functions |
| DiffPure | diffpureattack | Diffusion Models for Adversarial Purification |
| RealESRGAN | realesrganattack | Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data |
| UnMarkerAttack | unmarkerattack | UnMarker: A Universal Attack on Defensive Image Watermarking |
| Instagram/CSS filters | instagramcss_filters | Instagram/CSS filters for image editing |
| Attack | Config name | Description |
|---|---|---|
| Signal distortions | signinversion, resampling, requantization, gain, filter, whitenoise, pinknoise, clipping | Common signal-level transformations affecting amplitude, sampling, quantization, frequency content, or noise. |
| Compression | mpeg, aac, opus, encodec, dac | Lossy conventional and neural audio compression codecs. |
| Acoustic | echo, reverb | Acoustic effects simulating propagation and reflections of sound. |
| Effect | pitchshift, dynamicrangecompressor, limiter | Different audio effects. |
| Enhancement | wienerfilter | Signal enhancement and denoising methods that modify the audio to suppress noise or unwanted components. |
| MetricGAN+ | metricganplus | Black-box speech-enhancement attack using MetricGAN+ (paper, implementation). |
| GTCRN | gtcrn | Black-box speech-enhancement attack using the official GTCRN DNS3 checkpoint (paper). |
| Desynchronization | cut, speed, timestretch, invertedtimestretch, flipsamples, zerocrossinserts, framedropout | Distortions that modify the temporal structure or local alignment of the signal. |
| Vocos | vocos | Vocos: Closing the gap between time-domain and Fourier-based neural vocoders for high-quality audio synthesis |
| Attack | Config name | Description |
|---|---|---|
| Distortions | identity | No attack applied |
Datasets
| Dataset | Config name | Description |
|---|---|---|
| Image folder | imagefolderdataset | Loading images from a directory |
| Prompt folder | promptfolderdataset | Loading text prompts from a directory with .txt files |
| Audio Folder | audiofolderdataset | Loading audio from a directory |
| DiffusionDB | diffusiondb | https://github.com/poloclub/diffusiondb, both images and prompts |
| MSCOCO | mscoco | https://cocodataset.org/, both images and prompts |
| LibriSpeech | librispeech | ASR corpus based on public domain audio books, audio and transcription |
| LibriTTS | libritts | Dataset based on LibriSpeech, sr 22050 kHz, audio and transcription |
| AudioSet | audioset | Dataset of 10-second clips from YouTube |
| FreeMusicArchive | freemusicarchive | FMA is a large-scale collection of music |
| VCTK | vctk | The CSTR VCTK Corpus (Voice Cloning Toolkit) is a speech dataset of read English speech with diverse regional accents |
| CommonVoice | commonvoice | Public-domain multilingual voice database |
| AISHELL-1 | aishell | Aishell is an open-source Chinese Mandarin speech corpus |
| Golos | golos | Russian ASR dataset with trained acoustic and language models |
Metrics
| Metric | Type | Stage | Config name | Description |
|---|---|---|---|---|
| PSNR | image quality, compare with not marked image | post_embed_metrics, post_attack_metrics | psnr | peak signal-to-noise ratio |
| SSIM | image quality, compare with not marked image | post_embed_metrics, post_attack_metrics | ssim | structural similarity index |
| LPIPS | image quality, compare with not marked image | post_embed_metrics, post_attack_metrics | lpips | The Unreasonable Effectiveness of Deep Features as a Perceptual Metric |
| DreamSim | image quality, compare with not marked image | post_embed_metrics, post_attack_metrics | dreamsim | DreamSim: Learning New Dimensions of Human Visual Similarity using Synthetic Data. |
| Aesthetic | single image quality | post_embed_metrics, post_attack_metrics | aesthetic | Aesthetic score predictor |
| CLIP IQA | single image quality | post_embed_metrics, post_attack_metrics | clip_iqa | Exploring CLIP for Assessing the Look and Feel of Images |
| BLIP | image quality, compare image with text prompt | post_embed_metrics | blip | BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation |
| CLIP Score | image quality, compare image with text prompt | post_embed_metrics | clipscore | CLIPScore: A Reference-free Evaluation Metric for Image Captioning |
| Image Reward | image quality, compare image with text prompt | post_embed_metrics | imagereward | Learning and Evaluating Human Preferences for Text-to-Image Generation |
| FID | image quality, compare two sets of images | post_pipeline_embed_metrics, post_pipeline_attack_metrics | fid | FID metric from GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium |
| Metric | Type | Stage | Config name | Description |
|---|---|---|---|---|
| SI-SNR | audio quality, compare with not marked image | post_embed_metrics | si_snr | Scale-Invariant Signal-to-Noise Ratio |
| PESQ | audio quality, compare with not marked image | post_embed_metrics | pesq | Perceptual evaluation of speech quality (PESQ)-a new method for speech quality assessment of telephone networks and codecs |
| STOI | audio quality, compare with not marked image | post_embed_metrics | stoi | A short-time objective intelligibility measure for time-frequency weighted noisy speech |
| NISQA | audio quality assesment delta, compare with not marked image | post_embed_metrics | nisqa | NISQA: A Deep CNN-Self-Attention Model for Multidimensional Speech Quality Prediction with Crowdsourced Datasets |
| DNSMOS | audio quality assesment delta, compare with not marked image | post_embed_metrics | dnsmos | DNSMOS: A Non-Intrusive Perceptual Objective Speech Quality metric to evaluate Noise Suppressors |
| SECS | audio quality, compare with not marked image | post_embed_metrics | secs | Speaker Encoder Cosine Similarity |
| Metric | Type | Stage | Config name | Description |
|---|---|---|---|---|
| BER | extraction success | post_extract_metrics | ber | Bit Error Rate (multi-bit) |
| WER | extraction success | post_extract_metrics | wer | Word Error Rate (multi-bit) |
| TPR at x% FPR | extraction success | post_extract_metrics | tpr@xfpr | True Positive Rate at fixed False Positive Rate threshold (both zero-bit and multi-bit) |
| Empirical TPR at x% FPR | extraction success | post_extract_metrics | empiricaltpr@xfpr | Empirical True Positive Rate at fixed False Positive Rate threshold (both zero-bit and multi-bit) |
| P-value | extraction success | post_extract_metrics | p-value | P-value denotes probability to observe the same result as in case of extraction from not watermarked object |
| Result | auxiliary | post_extract_metrics | result | Records extraction result (zero-bit case) |
| Embedded watermark | auxiliary | post_embed_metrics | embwm | Records embedded watermark (multi-bit case) |
| Extracted watermark | auxiliary | post_extract_metrics | extwm | Records extracted watermark (multi-bit case) |
To assess implemented watermarking algorithms and attacks on watermarks, follow the step-by-step procedure below.
To build the benchmarking environment, user must specify the proper domain profile. The list of supported profiles:
image- image-based watermarking algorithms (default);audio- audio-based watermarking algorithms.
git clone https://github.com/ispras/wibe.git
cd wibeAll subsequent commands are run from this directory.
Ubuntu:
sudo apt-get install -y ffmpeg libgl1ffmpeg— multimedia processinglibgl1— OpenGL, required by some CV/DL dependencies
Option A — one command
WIBENCH_PROFILE=audio source prepare.sh # or image profileOption B — step by step
git submodule update --init --recursive
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
(.venv) pip install uv
(.venv) uv sync
(.venv) wibench-venv rebuild --profile=audio # builds additional venvsConflicting dependency pins mean one shared venv is not enough:
wibench-venvbuilds several compatible ones, andwibenchpicks among them automatically. If you plan to add your own algorithm, attack, dataset or metric, read venv manager docs first.
Optional (not recommended) — download all pre-trained weights
(.venv) python download_models.py # no need to use: weights download automatically on demandSome models need HuggingFace access. Set HF_TOKEN to your
token
(setup details),
then:
(.venv) python huggingface_login.pySpecify the path to your configuration file as a required parameter:
(.venv) wibench --config configs/audio/audioseal.yml --profile audioUpon completion of computations, you can explore the evaluation results for different combinations of watermarking algorithms, attacks, and computed performance metrics.
By default, WIBE-X stores sample-level evaluation results, including watermark robustness, media quality metrics, and execution times. To save the media samples produced at different stages of the processing pipeline, use the --dump-context option.
This saves the original, watermarked, and transformed media samples, including intermediate results produced after each applied attack, for both audio and image experiments.
The following figure summarizes the robustness and imperceptibility of the evaluated audio watermarking algorithms. The horizontal axis represents the average watermark robustness measured as TPR@0.1%FPR, while the vertical axes show audio quality measured using SI-SNR and PESQ. Each point corresponds to a watermarking algorithm.
This project builds upon our previous work on benchmarking invisible image watermarking:
-
WIBE: Watermarks for generated Images – Benchmarking & Evaluation, ASE 2025.
BibTeX
@inproceedings{yakushev2025wibe, title={WIBE: Watermarks for generated Images--Benchmarking \& Evaluation}, author={Yakushev, Aleksey and Akimenkov, Aleksandr and Abud, Khaled and Obydenkov, Dmitry and Serzhenko, Irina and Aistov, Kirill and Kovalev, Egor and Fomin, Stanislav and Antsiferova, Anastasia and Lukianov, Kirill and Markin, Yury}, booktitle={2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)}, pages={4033--4036}, year={2025}, organization={IEEE} }
-
WARP: A Unified Benchmark for Invisible Image Watermarking — Robustness and Protection Against Attacks, ACM MM 2026.

