Describe the bug
Some num_inference_steps values seem to be "problematic" and throw an IndexError.
Also the iteration status output does not end on that value in any relation. If it's on purpose, it's still confusing:
num_inference_steps: 5
6it [00:49, 8.27s/it]
num_inference_steps: 6
8it [01:02, 7.87s/it]
num_inference_steps: 7
9it [01:10, 7.88s/it]
num_inference_steps: 8
9it [01:13, 8.19s/it]
Reproduction
from diffusers import StableDiffusionPipeline
TOKEN = "(censored)"
MODEL_ID = "CompVis/stable-diffusion-v1-4"
pipe = StableDiffusionPipeline.from_pretrained(MODEL_ID, use_auth_token=TOKEN)
res = pipe("a photo of an astronaut riding a horse on mars", num_inference_steps=3, guidance_scale=7.5)
Tested on command line too. Unrelated to PyCharm environment.
Logs
/usr/bin/python3 /home/as/.config/JetBrains/PyCharm2022.2/scratches/scratch.py
0it [00:07, ?it/s]
Traceback (most recent call last):
File "/home/as/.config/JetBrains/PyCharm2022.2/scratches/scratch.py", line 7, in <module>
res = pipe("a photo of an astronaut riding a horse on mars", num_inference_steps=3, guidance_scale=7.5)
File "/home/as/.local/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/usr/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py", line 148, in __call__
latents = self.scheduler.step(noise_pred, t, latents, **extra_step_kwargs)["prev_sample"]
File "/usr/lib/python3.10/site-packages/diffusers/schedulers/scheduling_pndm.py", line 136, in step
return self.step_plms(model_output=model_output, timestep=timestep, sample=sample)
File "/usr/lib/python3.10/site-packages/diffusers/schedulers/scheduling_pndm.py", line 212, in step_plms
prev_sample = self._get_prev_sample(sample, timestep, prev_timestep, model_output)
File "/usr/lib/python3.10/site-packages/diffusers/schedulers/scheduling_pndm.py", line 230, in _get_prev_sample
alpha_prod_t = self.alphas_cumprod[timestep + 1 - self._offset]
IndexError: index 1000 is out of bounds for dimension 0 with size 1000
System Info
diffusers version: 0.4.0.dev0
- Platform: Linux-5.19.7-arch1-1-x86_64-with-glibc2.36
- Python version: 3.10.6
- PyTorch version (GPU?): 1.12.1+cu102 (True)
- Huggingface_hub version: 0.9.1
- Transformers version: 4.21.3
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No
Describe the bug
Some
num_inference_stepsvalues seem to be "problematic" and throw an IndexError.Also the iteration status output does not end on that value in any relation. If it's on purpose, it's still confusing:
num_inference_steps: 5
6it [00:49, 8.27s/it]
num_inference_steps: 6
8it [01:02, 7.87s/it]
num_inference_steps: 7
9it [01:10, 7.88s/it]
num_inference_steps: 8
9it [01:13, 8.19s/it]
Reproduction
Tested on command line too. Unrelated to PyCharm environment.
Logs
System Info
diffusersversion: 0.4.0.dev0