├── .DS_Store ├── README.md ├── __pycache__ ├── main.cpython-310.pyc └── schemas.cpython-310.pyc ├── assets ├── 25_0_combined_A.png ├── 392_1_combined_B.png ├── 58_2_combined_A.png ├── 62_1_combined_A.png ├── 62_1_combined_B.png ├── 91_1_combined_B.png ├── 96_1_combined_A.png ├── blue1.png ├── ddf_train_loss_images.png ├── ddf_val_loss_acc.png ├── ezgif.com-animated-gif-maker.gif ├── loss.png ├── lr.png ├── output_e18000.png ├── pipeline.png ├── swapping.png └── upload.png ├── backend ├── .gitignore ├── __init__.py ├── ddf │ ├── DiffJPEG_pytorch │ │ ├── DiffJPEG.py │ │ ├── README.md │ │ ├── compression.py │ │ ├── decompression.py │ │ ├── modules │ │ │ ├── __init__.py │ │ │ ├── compression.py │ │ │ └── decompression.py │ │ └── utils.py │ ├── DualDefense_gan_fs.py │ ├── __init__.py │ ├── adv.py │ ├── assets │ │ ├── 25_0_combined_A.png │ │ ├── 58_2_combined_A.png │ │ ├── byeon_total5.jpg │ │ ├── cha_total2.jpg │ │ ├── output_A2B.png │ │ ├── output_B2A.png │ │ └── output_e18000.png │ ├── config.yaml │ ├── config2.yaml │ ├── data │ │ └── haarcascade_frontalface_alt.xml │ ├── dataset.py │ ├── decoder_fs.py │ ├── encoder_fs.py │ ├── engine │ │ ├── dwt.py │ │ └── utils.py │ ├── facenet_pytorch │ │ └── models │ │ │ ├── inception_resnet_v1.py │ │ │ ├── mtcnn.py │ │ │ └── utils │ │ │ ├── detect_face.py │ │ │ ├── download.py │ │ │ ├── tensorflow2pytorch.py │ │ │ └── training.py │ ├── faceswap_pytorch │ │ ├── __init__.py │ │ ├── image_augmentation.py │ │ ├── models.py │ │ ├── padding_same_conv.py │ │ ├── train.py │ │ ├── training_data.py │ │ ├── umeyama.py │ │ └── util.py │ ├── loss.py │ ├── main.py │ ├── scripts │ │ ├── run_test.sh │ │ └── run_train.sh │ ├── test.py │ ├── train.py │ └── upload.js ├── main.py ├── posts │ └── posts.json ├── requirements.txt └── schemas.py ├── frontend ├── .gitignore ├── README.md ├── components.json ├── eslint.config.mjs ├── lib │ └── utils.ts ├── next.config.ts ├── package-lock.json ├── package.json ├── postcss.config.mjs ├── public │ ├── byeon │ │ ├── byeon_1.png │ │ ├── byeon_2.png │ │ ├── byeon_3.png │ │ ├── byeon_4.png │ │ └── byeon_5.png │ ├── cha │ │ ├── chaeunwoo2.jpg │ │ ├── chaeunwoo3.png │ │ ├── chaeunwoo4.png │ │ └── chaeunwoo5.png │ ├── chu │ │ ├── chuu1.png │ │ ├── chuu2.png │ │ ├── chuu3.png │ │ ├── chuu4.png │ │ ├── chuu5.png │ │ ├── chuu6.png │ │ ├── chuu7.png │ │ ├── chuu8.png │ │ └── chuu9.png │ ├── file.svg │ ├── globe.svg │ ├── next.svg │ ├── panel.png │ ├── vercel.svg │ ├── win │ │ ├── winter1.png │ │ ├── winter2.png │ │ └── winter3.png │ └── window.svg ├── src │ ├── components │ │ ├── Info.js │ │ └── Navbar.js │ ├── pages │ │ ├── _app.js │ │ ├── _document.js │ │ ├── api │ │ │ └── images.js │ │ ├── attack │ │ │ └── index.js │ │ ├── index.js │ │ ├── panel.js │ │ └── upload.js │ └── styles │ │ └── globals.css ├── tailwind.config.js ├── tailwind.config.ts └── tsconfig.json ├── package-lock.json ├── package.json └── requirements.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finallyupper/deepsafe/5379bed6e70214b3a9798f476d888d24e7341437/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # deepsafe 2 | ## Introduction 3 | The misuse of deepfake technology poses serious security threats, such as identity theft. DeepSafe is a defense system that employs an Adversarial Robust Watermarking technique to disrupt face-swapping models while enabling image source tracking. Based on the [Dual Defense framework](https://ieeexplore.ieee.org/document/10486948), this system utilizes the Original-domain Feature Emulation Attack (OFEA) method to embed an invisible watermark, preventing face swapping while ensuring identity traceability. 4 | 5 |
Original Image / Encoded / Protected 🔒/ Attacked 🔓
8 |
23 |
24 |
65 |
66 |
67 |
70 |
71 |
85 |
Original Image → Encoded ✅ → Protected 😀🔒 → Attacked 🥵🔓 |
88 |
---|
![]() |
91 |
![]() |
94 |
![]() |
97 |
![]() |
100 |
![]() |
103 |
125 | Upload an image and add a title and content for your post. 126 |
127 | 128 | 129 |49 | Protect face swaps. We will watermark the image if you upload some image. 50 |
51 | 52 | {/* Upload Button */} 53 | 59 | 60 | {/* Posts Grid */} 61 |{selectedPost.content}
111 |post by {selectedPost.user}
113 |25 | Protect face swaps. We will watermark the image if you upload some image. 26 |
27 |Image is being encoded...
127 |137 | Upload an image and add a title and content for your post. 138 |
139 | 140 | 141 |