diff --git a/ldm_patched/modules/model_sampling.py b/ldm_patched/modules/model_sampling.py index b438ea56..da5cc3a6 100644 --- a/ldm_patched/modules/model_sampling.py +++ b/ldm_patched/modules/model_sampling.py @@ -76,13 +76,7 @@ class ModelSamplingDiscrete(torch.nn.Module): def timestep(self, sigma): log_sigma = sigma.log() dists = log_sigma.to(self.log_sigmas.device) - self.log_sigmas[:, None] - low_idx = dists.ge(0).cumsum(dim=0).argmax(dim=0).clamp(max=self.log_sigmas.shape[0] - 2) - high_idx = low_idx + 1 - low, high = self.log_sigmas[low_idx], self.log_sigmas[high_idx] - w = (low - log_sigma) / (low - high) - w = w.clamp(0, 1) - t = (1 - w) * low_idx + w * high_idx - return t.view(sigma.shape) + return dists.abs().argmin(dim=0).view(sigma.shape).to(sigma.device) def sigma(self, timestep): t = torch.clamp(timestep.float().to(self.log_sigmas.device), min=0, max=(len(self.sigmas) - 1)) diff --git a/modules/processing.py b/modules/processing.py index 4528866c..2453bf99 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -917,13 +917,11 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: alphas_cumprod_backup = p.sd_model.alphas_cumprod for modifier in alphas_cumprod_modifiers: p.sd_model.alphas_cumprod = modifier(p.sd_model.alphas_cumprod) - p.sd_model.forge_objects.unet.model.model_sampling.set_sigmas(((1 - p.sd_model.alphas_cumprod) / p.sd_model.alphas_cumprod) ** 0.5) samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) if alphas_cumprod_backup is not None: p.sd_model.alphas_cumprod = alphas_cumprod_backup - p.sd_model.forge_objects.unet.model.model_sampling.set_sigmas(((1 - p.sd_model.alphas_cumprod) / p.sd_model.alphas_cumprod) ** 0.5) if p.scripts is not None: ps = scripts.PostSampleArgs(samples_ddim)