mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Fix img2img DDIM index out of bound
Added a [community solution](https://github.com/CompVis/stable-diffusion/issues/111#issuecomment-1229483511) to fix index out of bound when doing img2img generation with `ddim` sampler. Also, restored `steps_out` to be `ddim_timesteps + 1` since the removal was meant to fix the [1000 steps issue](https://github.com/CompVis/stable-diffusion/issues/111)
This commit is contained in:
parent
0cf11ce488
commit
1c2bd275fe
@ -64,7 +64,8 @@ def make_ddim_timesteps(
|
|||||||
):
|
):
|
||||||
if ddim_discr_method == 'uniform':
|
if ddim_discr_method == 'uniform':
|
||||||
c = num_ddpm_timesteps // num_ddim_timesteps
|
c = num_ddpm_timesteps // num_ddim_timesteps
|
||||||
ddim_timesteps = np.asarray(list(range(0, num_ddpm_timesteps, c)))
|
# ddim_timesteps = np.asarray(list(range(0, num_ddpm_timesteps, c)))
|
||||||
|
ddim_timesteps = (np.arange(0, num_ddim_timesteps) * c).astype(int)
|
||||||
elif ddim_discr_method == 'quad':
|
elif ddim_discr_method == 'quad':
|
||||||
ddim_timesteps = (
|
ddim_timesteps = (
|
||||||
(
|
(
|
||||||
@ -81,8 +82,8 @@ def make_ddim_timesteps(
|
|||||||
|
|
||||||
# assert ddim_timesteps.shape[0] == num_ddim_timesteps
|
# assert ddim_timesteps.shape[0] == num_ddim_timesteps
|
||||||
# add one to get the final alpha values right (the ones from first scale to data during sampling)
|
# add one to get the final alpha values right (the ones from first scale to data during sampling)
|
||||||
# steps_out = ddim_timesteps + 1
|
steps_out = ddim_timesteps + 1
|
||||||
steps_out = ddim_timesteps
|
# steps_out = ddim_timesteps
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
print(f'Selected timesteps for ddim sampler: {steps_out}')
|
print(f'Selected timesteps for ddim sampler: {steps_out}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user