downgrade diffusers

This commit is contained in:
Vladimir Mandic
2023-09-15 13:41:56 -04:00
parent b67e986ec3
commit d833b853ff
5 changed files with 20 additions and 4 deletions
+5
View File
@@ -1,5 +1,10 @@
# Change Log for SD.Next
## Update for 2023-09-15
Downgrade of `diffusers` to 0.20.2 due to critical issue with model offloading
This means that new model **Wuerstchen** is not supported until diffusers issue is resolved
## Update for 2023-09-13
Started as a mostly a service release with quite a few fixes, but then...
+10 -2
View File
@@ -187,8 +187,13 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
negative_embed = None
negative_pooled = None
prompts, negative_prompts, prompts_2, negative_prompts_2 = fix_prompts(prompts, negative_prompts, prompts_2, negative_prompts_2)
if shared.opts.prompt_attention in {'Compel parser', 'Full parser'} and 'StableDiffusion' in model.__class__.__name__:
prompt_embed, pooled, negative_embed, negative_pooled = prompt_parser_diffusers.compel_encode_prompts(model, prompts, negative_prompts, prompts_2, negative_prompts_2, is_refiner, kwargs.pop("clip_skip", None))
parser = 'Fixed attention'
if shared.opts.prompt_attention != 'Fixed attention' and 'StableDiffusion' in model.__class__.__name__:
try:
prompt_embed, pooled, negative_embed, negative_pooled = prompt_parser_diffusers.compel_encode_prompts(model, prompts, negative_prompts, prompts_2, negative_prompts_2, is_refiner, kwargs.pop("clip_skip", None))
parser = shared.opts.prompt_attention
except Exception as e:
shared.log.error(f'Prompt parser: {e}')
if 'prompt' in possible:
if hasattr(model, 'text_encoder') and 'prompt_embeds' in possible and prompt_embed is not None:
if type(pooled) == list:
@@ -244,7 +249,10 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
if 'negative_pooled_prompt_embeds' in clean:
clean['negative_pooled_prompt_embeds'] = clean['negative_pooled_prompt_embeds'].shape if torch.is_tensor(clean['negative_pooled_prompt_embeds']) else type(clean['negative_pooled_prompt_embeds'])
clean['generator'] = generator_device
clean['parser'] = parser
shared.log.debug(f'Diffuser pipeline: {model.__class__.__name__} task={sd_models.get_diffusers_task(model)} set={clean}')
# components = [{ k: getattr(v, 'device', None) } for k, v in model.components.items()]
# shared.log.debug(f'Diffuser pipeline components: {components}')
return args
def recompile_model(hires=False):
+2 -1
View File
@@ -179,6 +179,7 @@ def compel_encode_prompt(
return prompt_embed, positive_pooled, negative_embed, negative_pooled
# neither base+sdxl nor refiner+sdxl
positive, negative = compel_te1(prompt), compel_te1(negative_prompt)
positive = compel_te1(prompt)
negative = compel_te1(negative_prompt)
[prompt_embed, negative_embed] = compel_te1.pad_conditioning_tensors_to_same_length([positive, negative])
return prompt_embed, None, negative_embed, None
+2
View File
@@ -762,6 +762,8 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
diffusers_load_config.pop('safety_checker', None)
diffusers_load_config.pop('requires_safety_checker', None)
diffusers_load_config.pop('load_safety_checker', None)
diffusers_load_config.pop('config_files', None)
diffusers_load_config.pop('local_files_only', None)
shared.log.debug(f'Setting {op}: pipeline={sd_model.__class__.__name__} config={diffusers_load_config}') # pylint: disable=protected-access
except Exception as e:
shared.log.error(f'Diffusers failed loading model using pipeline: {checkpoint_info.path} {shared.opts.diffusers_pipeline} {e}')
+1 -1
View File
@@ -47,7 +47,7 @@ requests==2.31.0
tqdm==4.66.1
accelerate==0.20.3
opencv-python-headless==4.7.0.72
diffusers==0.21.1
diffusers==0.20.2
einops==0.4.1
gradio==3.43.2
huggingface_hub==0.17.1