| 123456789101112131415161718192021222324252627 |
- from pathlib import Path
- import modules.shared as shared
- from modules.models import load_model
- def add_lora_to_model(lora_name):
- from peft import PeftModel
- # Is there a more efficient way of returning to the base model?
- if lora_name == "None":
- print("Reloading the model to remove the LoRA...")
- shared.model, shared.tokenizer = load_model(shared.model_name)
- else:
- print(f"Adding the LoRA {lora_name} to the model...")
-
- params = {}
- if shared.args.load_in_8bit:
- params['device_map'] = {'': 0}
- elif not shared.args.cpu:
- params['device_map'] = 'auto'
- params['dtype'] = shared.model.dtype
-
- shared.model = PeftModel.from_pretrained(shared.model, Path(f"loras/{lora_name}"), **params)
- if not shared.args.load_in_8bit and not shared.args.cpu:
- shared.model.half()
|