Privacy Pass and Draw Things+ Cloud Compute
Draw Things+ Cloud Compute now provides not just privacy-first, but privacy-guaranteed Cloud Compute for media generation tasks.
Draw Things is an app that runs your art generation tasks offline, directly on your device. Still, there are many reasons why you might prefer running art generation on a server, including:
Avoiding excessive on-device battery usage;
Avoiding large local disk usage from downloaded models;
Running larger models that would otherwise be slow or impractical on-device.
However, running art generation on a server often comes with hidden trade-offs that customers may not fully realize:
Their art generations may be subject to DMCA takedowns—even outside the U.S. or within fair use—with little recourse (an imbalance between copyright claims and fair-use defenses).
The text–image pairs they generate can be used as preference data to train better models, or even sold to third parties, often without explicit acknowledgment (most users unknowingly sign away these rights during onboarding).
So-called “privacy-first” claims by service providers are often weak: at best, just policies that can be changed later, and at worst, unenforceable promises quickly broken in the name of “move fast and break things.”
Draw Things+ Cloud Compute
Recognizing the real benefits for our customers, Draw Things introduced Cloud Compute earlier this year, building on our publicly released Server-Offload feature.
The Server-Offload feature allows customers to host art generation servers that the Draw Things app can connect to—either on a powerful local computer (Mac or Linux with NVIDIA GPUs) or a remotely hosted machine from a bare-metal provider. It is fully open-source at https://github.com/drawthingsai/draw-things-community and supports every feature the app can run locally.
Cloud Compute builds directly on Server-Offload. Our GPU servers are hosted by reputable bare-metal providers and run the exact same Docker image we publish publicly at https://hub.docker.com/u/drawthingsai. The authentication front-end also runs on our open-source code, hosted by reputable cloud providers.
By design, Server-Offload / Cloud Compute handles requests ephemerally in RAM only, ensuring your data cannot be stored or inspected later. Many services who claimed privacy-first would be happily stop here. But not us.
Privacy Pass
To turn privacy promises into privacy guarantees, we looked at several approaches:
Homomorphic encryption: promising, but impractical without hardware support and still niche in the crypto world;
Transparency logs: immutable, third-party (or distributed) logs tracking what software runs in the cloud;
Hardware attestation: verifying, via trusted hardware, that the declared software is actually running—often paired with transparency logs;
Security audits: external firms reviewing code and practices to verify that claims match reality.
Inspired by Kagi Search’s Privacy Pass, we chose to implement Privacy Pass as our first step towards providing concrete privacy guarantees to our Cloud Compute customers.
Privacy Pass ensures that even someone with full access to our backend cannot link a specific art generation to a specific customer.
Let’s go over this step-by-step. To effectively prevent abuse while maintaining service quality, we ask customers to sign in with Apple before using Cloud Compute. This enables standard controls: rate-limiting, authentication, prioritization for Draw Things+ users, and more.
Normally, the Draw Things app communicates with our backend in two steps:
Request our authentication endpoint to sign a generation request payload, using a locally saved user ID token (so we can attach queue prioritization and rate-limit data).
Send the signed token to our GPU servers to generate the art.
The problem: the same signed token flows from authentication to GPU servers. In principle, this allows someone to link a user (from authentication endpoint) to their generated art (from GPU servers).
With Privacy Pass, this becomes a three-step process:
Request a Privacy Pass from our backend, using the user ID token locally (we can count issued passes and enforce limits).
Use the unwrapped Privacy Pass (different from the one seen by our backend) to request a signed generation payload from the authentication endpoint.
Send the signed token to GPU servers for art generation.
Because the privacy pass you get in step 1 is different from privacy pass you use for step 2, our backend cannot connect a specific art generation to a specific user. Anonymity is guaranteed.
Availability
Privacy Pass is currently available only to Draw Things+ customers. Each Draw Things+ customer can issue up to 500 Privacy Passes per day. If that limit is exceeded, the system falls back to standard authentication without Privacy Pass.
You can also disable Privacy Pass from Machine Settings. If the shield icon is shown, Privacy Pass is active.