Please follow the steps for the executable not the website:
A cross-platform desktop application for protecting images against deepfake AI manipulation using adversarial noise techniques.
- Drag-and-drop image upload
- 5 protection levels from subtle to maximum
- Photo library for managing protected images
- Side-by-side comparison view
- macOS native-style interface
| Level | Name | Techniques |
|---|---|---|
| 1 | Subtle | Light Gaussian noise |
| 2 | Moderate | Medium Gaussian noise |
| 3 | Standard | Gaussian noise + color channel perturbation |
| 4 | Strong | Gaussian noise + high-frequency adversarial pattern |
| 5 | Maximum | All techniques + JPEG poisoning |
- Node.js 18+
- npm or yarn
cd DesktopExecutable
npm installRun the app in development mode with hot reload:
npm run electron:devBuild the production app for macOS:
npm run electron:build- Electron - Desktop framework
- React 19 - UI library
- Vite - Build tool
- Jimp - Image processing
Create an app that will take a user's photo and make small changes to it such that a malicious third party cannot make a deep fake on it.
Arman Sajjadian: ArmanSajjadian
Rohil Jain: RohilJainUCSB
Milad Haghighi: mHaghighi04
John Vu: jjohnvu
Anit Annadi: AnitAnnadi
Srish Nigam: EpicSRN021
Sharanya Gehlot: sharanya444
Henry Bartz: Bartz36
Our project uses a React frontend (bundled with Vite) that talks to a FastAPI backend written in Python, where we load a PyTorch model and apply adversarial masking using the torchattacks library; this combination lets us build a responsive, modern UI while offloading the heavy image-processing work to a scalable API layer. We plan to deploy the frontend and backend using Vercel and/or similar cloud infrastructure, so teammates can iterate quickly on the UI while others experiment with different masking algorithms behind a stable HTTP interface. This setup gives us a clear separation of concerns—frontend handles user interaction and upload flow, backend focuses on ML and security logic—making it easier to swap in new models or masking strategies as we refine our deepfake protection approach.
https://pj06-deep-fake-protection-git-main-mhaghighi04s-projects.vercel.app/
User Roles: We have a single user role: anyone who wants to post images online and protect them from malicious actors who may create deepfakes.
How does your app allow them to accomplish their goal? Our app will include a masking feature that alters the user's image in a way that is undetectable to the human eye, but throws off a deepfake algorithm.
A browser and search engine of choice
Dependencies
React for the frontend, FastAPI for the backend API, PyTorch and torchattacks for generating adversarial noise on images, and Vercel (or similar) to deploy our app.
TODO: Describe the installation process (making sure you give complete instructions to get your project going from scratch). Instructions need to be such that a user can just copy/paste the commands to get things set up and running. Note that with the use of GitHub Actions, these instructions can eventually be fully automated (e.g.,\ with act, you can run GitHub Actions locally).
Functionality
Click the select image button, then select an image you would like to protect. Ensure your image follows the guidelines, and then select the upload button. You will then be given the image with the filter placed on it.
Known Problems
We do not yet have the best image protection algorithm in place.