diff options
author | RcINS <rcins@duck.com> | 2023-02-15 08:57:18 +0000 |
---|---|---|
committer | RcINS <rcins@duck.com> | 2023-02-15 08:57:18 +0000 |
commit | f55a7e04d812e8cb07d622efb321abbad54d2d4a (patch) | |
tree | 644209aa743d7b7aec8f829737ae4f9c558e2d40 /modules/sd_samplers_kdiffusion.py | |
parent | 9e27af76d14dc6d8a5062ab9c0db128a917ada17 (diff) | |
download | stable-diffusion-webui-gfx803-f55a7e04d812e8cb07d622efb321abbad54d2d4a.tar.gz stable-diffusion-webui-gfx803-f55a7e04d812e8cb07d622efb321abbad54d2d4a.tar.bz2 stable-diffusion-webui-gfx803-f55a7e04d812e8cb07d622efb321abbad54d2d4a.zip |
Fix error when batch count > 1
Diffstat (limited to 'modules/sd_samplers_kdiffusion.py')
-rw-r--r-- | modules/sd_samplers_kdiffusion.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/sd_samplers_kdiffusion.py b/modules/sd_samplers_kdiffusion.py index d143d41e..86d657e2 100644 --- a/modules/sd_samplers_kdiffusion.py +++ b/modules/sd_samplers_kdiffusion.py @@ -269,14 +269,15 @@ class KDiffusionSampler: return sigmas
- def create_noise_sampler(self, x, sigmas, seeds):
+ def create_noise_sampler(self, x, sigmas, p):
"""For DPM++ SDE: manually create noise sampler to enable deterministic results across different batch sizes"""
if shared.opts.no_dpmpp_sde_batch_determinism:
return None
from k_diffusion.sampling import BrownianTreeNoiseSampler
sigma_min, sigma_max = sigmas[sigmas > 0].min(), sigmas.max()
- return BrownianTreeNoiseSampler(x, sigma_min, sigma_max, seed=seeds)
+ current_iter_seeds = p.all_seeds[p.iteration * p.batch_size:(p.iteration + 1) * p.batch_size]
+ return BrownianTreeNoiseSampler(x, sigma_min, sigma_max, seed=current_iter_seeds)
def sample_img2img(self, p, x, noise, conditioning, unconditional_conditioning, steps=None, image_conditioning=None):
steps, t_enc = sd_samplers_common.setup_img2img_steps(p, steps)
@@ -302,7 +303,7 @@ class KDiffusionSampler: extra_params_kwargs['sigmas'] = sigma_sched
if self.funcname == 'sample_dpmpp_sde':
- noise_sampler = self.create_noise_sampler(x, sigmas, p.all_seeds)
+ noise_sampler = self.create_noise_sampler(x, sigmas, p)
extra_params_kwargs['noise_sampler'] = noise_sampler
self.model_wrap_cfg.init_latent = x
@@ -337,7 +338,7 @@ class KDiffusionSampler: extra_params_kwargs['sigmas'] = sigmas
if self.funcname == 'sample_dpmpp_sde':
- noise_sampler = self.create_noise_sampler(x, sigmas, p.all_seeds)
+ noise_sampler = self.create_noise_sampler(x, sigmas, p)
extra_params_kwargs['noise_sampler'] = noise_sampler
self.last_latent = x
|