Added ability to train control loras. Other important bug fixes thrown in

This commit is contained in:
Jaret Burkett
2025-03-14 18:03:00 -06:00
parent 391329dbdc
commit 3812957bc9
7 changed files with 365 additions and 19 deletions

View File

@@ -491,13 +491,8 @@ class ToolkitNetworkMixin:
keymap = new_keymap
return keymap
def save_weights(
self: Network,
file, dtype=torch.float16,
metadata=None,
extra_state_dict: Optional[OrderedDict] = None
):
def get_state_dict(self: Network, extra_state_dict=None, dtype=torch.float16):
keymap = self.get_keymap()
save_keymap = {}
@@ -506,9 +501,6 @@ class ToolkitNetworkMixin:
# invert them
save_keymap[diffusers_key] = ldm_key
if metadata is not None and len(metadata) == 0:
metadata = None
state_dict = self.state_dict()
save_dict = OrderedDict()
@@ -556,10 +548,22 @@ class ToolkitNetworkMixin:
save_dict = new_save_dict
save_dict = self.base_model_ref().convert_lora_weights_before_save(save_dict)
return save_dict
def save_weights(
self: Network,
file, dtype=torch.float16,
metadata=None,
extra_state_dict: Optional[OrderedDict] = None
):
save_dict = self.get_state_dict(extra_state_dict=extra_state_dict, dtype=dtype)
if metadata is not None and len(metadata) == 0:
metadata = None
if metadata is None:
metadata = OrderedDict()
metadata = add_model_hash_to_meta(state_dict, metadata)
metadata = add_model_hash_to_meta(save_dict, metadata)
if os.path.splitext(file)[1] == ".safetensors":
from safetensors.torch import save_file
save_file(save_dict, file, metadata)