The code for unconditional generation is modified from BadDiffusion. Thanks for their excellent work!
Python 3.9.15
Pytorch 1.12.1, Cuda 11.6
pip install -r ./requirements.txt
To train an unconditional backdoored model with learnable invisible triggers on CIFAR10, run:
python main_optimized.py --project default --mode train+measure --dataset CIFAR10 --batch 128 --epoch 50 --poison_rate 0.1 --trigger STOP_SIGN_14 --target HAT --ckpt DDPM-CIFAR10-32 --fclip o -o --gpu 0
The code for conditional generation is modified mainly based on OpenAI GLIDE. Some code is modified from BadDiffusion and Free-form mask generation(https://github.com/JiahuiYu/generative_inpainting, https://github.com/Janspiry/Palette-Image-to-Image-Diffusion-Models). Thanks for their excellent works!
Since the codebase for conditional generation is different from unconditional generation, please follow the guide in GLIDE to setup the environment. Then run
cd glide
The conditional generation uses MS COCO 2014 dataset. Please download the dataset from the website. The default path for the dataset is ../data/train2014
, and you can modify it in poison_data.py
.
To train a conditional backdoored model with invisible triggers on MS COCO, run:
python main_optimized.py --project default --mode train+measure --epoch 5 --fclip w -o --gpu 0