Edit model card

BZH watermark detector (demo)

You can use this classifier to detect watermarks generated with our SDXL-turbo watermarking demo.

Usage

from transformers import AutoModelForImageClassification, BlipImageProcessor

from PIL import Image
import sys

image_processor = BlipImageProcessor.from_pretrained("imatag/stable-signature-bzh-detector-resnet18")
model = AutoModelForImageClassification.from_pretrained("imatag/stable-signature-bzh-detector-resnet18")
model.eval()

img = Image.open(sys.argv[1]).convert("RGB")
inputs = image_processor(img, return_tensors="pt")
p = model(**inputs).logits[0,0] < 0

print(f"watermarked: {p}")

Purpose

This model is an approximate version of IMATAG's BZH decoder for the watermark embedded in our SDXL-turbo watermarking demo. It works on this watermark only and cannot be used to decode other watermarks.

It will catch most altered versions of a watermarked image while making roughly one mistake in one thousand on non-watermarked images. Alternatively, it can produce an approximate p-value measuring the risk of mistakenly detecting a watermark on a benign (non-watermarked) image, by recalibrating the output as in this script.

To get an exact p-value and for improved robustness, please use the API instead.

For more details on this watermarking technique, check out our announcement and our lab's blog post.

For watermarked models with a different key, support for payload, other perceptual compromises, robustness to other attacks, or faster detection, please contact IMATAG.

Downloads last month
156

Space using imatag/stable-signature-bzh-detector-resnet18 1