目录
"Anti-DreamBooth: 保护用户免受个性化文本到图像合成的影响"(ICCV'23)的官方PyTorch实现
摘要: 文本到图像扩散模型无疑是一场革命,它让任何人,即使没有设计技能,也能从简单的文本输入创建逼真的图像。借助像DreamBooth这样强大的个性化工具,它们可以仅通过学习少量参考图像就生成特定人物的图像。然而,当被滥用时,这种强大而便捷的工具可能会产生针对任何个人受害者的假新闻或令人不安的内容,造成严重的负面社会影响。在本文中,我们探索了一个名为Anti-DreamBooth的防御系统,以对抗DreamBooth的这种恶意使用。该系统旨在在发布前为每个用户的图像添加微妙的噪声扰动,以破坏任何在这些受扰动图像上训练的DreamBooth模型的生成质量。我们研究了广泛的扰动优化算法,并在两个面部数据集上对各种文本到图像模型版本进行了广泛的评估。尽管DreamBooth和基于扩散的文本到图像模型的公式复杂,但我们的方法有效地保护用户免受这些模型的恶意使用。即使在不利条件下,如训练和测试之间的模型或提示/术语不匹配,它们的有效性仍然保持不变。
简介: 安全亭通过防止DreamBooth合成目标个人的逼真图像来保护您的隐私免受恶意威胁。
算法详细信息和实验结果可以在我们的论文中找到:
@InProceedings{le_etal2023antidreambooth,
title={Anti-DreamBooth: Protecting users from personalized text-to-image synthesis},
author={Thanh Van Le, Hao Phung, Thuan Hoang Nguyen, Quan Dao, Ngoc Tran and Anh Tran},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2023}
}
请在使用此存储库帮助产生已发表的结果或将其纳入其他软件时引用我们的论文。
新闻
环境设置
我们的代码依赖于来自Hugging Face 🤗的diffusers库和ShivamShrirao的diffusers分支中的潜在缓存实现。
安装依赖项:
cd Anti-DreamBooth
conda create -n anti-dreambooth python=3.9
conda activate anti-dreambooth
pip install -r requirements.txt
不同Stable Diffusion版本的预训练检查点可以从下表提供的链接下载:
请将它们放在./stable-diffusion/
中。注意:Stable Diffusion版本2.1是我们所有实验中的默认版本。
GPU分配:所有实验都在单个NVIDIA 40GB A100 GPU上执行。
数据集准备
我们在以下两个数据集上进行了实验:
- VGGFace2:包含约331万张9131个人身份的图像。我们只使用至少有15张分辨率高于500×500的图像的主体。
- CelebA-HQ:由30,000张1024×1024分辨率的图像组成。我们使用来自这里的注释子集,该子集过滤并将图像分组为307个主体,每个主体至少有15张图像。
在这项研究中,我们从每个数据集中选择50个身份,并根据良好的姿势和光照为每个个体精心挑选12张图像的子集。这些示例均匀分为3个子集,包括参考清洁集(集合A),目标投影集(集合B),以及用于非受控设置实验的额外清洁集(集合C)。每个数据集的完整拆分集在这里提供。
为了方便测试,我们在./data/n000050/
提供了VGGFace2中一个主体的拆分集。
如何运行
要使用非定向ASPL防御Stable Diffusion版本2.1(默认),您可以运行
bash scripts/attack_with_aspl.sh
要使用定向ASPL防御Stable Diffusion版本2.1,您可以运行
bash scripts/attack_with_targeted_aspl.sh
相同的运行程序适用于其他支持的算法:
算法 | Bash脚本 |
---|---|
E-ASPL | scripts/attack_with_ensemble_aspl.sh |
FSMG | scripts/attack_with_fsmg.sh |
T-FSMG | scripts/attack_with_targeted_fsmg.sh |
E-FSMG | scripts/attack_with_ensemble_fsmg.sh |
如果您想从自己的数据训练DreamBooth模型,无论是清洁的还是受扰动的,都可以运行以下脚本:
bash scripts/train_dreambooth_alone.sh
推理:使用多个提示生成示例
python infer.py --model_path <DreamBooth模型路径>/checkpoint-1000 --output_dir ./test-infer/
联系方式
如果您有任何问题,请在此存储库中提出问题或发送电子邮件至imthanhlv@gmail.com。