Skip to main content

Tree-Ring Watermarks: Fingerprints for Diffusion Images that are Invisible and Robust

This code is the official implementation of Tree-Ring Watermarks.

If you have any questions, feel free to email Yuxin (ywen@umd.edu).

About

We propose Tree-Ring Watermarking to watermark diffusion model outputs. Tree-Ring Watermarking chooses the initial noise array so that its Fourier transform contains a carefully constructed pattern near its center. This pattern is called the key. This initial noise vector is then converted into an image using the standard diffusion pipeline with no modifications. To detect the watermark in an image, the diffusion model is inverted to retrieve the original noise array used for generation. This array is then checked to see whether the key is present.

Dependencies

  • PyTorch == 1.13.0
  • transformers == 4.23.1
  • diffusers == 0.11.1

Note: higher diffusers version may not be compatible with the DDIM inversion code.

Usage

Perform main experiments and calculate CLIP Score

For non-adversarial case, you can simply run:

python run_tree_ring_watermark.py --run_name no_attack --w_channel 3 --w_pattern ring --start 0 --end 1000 --with_tracking --reference_model ViT-g-14 --reference_model_pretrain laion2b_s12b_b42k

You can modify arguments to perform attack. For example, for rotation with 75 degrees:

python run_tree_ring_watermark.py --run_name rotation --w_channel 3 --w_pattern ring --r_degree 75 --start 0 --end 1000 --with_tracking

For more adversarial cases, see here.

For other watermark types mentioned in the paper, you can check scripts/.

Calculate FID

You can download 5000 COCO examples used in the paper here. Feel free to add more data or other datasets according to the format of fid_outputs/coco/meta_data.json.

Then, to calculate FID, you may run:

python latent_watermark_fourier_fid.py --run_name fid_run --w_channel 3 --w_pattern ring --start 0 --end 5000 --with_tracking --run_no_w

Parameters

Crucial hyperparameters for Tree-Ring:

  • w_channel: the index of the watermarked channel. If set as -1, watermark all channels.
  • w_pattern: watermark type: zeros, rand, ring.
  • w_radius: watermark radius.

Suggestions and Pull Requests are welcome!

Release files for tree-ring-watermark 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tree-ring-watermark 0.0.2
File Size Uploaded
tree_ring_watermark-0.0.2.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tree-ring-watermark 0.0.2
File Interpreter ABI Platform
tree_ring_watermark-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 kB

Release files / tree_ring_watermark-0.0.2.tar.gz

Download URL tree_ring_watermark-0.0.2.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0cccefc24c263ccc256a1fa5c461222c17827e6fa4ee2b2e2ddda9d3e990c089
BLAKE2b-256 checksum
How to use checksums
05985d4dfed524e93df35f4d97dfc45a30e59d044966862bdcc8048fd39c485b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

Release files / tree_ring_watermark-0.0.2-py3-none-any.whl

Download URL tree_ring_watermark-0.0.2-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
414b12a57154760307a89fad9a68b4ffbf9fb16297b3db37b0dde9330800885c
BLAKE2b-256 checksum
How to use checksums
1a19d777e07657105610e93c95c2c8acf8e704209ded926ad1b334cea35de606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page