From 45be2e92c16df3ff28fc6b15ba374a1a54d16f69 Mon Sep 17 00:00:00 2001 From: comfyanonymous Date: Sat, 17 Jun 2023 20:48:21 -0400 Subject: [PATCH 1/2] Fix DDIM v-prediction. --- comfy/ldm/models/diffusion/ddim.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comfy/ldm/models/diffusion/ddim.py b/comfy/ldm/models/diffusion/ddim.py index c279f2c18..d5649089a 100644 --- a/comfy/ldm/models/diffusion/ddim.py +++ b/comfy/ldm/models/diffusion/ddim.py @@ -284,7 +284,7 @@ class DDIMSampler(object): model_output = model_uncond + unconditional_guidance_scale * (model_t - model_uncond) if self.model.parameterization == "v": - e_t = self.model.predict_eps_from_z_and_v(x, t, model_output) + e_t = extract_into_tensor(self.sqrt_alphas_cumprod, t, x.shape) * model_output + extract_into_tensor(self.sqrt_one_minus_alphas_cumprod, t, x.shape) * x else: e_t = model_output @@ -306,7 +306,7 @@ class DDIMSampler(object): if self.model.parameterization != "v": pred_x0 = (x - sqrt_one_minus_at * e_t) / a_t.sqrt() else: - pred_x0 = self.model.predict_start_from_z_and_v(x, t, model_output) + pred_x0 = extract_into_tensor(self.sqrt_alphas_cumprod, t, x.shape) * x - extract_into_tensor(self.sqrt_one_minus_alphas_cumprod, t, x.shape) * model_output if quantize_denoised: pred_x0, _, *_ = self.model.first_stage_model.quantize(pred_x0) From fb4bf7f591e4c0917e66814370216ef7858c6b6a Mon Sep 17 00:00:00 2001 From: comfyanonymous Date: Sun, 18 Jun 2023 03:18:25 -0400 Subject: [PATCH 2/2] This is not needed anymore and causes issues with alphas_cumprod. --- comfy/sd.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/comfy/sd.py b/comfy/sd.py index 24806dd01..7f04ae3a7 100644 --- a/comfy/sd.py +++ b/comfy/sd.py @@ -1159,9 +1159,6 @@ def load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, o else: model = model_base.BaseModel(unet_config, v_prediction=v_prediction) - if fp16: - model = model.half() - model = load_model_weights(model, sd, verbose=False, load_state_dict_to=load_state_dict_to) return (ModelPatcher(model), clip, vae, clipvision)