diff --git a/src/diffusers/schedulers/scheduling_ddim.py b/src/diffusers/schedulers/scheduling_ddim.py index 5c3cc6ed7a..13c9b3b4a5 100644 --- a/src/diffusers/schedulers/scheduling_ddim.py +++ b/src/diffusers/schedulers/scheduling_ddim.py @@ -411,6 +411,7 @@ class DDIMScheduler(SchedulerMixin, ConfigMixin): # "predicted x_0" of formula (12) from https://arxiv.org/pdf/2010.02502.pdf if self.config.prediction_type == "epsilon": pred_original_sample = (sample - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5) + pred_epsilon = model_output elif self.config.prediction_type == "sample": pred_original_sample = model_output pred_epsilon = (sample - alpha_prod_t ** (0.5) * pred_original_sample) / beta_prod_t ** (0.5) diff --git a/src/diffusers/schedulers/scheduling_euler_discrete.py b/src/diffusers/schedulers/scheduling_euler_discrete.py index f4a4701541..56757f3ca1 100644 --- a/src/diffusers/schedulers/scheduling_euler_discrete.py +++ b/src/diffusers/schedulers/scheduling_euler_discrete.py @@ -668,6 +668,7 @@ class EulerDiscreteScheduler(SchedulerMixin, ConfigMixin): dt = self.sigmas[self.step_index + 1] - sigma_hat prev_sample = sample + derivative * dt + # Cast sample back to model compatible dtype prev_sample = prev_sample.to(model_output.dtype)