lilijiangg / AutoDiffusion

MIT License
42 stars 4 forks source link

Difference of hyperparameter #8

Open fingerk28 opened 1 year ago

fingerk28 commented 1 year ago

Why some hyperparameters in search_dpm_solver.sh and search_plms_solver.sh are difference? For example, num_sample is 1000, 2000 respectively, and crossover_num is 10, 15 respectively. The differences in these settings are due to the use of different solvers or step sizes (4 or 10)?

Thanks a lot.

lilijiangg commented 1 year ago

Thank you for raising this question. The num_sample parameter is primarily related to the number of steps (time_step). When the number of steps is relatively small (e.g., time_step = 4), a larger num_sample is needed to ensure a relatively accurate estimation of FID. As for crossover_num, its choice has a minimal impact on the final results. We typically opt for a value between 10 and 20 for crossover_num.

fingerk28 commented 11 months ago

Thanks for your reply.

Besides, I use sample_fid_dpm_solver.sh to generate 10k images to compute FID, sFID and IS. (set timesteps as "", using uniform time steps). However, the results are different from the table 7 in the paper. For example, the FID of my implementation is 25.00 but 14.93 in table7, where setting is step=4, and with DDIM solver. Do you know what causes the difference between my implementation and the table 7? (FID, sFID and IS are computed with link)

DPM Solver

Steps FID sFID IS
4 27.38 42.62 21.56
6 25.98 38.84 24.12
10 26.99 37.44 25.46

DDIM Solver

Steps FID sFID IS
4 42.76 41.10 16.64
6 26.39 35.15 22.52
10 25.00 34.26 25.03

Thank you.

fingerk28 commented 11 months ago

Here's my configuration for reference, thanks. Namespace(C=4, H=512, W=512, cal_fid=True, ckpt='~/.cache/huggingface/hub/models--CompVis--stable-diffusion-v-1-4-original/blobs/fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556', config='./configs/stable-diffusion/v1-inference_coco.yaml', data_dir='', ddim_eta=0.0, ddim_steps=10, dpm_solver=True, f=8, fixed_code=False, from_file=None, laion400m=False, n_iter=2, n_rows=0, n_samples=6, num_sample=10000, outdir='~/AutoDiffusion/outputs/uniform_step10_dpm', plms=False, precision='autocast', prompt='a painting of a virus monster playing guitar', save_npy=False, scale=7.5, seed=42, skip_grid=False, skip_save=False, timesteps='')