DDPMPipeline: __call__() got an unexpected keyword argument 'init'
Closed this issue · 2 comments
I installed the lastest diffusers (0.16.1) in root path of the repo.
cd BadDiffusion
git clone https://github.com/huggingface/diffusers
cd diffusers
pip install -e .
After I finished running python baddiffusion.py --project default --mode train+measure --dataset CIFAR10 --batch 128 --epoch 10 --poison_rate 0.1 --trigger BOX_14 --target HAT --ckpt DDPM-CIFAR10-32 --fclip o -o --gpu 0
, the following error occurred.
Traceback (most recent call last):
File "baddiffusion.py", line 626, in train_loop
sampling(config, epoch, pipeline)
File "baddiffusion.py", line 412, in sampling
gen_samples(init=noise, folder="samples")
File "baddiffusion.py", line 372, in gen_samples
pipline_res = pipeline(
File "/home/ait/anaconda3/envs/diff/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
TypeError: __call__() got an unexpected keyword argument 'init'
Traceback (most recent call last):
File "baddiffusion.py", line 650, in <module>
pipeline = train_loop(config, accelerator, repo, model, noise_sched, optimizer, dataloader, lr_sched, start_epoch=cur_epoch, start_step=cur_step)
File "baddiffusion.py", line 639, in train_loop
sampling(config, 'final', pipeline)
File "baddiffusion.py", line 412, in sampling
gen_samples(init=noise, folder="samples")
File "baddiffusion.py", line 372, in gen_samples
pipline_res = pipeline(
File "/home/ait/anaconda3/envs/diff/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
TypeError: __call__() got an unexpected keyword argument 'init'
Traceback (most recent call last):
File "baddiffusion.py", line 650, in <module>
pipeline = train_loop(config, accelerator, repo, model, noise_sched, optimizer, dataloader, lr_sched, start_epoch=cur_epoch, start_step=cur_step)
File "baddiffusion.py", line 639, in train_loop
sampling(config, 'final', pipeline)
File "baddiffusion.py", line 412, in sampling
gen_samples(init=noise, folder="samples")
File "baddiffusion.py", line 372, in gen_samples
pipline_res = pipeline(
File "/home/ait/anaconda3/envs/diff/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
TypeError: __call__() got an unexpected keyword argument 'init'
Should I use older diffusers or modify the source code?
Sorry for the late reply. Since we need to sample from a poisoned noise, we modify the class DDPMPipeline and add an additional arguement init
. Please run bash install.sh
or cd diffusers && pip install .
to install diffusers locally.
Hi, after installing diffusers
locally, I got the following error:
ImportError: cannot import name 'DPMSolverMultistepScheduler' from 'diffusers'
Could you please help? Thanks.