From 2a2921c1775d29ed3577bb4590ba0647a5dd3e62 Mon Sep 17 00:00:00 2001 From: Matt Parnell Date: Fri, 19 May 2023 23:26:36 -0500 Subject: [PATCH 1/2] add missing check for empty tensor --- modules/sd_samplers_kdiffusion.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/sd_samplers_kdiffusion.py b/modules/sd_samplers_kdiffusion.py index e83850da2..1477553a4 100644 --- a/modules/sd_samplers_kdiffusion.py +++ b/modules/sd_samplers_kdiffusion.py @@ -308,9 +308,17 @@ class KDiffusionSampler: def create_noise_sampler(self, x, sigmas, p): from k_diffusion.sampling import BrownianTreeNoiseSampler - sigma_min, sigma_max = sigmas[sigmas > 0].min(), sigmas.max() - 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) + + positive_sigmas = sigmas[sigmas > 0] + + if positive_sigmas.numel() > 0: + sigma_min = positive_sigmas.min(dim=0)[0] + else: + sigma_min = 0 + + sigma_max = sigmas.max() + 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) From 1237782f47786a090cf9b292e74175accfeec29e Mon Sep 17 00:00:00 2001 From: Matt Parnell Date: Fri, 19 May 2023 23:45:51 -0500 Subject: [PATCH 2/2] oops --- modules/sd_samplers_kdiffusion.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/sd_samplers_kdiffusion.py b/modules/sd_samplers_kdiffusion.py index 1477553a4..3dbc9498f 100644 --- a/modules/sd_samplers_kdiffusion.py +++ b/modules/sd_samplers_kdiffusion.py @@ -316,9 +316,9 @@ class KDiffusionSampler: else: sigma_min = 0 - sigma_max = sigmas.max() - 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) + sigma_max = sigmas.max() + 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)