Add files via upload

ver10
hako-mikan 2023-06-25 14:14:28 +09:00 committed by GitHub
parent 935a949ec1
commit fc313940b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 8 deletions

View File

@ -725,7 +725,10 @@ def filenamecutter(name,model_a = False):
def load_models_from_stable_diffusion_checkpoint(v2, ckpt_path, dtype=None):
import diffusers
print("diffusers version : ",diffusers.__version__)
print("version of diffusers must be 0.10.2 to 0.14.0")
version = diffusers.__version__.split(".")[1]
if int(version) > 14:
return None,None,None, f"ERROR: version of diffusers is different, use version 0.10.2 - 0.14.0, your version is {diffusers.__version__}"
state_dict = load_checkpoint_with_text_encoder_conversion(ckpt_path)
if dtype is not None:
for k, v in state_dict.items():
@ -780,7 +783,7 @@ def load_models_from_stable_diffusion_checkpoint(v2, ckpt_path, dtype=None):
info = text_model.load_state_dict(converted_text_encoder_checkpoint)
print("loading text encoder:", info)
return text_model, vae, unet
return text_model, vae, unet, info
def usemodelgen(theta_0,model_a,model_name):
from modules import lowvram, devices, sd_hijack,shared, sd_vae

View File

@ -156,8 +156,11 @@ def makelora(model_a,model_b,dim,saveto,settings,alpha,beta,precision):
print(_err_msg)
return _err_msg
svd(fullpathfromname(model_a),fullpathfromname(model_b),False,dim,precision,saveto,alpha,beta)
return f"saved to {saveto}"
result = svd(fullpathfromname(model_a),fullpathfromname(model_b),False,dim,precision,saveto,alpha,beta)
if "ERROR" in result:
return result
else:
return f"saved to {saveto}"
def lmerge(loranames,loraratioss,settings,filename,dim,precision):
import lora
@ -446,14 +449,16 @@ def svd(model_a,model_b,v2,dim,save_precision,save_to,alpha,beta):
save_dtype = str_to_dtype(save_precision)
if model_a == model_b:
text_encoder_t, _, unet_t = load_models_from_stable_diffusion_checkpoint(v2, model_a)
text_encoder_t, _, unet_t, result = load_models_from_stable_diffusion_checkpoint(v2, model_a)
text_encoder_o, _, unet_o = text_encoder_t, _, unet_t
else:
print(f"loading SD model : {model_b}")
text_encoder_o, _, unet_o = load_models_from_stable_diffusion_checkpoint(v2, model_b)
text_encoder_o, _, unet_o, result = load_models_from_stable_diffusion_checkpoint(v2, model_b)
print(f"loading SD model : {model_a}")
text_encoder_t, _, unet_t = load_models_from_stable_diffusion_checkpoint(v2, model_a)
text_encoder_t, _, unet_t, result = load_models_from_stable_diffusion_checkpoint(v2, model_a)
if "ERROR" in result: return result
# create LoRA network to extract weights: Use dim (rank) as alpha
lora_network_o = create_network(1.0, dim, dim, None, text_encoder_o, unet_o)
@ -550,7 +555,7 @@ def svd(model_a,model_b,v2,dim,save_precision,save_to,alpha,beta):
lora_network_o.save_weights(save_to, save_dtype, metadata)
print(f"LoRA weights are saved to: {save_to}")
return save_to
return "Finished"
def load_state_dict(file_name, dtype):
if os.path.splitext(file_name)[1] == '.safetensors':