| 329 | return new_sd |
| 330 | |
| 331 | def load_lora_for_models(model, clip, lora, strength_model, strength_clip): |
| 332 | key_map = {} |
| 333 | if model is not None: |
| 334 | key_map = comfy.lora.model_lora_keys_unet(model.model, key_map) |
| 335 | if clip is not None: |
| 336 | key_map = comfy.lora.model_lora_keys_clip(clip.cond_stage_model, key_map) |
| 337 | |
| 338 | lora = comfy.lora_convert.convert_lora(lora) |
| 339 | loaded = comfy.lora.load_lora(lora, key_map) |
| 340 | if model is not None: |
| 341 | new_modelpatcher = model.clone() |
| 342 | k = new_modelpatcher.add_patches(loaded, strength_model) |
| 343 | else: |
| 344 | k = () |
| 345 | new_modelpatcher = None |
| 346 | |
| 347 | if clip is not None: |
| 348 | new_clip = clip.clone() |
| 349 | k1 = new_clip.add_patches(loaded, strength_clip) |
| 350 | else: |
| 351 | k1 = () |
| 352 | new_clip = None |
| 353 | k = set(k) |
| 354 | k1 = set(k1) |
| 355 | for x in loaded: |
| 356 | if (x not in k) and (x not in k1): |
| 357 | logging.warning("NOT LOADED {}".format(x)) |
| 358 | |
| 359 | return (new_modelpatcher, new_clip) |
| 360 | |
| 361 | def apply_lora(model, device_to, transformer_load_device, params_to_keep=None, dtype=None, base_dtype=None, state_dict=None, low_mem_load=False): |
| 362 | to_load = [] |