From ed1acb3d8cf14fe4220556130cd31f373a67ed34 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 23 Apr 2023 08:41:26 -0400 Subject: [PATCH] update lora logic --- TODO.md | 5 ++--- extensions-builtin/Lora/lora.py | 13 +++++-------- extensions-builtin/sd-webui-controlnet | 2 +- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/TODO.md b/TODO.md index c9fd8e1d6..6c58525e1 100644 --- a/TODO.md +++ b/TODO.md @@ -25,8 +25,6 @@ Stuff to be added... Stuff to be investigated... -- Best practices for **Apple M1** -- Best practices for **AMD GPUs** - Torch Compile - `Torch-DirectML` - `TensorRT` @@ -64,6 +62,7 @@ Tech that can be integrated as part of the core workflow... should fix most issues with NaN or black images - add built-in Gradio themes - fix setup race conditions -- fix requirements +- reduce requirements - more AMD specific work +- initial work on Apple platform support - additional PR merges diff --git a/extensions-builtin/Lora/lora.py b/extensions-builtin/Lora/lora.py index fe2ff7016..3cbd91646 100644 --- a/extensions-builtin/Lora/lora.py +++ b/extensions-builtin/Lora/lora.py @@ -1,8 +1,8 @@ import glob import os import re -import torch from typing import Union +import torch from modules import shared, devices, sd_models, errors @@ -139,9 +139,7 @@ def load_lora(name, filename): lora_key_parts = key_diffusers.split(".", 1) key_diffusers_without_lora_parts = lora_key_parts[0] lora_key = lora_key_parts[1] if len(lora_key_parts) > 1 else "" - key = convert_diffusers_name_to_compvis(key_diffusers_without_lora_parts, is_sd2) - sd_module = shared.sd_model.lora_layer_mapping.get(key, None) if sd_module is None: @@ -173,7 +171,6 @@ def load_lora(name, filename): else: print(f'Lora layer {key_diffusers} matched a layer with unsupported type: {type(sd_module).__name__}') continue - assert False, f'Lora layer {key_diffusers} matched a layer with unsupported type: {type(sd_module).__name__}' with torch.no_grad(): module.weight.copy_(weight) @@ -321,10 +318,10 @@ def lora_reset_cached_weight(self: Union[torch.nn.Conv2d, torch.nn.Linear]): setattr(self, "lora_weights_backup", None) -def lora_Linear_forward(self, input): +def lora_Linear_forward(self, lora_input): lora_apply_weights(self) - return torch.nn.Linear_forward_before_lora(self, input) + return torch.nn.Linear_forward_before_lora(self, lora_input) def lora_Linear_load_state_dict(self, *args, **kwargs): @@ -333,10 +330,10 @@ def lora_Linear_load_state_dict(self, *args, **kwargs): return torch.nn.Linear_load_state_dict_before_lora(self, *args, **kwargs) -def lora_Conv2d_forward(self, input): +def lora_Conv2d_forward(self, lora_input): lora_apply_weights(self) - return torch.nn.Conv2d_forward_before_lora(self, input) + return torch.nn.Conv2d_forward_before_lora(self, lora_input) def lora_Conv2d_load_state_dict(self, *args, **kwargs): diff --git a/extensions-builtin/sd-webui-controlnet b/extensions-builtin/sd-webui-controlnet index a8f45816e..5eadd2483 160000 --- a/extensions-builtin/sd-webui-controlnet +++ b/extensions-builtin/sd-webui-controlnet @@ -1 +1 @@ -Subproject commit a8f45816e340366dd212522e4c8dd63965d9848c +Subproject commit 5eadd24830d05ae2eaeeb600632964d407d0b730