扩散内容复制研究
本仓库包含两篇论文的代码。
环境设置
安装conda环境
conda env create -f env.yaml
conda activate diffrep
我们使用RTX-A6000机器来训练模型。对于推理或计算指标,较小的机器也可以胜任。
微调模型
accelerate launch diff_train.py \
--pretrained_model_name_or_path stabilityai/stable-diffusion-2-1 \
--instance_data_dir <训练数据路径> \
--resolution=256 --gradient_accumulation_steps=1 --center_crop --random_flip \
--learning_rate=5e-6 --lr_scheduler constant_with_warmup \
--lr_warmup_steps=5000 --max_train_steps=100000 \
--train_batch_size=16 --save_steps=10000 --modelsavesteps 20000 --duplication <复制样式> \
--output_dir=<模型保存路径> --class_prompt <条件样式> --instance_prompt_loc <描述文件路径>
<复制样式>
选项包括nodup
、dup_both
、dup_image
。<条件样式>
选项包括nolevel
、classlevel
、instancelevel_blip
、instancelevel_random
。- 要使用缓解策略训练模型,设置
--trainspecial <训练时缓解策略>
。可用选项包括allcaps
、randrepl
、randwordadd
、wordrepeat
。 - 对于训练中的高斯噪声添加,将
--rand_noise_lam
设置为范围[0,1]
内的非零值。
从微调模型进行推理
python diff_inference.py --modelpath <微调模型路径> -nb <推理生成数量>
计算指标
此脚本计算相似度分数、FID分数和其他一些指标。记录到wandb
。
python diff_retrieval.py --arch resnet50_disc --similarity_metric dotproduct --pt_style sscd --dist-url 'tcp://localhost:10001' --world-size 1 --rank 0 --query_dir <生成数据路径> --val_dir <训练数据路径>
缓解策略
对于训练时策略,使用--trainspecial
选项进行训练,然后按上述方式进行推理和计算指标。
对于推理时策略,
python sd_mitigation.py --rand_noise_lam 0.1 --seed 2
python sd_mitigation.py --rand_augs rand_word_repeat --seed 2
python sd_mitigation.py --rand_augs rand_word_add --seed 2
python sd_mitigation.py --rand_augs rand_numb_add --seed 2
数据
在这里下载LAION-10k数据集。
许可证
本仓库根据LICENSE文件中的Apache 2.0许可证发布。
引用我们
引用扩散艺术还是数字伪造?调查扩散模型中的数据复制
@inproceedings{somepalli2023diffusion,
title={Diffusion art or digital forgery? investigating data replication in diffusion models},
author={Somepalli, Gowthami and Singla, Vasu and Goldblum, Micah and Geiping, Jonas and Goldstein, Tom},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={6048--6058},
year={2023}
}
引用理解并缓解扩散模型中的复制现象
@article{somepalli2023understanding,
title={Understanding and Mitigating Copying in Diffusion Models},
author={Somepalli, Gowthami and Singla, Vasu and Goldblum, Micah and Geiping, Jonas and Goldstein, Tom},
journal={arXiv preprint arXiv:2305.20086},
year={2023}
}