Skip to content

Commit db0f6c7

Browse files
committed
Cascade fix get_timestep_ratio_conditioning
1 parent a6b6d16 commit db0f6c7

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

installer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ def install_ipex(torch_command):
582582

583583

584584
def install_openvino(torch_command):
585-
check_python(supported_minors=[10,11], reason='IPEX backend requires Python 3.10 or 3.11')
585+
check_python(supported_minors=[9, 10, 11], reason='OpenVINO backend requires Python 3.9, 3.10 or 3.11')
586586
log.info('Using OpenVINO')
587587
torch_command = os.environ.get('TORCH_COMMAND', 'torch==2.2.0 torchvision==0.17.0 --index-url https://download.pytorch.org/whl/cpu')
588588
install(os.environ.get('OPENVINO_PACKAGE', 'openvino==2023.3.0'), 'openvino')

modules/model_stablecascade.py

+12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
import os
22
import copy
3+
import torch
34
from modules import shared, devices
45

6+
def get_timestep_ratio_conditioning(t, alphas_cumprod):
7+
s = torch.tensor([0.008]) # diffusers uses 0.003 while the original is 0.008
8+
clamp_range = [0, 1]
9+
min_var = torch.cos(s / (1 + s) * torch.pi * 0.5) ** 2
10+
var = alphas_cumprod[t]
11+
var = var.clamp(*clamp_range)
12+
s, min_var = s.to(var.device), min_var.to(var.device)
13+
ratio = (((var * min_var) ** 0.5).acos() / (torch.pi * 0.5)) * (1 + s) - s
14+
return ratio
15+
516
def load_text_encoder(path):
617
from transformers import CLIPTextConfig, CLIPTextModelWithProjection
718
from accelerate.utils.modeling import set_module_tensor_to_device
@@ -125,6 +136,7 @@ def load_cascade_combined(checkpoint_info, diffusers_load_config):
125136
def cascade_post_load(sd_model):
126137
sd_model.prior_pipe.scheduler.config.clip_sample = False
127138
sd_model.default_scheduler = copy.deepcopy(sd_model.prior_pipe.scheduler)
139+
sd_model.prior_pipe.get_timestep_ratio_conditioning = get_timestep_ratio_conditioning
128140
sd_model.decoder_pipe.text_encoder = sd_model.text_encoder = None # Nothing uses the decoder's text encoder
129141
sd_model.prior_pipe.image_encoder = sd_model.prior_image_encoder = None # No img2img is implemented yet
130142
sd_model.prior_pipe.feature_extractor = sd_model.prior_feature_extractor = None # No img2img is implemented yet

0 commit comments

Comments
 (0)