ONGOING CHALLENGE
2026 GenAI Image Watermark
GenAI Image Watermark Challenge evaluating Embedding and Detection capability.
Watermark Embedding Overview
The primary goal of this watermarking evaluation is to benchmark and measure the robustness of imperceptible watermarks while assessing their impact on content quality. In the first phase of this evaluation campaign, we will evaluate teams working on embedding watermarks in images.
W-Teams (Watermark Embedding):
Participating teams will embed watermarks into a provided dataset of images or generate watermarked images from given text and/or image prompts. The objective is to produce watermarked content that maintain high perceptual similarity to the original image while ensuring that the embedded watermark is robust to subsequent natural transformations or corruptions, and also adversarial attacks.
In this phase, teams will have the choice between two primary categories:
Teams may join both categories if they wish. The organizers will provide:
Teams are required to embed the provided payload according to the task specifications.
For post-hoc watermarking, teams will embed a watermark directly into the provided images while preserving perceptual quality and adhering to the assigned payload.
For generation-based watermarking, teams are required to submit results for either of the following two approaches:
The provided evaluation data will include a diverse set of images, text prompts, and payload configurations designed to cover a broad range of visual characteristics and testing conditions that may impact the robustness, fidelity, and overall performance of watermarking algorithms.
In Phase 1, the NIST GenAI team will evaluate watermark imperceptibility, generation diversity for prompt-based generation systems, and watermark robustness under a range of natural corruptions and non-adversarial transformations applied to watermarked images. Robustness evaluation will include watermark detectability as well as payload extraction and payload integrity, where applicable.
For more information and details about the task specifics
for watermark embedding, please refer to the
evaluation plan (coming soon).
Watermark Embedding Instructions
A set of topics encapsulating input samples to cover a diverse set of attributes and categories will be released.
Each input sample is defined as a <topic> element with the following required fields:
NOTE 1: For diversity evaluation, a selected subset of topics will require a high number of generated images (~ 50). For these particular topics and ALL text-based prompt methods, teams will be asked to submit for each prompt a set of watermarked images as well as unwatermarked images.
NOTE 2: For non-diversity topics, text-prompt-based generation methods must use the same generation seed across all required watermarked/unwatermarked images for each topic. The prompt and other generation settings must remain fixed, while the watermarking factors designated for evaluation are varied. Generation randomness should be controlled separately from any watermark-specific randomness. This helps reduce the influence of generation randomness, allowing the effects of watermarking factors on the generated images to be assessed more clearly.
NOTE 3: For diversity topics, teams must use a predetermined sequence of distinct generation seeds. The same seed must be used for each corresponding watermarked–unwatermarked image pair, while different pairs must use different seeds. The same seed sequence must therefore be used for both sets. All generation parameters other than the seed must remain fixed for each topic across both sets, except for changes required by the watermarking method. Variation across generated images should arise primarily from the controlled changes in the generation seed.
All topics will be aggregated in one master XML file and released to watermark embedding teams. Below are few examples of topics demonstrating with (multi-bit) and without payload (zero-bit).
Example of topic (prompt-based generation, diversity focused, with multi-bit payload):
<topic>
<num> topic_5445 </num>
<num_images_min> 50 </num_images_min>
<num_images_max> 50 </num_images_max>
<eval_diversity> T </eval_diversity>
<prompt usage="text-based-generation"> A young man with glasses looking upward to the sky </prompt>
<prompt_id> 1 </prompt_id>
<image usage="image-based-generation"></image>
<payload type="multi-bit" length="32"> 10100010101011111000100001110101 </payload>
</topic>
Example of topic (post-hoc with multi-bit payload):
<topic>
<num> topic_134 </num>
<num_images_min> 1 </num_images_min>
<num_images_max> 5 </num_images_max>
<eval_diversity> F </eval_diversity>
<prompt usage="text-based-generation"></prompt>
<prompt_id></prompt_id>
<image usage="post-hoc"> img_14562.png </image>
<payload type="multi-bit" length="32"> 00000010101011111000100001110101 </payload>
</topic>
Example of topic (prompt-based generation with zero-bit payload):
<topic>
<num> topic_5446 </num>
<num_images_min> 1 </num_images_min>
<num_images_max> 5 </num_images_max>
<eval_diversity> F </eval_diversity>
<prompt usage="text-based-generation"> A young man with glasses looking upward to the sky </prompt>
<prompt_id> 40 </prompt_id>
<image usage="image-based-generation"> </image>
<payload type="zero-bit" length="0"></payload>
</topic>
Submission Guidelines
- Each team may submit up to 10 runs per evaluation round. Each run should include no more than the specified maximum number of images per topic, as specified in each topic xml. A submission run should be in the format of a single compressed file (i.e., Docker image) to include the run results xml file (see below for specifications). All images should be uploaded to a designated drive on a cloud service that NIST GenAI will provide. Multiple zip files are not allowed per run.
- Each run submission should be based on a single watermarking method (e.g. if you are applying tree ring method, then all images in a single run should be submitted using tree ring). Within the fixed watermarking method, teams can experiment with various settings and hyperparameters in their watermarked images, provided these adjustments do not fundamentally alter the underlying algorithm.
- Each run submission should include a containerized implementation of the watermarking decoding/detecting software to be used by the organizers for evaluation ( specific details on this will be provided after registration and with data release)
- Any submitted run should be either based on post-hoc watermarking method given the post-hoc topics file and input images or generation-based watermarking method given the prompts.json file and generation-based topics file. This means that a run can not mix between post-hoc and generation-based methods.
- All teams must follow naming conventions for file names of submitted images as described in the evaluation plan.
- Each run should contain images for all topics; a run can not skip a topic or submit images for a subset of the topics
- All images must be submitted as png or jpg files, and follow the guidelines for aspect ratios and/or resolution allowed (see guidelines for allowed values). EXIF metadata must be preserved in the images.
- For both generation methods (text-based and image-based), all image content submitted should be free from offensive visuals or inappropriate remarks. Prohibited images include, but are not limited to, any image with explicit nudity, sexual content, hate symbols, child exploitation, or non-consensual images. NIST has the right to exclude any image or whole runs if it determines the content to be inappropriate for the general public. The GenAI team will have a process to automatically detect image content and any flagged images will be reviewed by a team of NIST personnel for final recommendation.
-
Each run should include high-level metadata to characterize the watermarking embedder system as requested by the below run format and DTD file. As explained in the DTD file, teams need to provide some required information/parameters, such as:
- teamName: The name of the team as registered on the NIST GenAI website
- trainingData: Name of training dataset or collection of different datasets or source data
- priority: The priority of the submitted run (the lower number, the higher the priority). For any required manual review of submissions, NIST may need to limit effort to only the highest priority runs. Priority should be an integer with a range between 1 to 10
- trained: A boolean (T or F) to indicate if the run was the output of a trained system by the team specifically for this task (T) or the output of an already existing system that the team used to generate the outputs (F)
- desc: A high-level description of the system that generated this run
- link: A link to the model used to generate the run (e.g. GitHub, etc)
- model: The model name used (for generation-based approaches, it has to match the model(s) provided by the organizers). For post-hoc approaches, it can be the name of the method/technique applied.
- topic: The topic id (the “num” field in the topic xml file)
- elapsedTimeSec: The processing time per topic to generate (watermark) the image after the topic was presented to it.
- approach: should specify the approach of the watermarking system and takes one of these values: “text-based-generation”, “image-based-generation”, or “post-hoc”
- eval_diversity: T(true) or F(false) if this topic will be used in diversity measurement (as set in the topic xml file).
- payloadType: Must conform with the topic provided (either multi–bit or zero-bit)
- comment: Please include any relevant information that played a role in watermarking this particular image (can be useful for tracking image level metrics)
- payloadLength: Must be 0 for zero-bit or exactly as provided in the topic for multi-bit. A system with maximum capacity lower than the requested length should submit up to its maximum capacity.
- payloadValue: Must be 0 for zero-bit, or exactly as provided in the topic for multi-bit
- filename: The name of the watermarked image file name. Please use the image file naming convention as demonstrated in the example below (eg. topic_1.image1.1.watermarked.png, topic_1.image1.2.watermarked.png, etc) to save and transmit your image files.
- filename_unwatermarked: The name of the unwatermarked image file name. Please use the image file naming convention as demonstrated in the example below (eg. topic_1.image1.1.unwatermarked.png, topic_1.image1.2.unwatermarked.png, etc) to save and transmit your image files.
Example of a sample run:
<EmbedderResults SYSTEM "EmbedderResult.dtd>
<!DOCTYPE EmbedderResults SYSTEM "EmbedderResult.dtd">
<EmbedderResults teamName="participant_1">
<EmbedderRunResult trainingData="OpenAI" priority="1" trained="T" desc="Top secret x-component" link="TBD" model="FLUX.2 Dev">
<EmbedderTopicResult topic="topic_1" elapsedTimeSec="5" approach="text-based-generation" eval_diversity="T">
<Image filename="topic_1.image1.1.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_1.image1.1.unwatermarked.png"/>
<Image filename="topic_1.image1.2.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_1.image1.2.unwatermarked.png"/>
<Image filename="topic_1.image1.3.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_1.image1.3.unwatermarked.png"/>
<!-- more images -->
<!-- more images -->
</EmbedderTopicResult>
<EmbedderTopicResult topic="topic_2" elapsedTimeSec="5" approach="text-based-generation" eval_diversity="F">
<Image filename="topic_2.image2.1.watermarked.png" approach="text-based-generation" payloadType="zero-bit" comment="" payloadLength="0" payloadValue="" filename_unwatermarked="topic_2.image2.1.unwatermarked.png"/>
<Image filename="topic_2.image2.2.watermarked.png" approach="text-based-generation" payloadType="zero-bit" comment="" payloadLength="0" payloadValue="" filename_unwatermarked="topic_2.image2.2.unwatermarked.png"/>
<Image filename="topic_2.image2.3.watermarked.png" approach="text-based-generation" payloadType="zero-bit" comment="" payloadLength="0" payloadValue="" filename_unwatermarked="topic_2.image2.3.unwatermarked.png"/>
<!-- more images -->
<!-- more images -->
</EmbedderTopicResult>
<!-- ... -->
<EmbedderTopicResult topic="topic_40" elapsedTimeSec="5" approach="text-based-generation" eval_diversity="T">
<Image filename="topic_40.image40.1.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_40.image40.1.unwatermarked.png"/>
<Image filename="topic_40.image40.2.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_40.image40.2.unwatermarked.png"/>
<Image filename="topic_40.image40.3.watermarked.png" approach="text-based-generation" payloadType="multi-bit" comment="" payloadLength="32" payloadValue="10100010101011111000100001110101" filename_unwatermarked="topic_40.image40.3.unwatermarked.png"/>
<!-- more images -->
<!-- more images -->
</EmbedderTopicResult>
</EmbedderRunResult>
</EmbedderResults>
Submission Validation
- NIST will provide, prior to submission dates, a validator script to participants to validate their output XML file format as well as content specific to the task guidelines (e.g. topic ids, empty required attributes, etc). All generator teams should validate their runs before submitting them to NIST. Example of available DTD validators (via a shell script): xmllint --valid simple_sample.xml
- Submission instructions: according to the published schedule, the submission form will be open and available (via the GenAI website) for teams to submit their data outputs based on the specified format. Please make sure to follow the schedule and submit on time, as extending the submission dates may not be possible.
- Upon submission, NIST will validate the data outputs uploaded and report any errors to the submitter.
- Please take into consideration that submitting your data outputs indicates and assumes your agreement to the data transfer agreement and rules of behavior
Watermark Embedders Transformations and Metrics
Applied Transformations
-
The NIST GenAI team will evaluate the robustness of submitted watermarked images by applying a set of natural transformations representative of common real-world processing. These transformations are not designed to be adversarial; rather, they reflect typical operations that images undergo during storage, sharing, editing, and display.
Each submitted watermarked image will be subjected to one or more transformations,including different strength levels, drawn from standardized categories, which may include (but are not limited to):- Compression and re-encoding (e.g., JPEG/WebP at varying quality levels)
- Resizing and resampling (downscaling, upscaling, interpolation changes)
- Geometric modifications (cropping, minor rotation, padding)
- Photometric adjustments (brightness, contrast, gamma, color shifts)
- Noise and filtering (Gaussian noise, blur, denoising)
- Image filters (social media enhancers)
- Format and pipeline effects (color space conversion, re-saving workflows)
- In addition to individual transformations, selected multi-step pipelines (e.g., resize → compress → crop) may be applied to better approximate realistic processing scenarios such as social media sharing or image editing workflows.
-
Following transformation, watermark robustness will be assessed using the results from the participant-provided detection and decoding components. Evaluation will measure:
- Imperceptibility (watermarked image quality)
- Watermark detectability (presence/absence)
- Payload recovery accuracy (for multi-bit watermarking)
- Payload integrity (correctness of recovered bits)
Summary Of Metrics
-
The embedder track will focus on three primary dimensions: perceptual similarity, generation quality and diversity (for prompt-based methods), and robustness under natural transformations.
-
Perceptual Similarity: measures the visual quality of watermarked images relative to their original or reference images.
-
For post-hoc watermarking methods (i.e., watermarking applied to provided images), textual prompt-based generation (generating pairs of watermarked and unwatermarked images), and image-based regeneration (systems that regenerate a provided image while embedding the watermark), imperceptibility will be evaluated by comparing the submitted image to the provided reference image using:
- Peak Signal-to-Noise Ratio (PSNR)
- Structural Similarity Index Measure (SSIM)
- Learned Perceptual Image Patch Similarity (LPIPS and R-LPIPS)
-
For post-hoc watermarking methods (i.e., watermarking applied to provided images), textual prompt-based generation (generating pairs of watermarked and unwatermarked images), and image-based regeneration (systems that regenerate a provided image while embedding the watermark), imperceptibility will be evaluated by comparing the submitted image to the provided reference image using:
-
Generation Quality and Diversity: for methods that generate multiple images per input prompt, diversity will be evaluated to measure variation across generated outputs while maintaining semantic consistency.
- CLIP-based diversity metrics will be used to quantify variation among generated images for a given prompt.
- Other metrics as appropriate
-
Robustness: a standardized set of natural (non-adversarial) transformations will be applied to the submitted watermarked images. Following transformation, each image will be processed using the participant-provided watermark detector and decoder.
-
Watermark Detectability Metrics:
- True Positive Rate (TPR)
- False Positive Rate (FPR) - utilizing unwatermarked images
- Receiver Operating Characteristic Area Under Curve (ROC-AUC)
- Brier Score
-
Payload Decodability Metrics: (for multi-bit watermarking)
- Bit Error Rate (BER)
- Bit Accuracy
-
Watermark Detectability Metrics:
-
Perceptual Similarity: measures the visual quality of watermarked images relative to their original or reference images.
Watermark Embedders Submission Process
-
Each team will receive a tarball `wm_submission.tar.gz` containing the resources needed to implement their decoding environment, including all necessary information for their watermarks, such as the text prompt and topic files. The provided workspace will resemble the following
├── configs/ ├── pipeline_config.yml ├── submission_validator.py ├── xml_parser.py └── xml_utils.py ├── datasets/ ├── watermarked/ ├── unwatermarked/ ├── inputs/ └── instructions.xml ├── outputs/ # To be populated by participant ├── submission.xml └── results.csv ├── watermarks/ ├── watermark.py # Example embedding script to be created by participant └── decode.py # Example decoding script to be created by participant └── key.pt # Example key to be created by participant (if applicable) └── Dockerfile - The datasets/watermarked/ folder should be populated for all watermarking method types. The datasets/unwatermarked/ folder may be empty for post-hoc and image-based generation, but must be populated for text-based generation. The watermarks/watermark.py and watermarks/decode.py files shown above are examples demonstrating how to interact with the `watermarks` module. Teams may adapt, replace, or restructure this module. NIST will mount output files to the scoring container. Therefore, teams are required to store all generated outputs, including submission.xml and results.csv, in the outputs/ directory so they can be read without errors.
-
For the final submission, teams must upload a single compressed folder via the web platform This folder must contain the following two components:
1- A datasets/ folder containing the images, organized according to the directory structure mentioned above (e.g., datasets/watermarked and/or datasets/unwatermarked).
2- The Docker image tarball, which must be named exactly `watermark-decode.tar.gz`.
The submission container must execute non-interactively, reading images from the mounted dataset volume as input and writing the results (e.g. outputs.csv) directly to the mounted output directory. - The decoding environment must be entirely self-contained. Ensure all dependencies, libraries, and model weights are installed during the Docker build process. Since the image will not have internet access at runtime, any models usually downloaded via Python must be pre-embedded in the image.
-
The detection software need to output a csv file with the following columns:
- Filename/ID as string variable
- Payload type (“multi-bit” | “zero-bit”) as string variable
- Original payload length as integer value (0|32|64|128|256)
- Extracted payload as string variable (zero-bit teams return empty strings "")
- Watermark detection score as float value (between 0.0 to 1.0, where higher values indicates a greater probability that a watermark is present)
- Payload extraction score (between 0.0 and 1.0, where higher values indicate greater probability that the extracted payload is correct)
-
The decoding software should be designed to take images as input and return a single .csv file with the aforementioned contents and appropriate column headers, as seen in the example below. After applying the transformations, corrupted images will be transferred to the participant’s containerized implementation and NIST will use the decoding script to extract the information necessary to proceed with the evaluation. Participants are expected to provide instruction on how to run the decoding script.
For consistency, please name the .csv file 'results.csv'.
Filepath Payload Type Payload Length Extracted Payload Watermark Detection Score Payload Extraction Score "datasets/topic_1…" "multi-bit" 32 "0111000..." 0.825 0.6 "datasets/topic_2…" "multi-bit" 32 "1001010..." 0.783 0.75