From 6ae82cbd6eae5011ac4619a029ca2d439ed5aa2a Mon Sep 17 00:00:00 2001 From: Disty0 Date: Fri, 18 Oct 2024 01:26:23 +0300 Subject: [PATCH] Cascade fix default scheduler --- modules/model_stablecascade.py | 4 +--- modules/sd_models.py | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/model_stablecascade.py b/modules/model_stablecascade.py index 44cea1818..444d11adc 100644 --- a/modules/model_stablecascade.py +++ b/modules/model_stablecascade.py @@ -6,7 +6,7 @@ from modules import shared, devices, sd_models def get_timestep_ratio_conditioning(t, alphas_cumprod): - s = torch.tensor([0.008]) # diffusers uses 0.003 while the original is 0.008 + s = torch.tensor([0.008]) clamp_range = [0, 1] min_var = torch.cos(s / (1 + s) * torch.pi * 0.5) ** 2 var = alphas_cumprod[t] @@ -133,8 +133,6 @@ def load_cascade_combined(checkpoint_info, diffusers_load_config): sd_model = StableCascadeCombinedPipeline.from_pretrained(checkpoint_info.path, cache_dir=shared.opts.diffusers_dir, **diffusers_load_config) sd_model.prior_pipe.scheduler.config.clip_sample = False - sd_model.default_scheduler = copy.deepcopy(sd_model.prior_pipe.scheduler) - sd_model.prior_pipe.get_timestep_ratio_conditioning = get_timestep_ratio_conditioning sd_model.decoder_pipe.text_encoder = sd_model.text_encoder = None # Nothing uses the decoder's text encoder sd_model.prior_pipe.image_encoder = sd_model.prior_image_encoder = None # No img2img is implemented yet sd_model.prior_pipe.feature_extractor = sd_model.prior_feature_extractor = None # No img2img is implemented yet diff --git a/modules/sd_models.py b/modules/sd_models.py index ef3960fcf..a8c92bc4e 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -1298,7 +1298,10 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No sd_model.sd_model_hash = checkpoint_info.calculate_shorthash() # pylint: disable=attribute-defined-outside-init sd_model.sd_checkpoint_info = checkpoint_info # pylint: disable=attribute-defined-outside-init sd_model.sd_model_checkpoint = checkpoint_info.filename # pylint: disable=attribute-defined-outside-init - sd_model.default_scheduler = copy.deepcopy(sd_model.scheduler) if hasattr(sd_model, "scheduler") else None + if hasattr(sd_model, "prior_pipe"): + sd_model.default_scheduler = copy.deepcopy(sd_model.prior_pipe.scheduler) if hasattr(sd_model.prior_pipe, "scheduler") else None + else: + sd_model.default_scheduler = copy.deepcopy(sd_model.scheduler) if hasattr(sd_model, "scheduler") else None sd_model.is_sdxl = False # a1111 compatibility item sd_model.is_sd2 = hasattr(sd_model, 'cond_stage_model') and hasattr(sd_model.cond_stage_model, 'model') # a1111 compatibility item sd_model.is_sd1 = not sd_model.is_sd2 # a1111 compatibility item