Portrait of Carmen Aguado, Duchesse de Montmorency, by Franz Xaver Winterhalter, 1860
v0.1 · server-side · resists models that scrape

Ink
shield.

Protecting creative work in the age of generative AI. Inkshield applies carefully generated perturbations to artwork, nearly invisible to humans, disruptive to the vision models behind large-scale scraping.

runtimeserver-side
attackensemble PGD
modelsRN-50 + MNv2
epsilon0.005 – 0.050
storageS3 (private)
statusprotected
image · Franz Xaver Winterhalter, Carmen Aguado, Duchesse de Montmorency, 1860, courtesy Musée National du Château de Versailles
digital self-defensefor artists who refuse to feed the machinegradient · sign · perturb · protectink, not datasets
digital self-defensefor artists who refuse to feed the machinegradient · sign · perturb · protectink, not datasets
§ lab · try it live

See what a scraper sees.
Then break its vision.

Drop in an image and apply Inkshield. Your file is uploaded and protected server-side by a real ensemble PGD attack against ResNet-50 and MobileNetV2. Before-and-after predictions from both models show exactly how each is fooled, then download the protected file.

epsilon · perturbation strength
ε = 0.020
Original
run protection to see prediction
Inkshielded
protected result appears here
run protection to see prediction

note: your image is uploaded and protected server-side by a real 4-step ensemble PGD attack against ResNet-50 and MobileNetV2 (~5–15s on CPU). files are stored privately on S3 and returned as time-limited presigned URLs. stronger ε = stronger disruption at the cost of slight visible grain.

§ 01 · Inspiration

The line between inspiration and scraping has blurred. The essence of a body of work now dissolves into training sets, without permission, without attribution, without consent.

Inkshield was created as a form of digital self-defense. A way for artists to protect their visual identity and retain control over how their work is used online, using the same adversarial techniques that expose weaknesses in neural networks.

§ 02 · How it works

An adversarial pipeline,
tuned for artists.

Inkshield runs a real ensemble PGD attack server-side against a pretrained ResNet-50 and MobileNetV2. The perturbation is nearly imperceptible to a viewer, but disruptive to the feature extractors that power scrapers and AI captioners.

# adversarial formulation
xadv = Clipx,ε { x + ε · sign(∇x L(θ, x, y)) }
Iterative · multi-step
PGD

Projected Gradient Descent. Iteratively nudges pixels along the gradient sign, clipped to an epsilon-ball, stronger protection than single-step FGSM.

Two models · one attack
Ensemble

Gradients are averaged across ResNet-50 and MobileNetV2 so the perturbation transfers, disrupting more than a single architecture would.

Grad-CAM attention heatmap over a portrait
Grad-CAM · attention drift
The model's focus shifts away from the subject after perturbation, feature recognition disrupted.
Server-side pipeline

Real models,
real attack.

The full PyTorch and TensorFlow ensemble PGD attack runs on the ML service, not a browser approximation:

  • image uploaded through the Go API gateway to the FastAPI ML service
  • multi-step PGD iterates the gradient sign against the ResNet-50 + MobileNetV2 ensemble
  • protected image stored privately in S3, tied to your account, returned as a presigned URL
§ 03 · Protection strength

Pick your epsilon.

A dial from invisible to unmistakable. The default of 0.020 sits at the sweet spot, minor grain only visible at zoom, strong enough to disrupt the ensemble's classification.

Ultra-Subtle
ε = 0.005
Very High
Virtually invisible
Subtle
ε = 0.010
High
Indistinguishable
Recommendeddefault
ε = 0.020
Medium
Minor grain on zoom
Aggressive
ε = 0.040
Lower
Visible artifacts
Maximum
ε = 0.050
Lowest
Visible noise
§ 04 · Privacy

Your images,
privately stored.

Images are uploaded over HTTPS, protected in isolation, and stored in a private S3 bucket tied to your account. No third-party AI services and no public access, unless you choose to publish to the gallery, only you hold the presigned download link.

01
Uploaded over HTTPS, processed in isolation
02
Stored privately in an AWS S3 bucket
03
Ensemble PGD runs server-side, not in your browser
04
Downloaded via time-limited presigned URLs
§ 05 · Under the hood

A real backend,
not a browser trick.

Models
  • PyTorch ResNet-50
  • TF MobileNetV2
  • Ensemble PGD attack
Services
  • FastAPI ML service
  • Go API gateway
  • Spring Boot auth
Infra
  • PostgreSQL
  • MongoDB
  • AWS S3
  • k3s cluster
Frontend
  • React 19
  • TanStack Start
  • Tailwind v4
Ensemble PGD attack (ResNet-50 + MobileNetV2)
Adjustable epsilon slider
Before/after image comparison
Both model predictions shown side by side
MongoDB job history logging
Presigned S3 download URLs
Private accounts + optional publishing
One-click PNG download
§ 06 · Take it back

Ink,
not datasets.

Inkshield sends your image to a real ensemble PGD attack running on the ML service. The protected file lands in private S3 storage on your account and comes back as a time-limited download link. Load your art, dial in a shield, download the protected file.