Inspiration

I'm an artist who posts my work publicly, and I've watched AI change how artists share their work with the world. Many of us now hesitate before posting, because there's no way to know whether a piece has been scraped for training, and saying "no" means juggling separate tools that only work if AI companies choose to respect them. The ethical clash over AI in art, and how hard it is to give or withhold consent, inspired me to build one place where artists can see their exposure, act on it, and keep a record.

What it does

ArtGuard Ledger takes a batch of images and:

  • Scans each one against an image index with CLIP: strong, possible, or no match.
  • Tags copies with the IPTC "Do Not Train" metadata field and verifies every tag. Originals stay untouched.
  • Scores exposure from 0 to 100, with next steps marked Done by app, Needs you, or Can't verify.
  • Explains each piece's likely copyright status in plain English, based on US Copyright Office guidance.
  • Tests whether image models imitate an artist's style when given their name.
  • Exports a ZIP of tagged copies and a dated PDF log with SHA-256 hashes.

How we built it

Python, Streamlit, and OpenCLIP. The index holds 2,914 public-domain artworks from the Art Institute of Chicago plus altered "scraped" copies of our demo pieces. Tagging uses ExifTool or our own pure-Python metadata writer, which never changes a pixel.

For the style test, we generated 192 images with Stable Diffusion 1.5 and SD-Turbo: the same scenes "in the style of Hokusai," as a plain painting, and as a Japanese woodblock print without his name. With $c$ as the average CLIP embedding of his real works:

$$\text{lift} = \overline{\cos(x_{\text{styled}}, c)} - \overline{\cos(x_{\text{control}}, c)}$$

Challenges we ran into

  • Museum artworks look alike to CLIP: unrelated pieces scored up to 0.95, so default thresholds produced false matches.
  • Running two image models on a laptop filled its memory until we generated them one at a time.
  • For most protections, the honest answer to "does this AI company respect it?" is unknown.

Accomplishments that we're proud of

  • Measured thresholds: we tested edited copies against 295 never-indexed images. Strong ($\geq 0.96$) and possible ($\geq 0.90$) flag only 1% of unrelated images.
  • A surprising result: both models copied Hokusai's look, but his name added almost nothing beyond the genre, and in SD-Turbo it added even less ($-0.12$, 95% CI $[-0.15, -0.08]$).
  • Trustworthy records: 103 automated tests confirm tags are readable, pixels are unchanged, and every hash in the PDF matches the files.

What we learned

A scan only covers what it searches, one upload can strip metadata, and an opt-out is a request, not a lock. Instead of hiding those limits, we put them on every screen and in the PDF, because artists deserve an honest picture.

What's next for ArtGuard Ledger

Searching real training-dataset indexes, adding C2PA content credentials, and letting artists run the style test on their own names.

Built With

  • altair
  • art-institute-of-chicago-api
  • claude
  • exiftool
  • git
  • hugging-face-diffusers
  • hugging-face-transformers
  • imagehash
  • iptc
  • numpy
  • openclip
  • pandas
  • pillow
  • pypdf
  • pytest
  • python
  • pytorch
  • pyyaml
  • reportlab
  • requests
  • sd-turbo
  • stable-diffusion
  • streamlit
  • uv
  • xmp
Share this project:

Updates

Submission history