mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 09:14:35 +02:00
unified logger
This commit is contained in:
@@ -2,6 +2,7 @@ import os
|
||||
import time
|
||||
import diffusers
|
||||
from modules import shared, errors
|
||||
from modules import logger
|
||||
from modules.lora import network
|
||||
from modules.lora import lora_common as l
|
||||
|
||||
@@ -11,7 +12,7 @@ diffuser_scales = []
|
||||
|
||||
|
||||
def load_per_module(sd_model: diffusers.DiffusionPipeline, filename: str, adapter_name: str, lora_modules: list[str]):
|
||||
shared.log.debug(f'LoRA load: modules={lora_modules}')
|
||||
logger.log.debug(f'LoRA load: modules={lora_modules}')
|
||||
try:
|
||||
state_dict = sd_model.lora_state_dict(filename)
|
||||
if isinstance(state_dict, tuple) and len(state_dict) == 2:
|
||||
@@ -19,7 +20,7 @@ def load_per_module(sd_model: diffusers.DiffusionPipeline, filename: str, adapte
|
||||
else:
|
||||
network_alphas = {}
|
||||
except Exception as e:
|
||||
shared.log.error(f'LoRA load: {e}')
|
||||
logger.log.error(f'LoRA load: {e}')
|
||||
if l.debug:
|
||||
errors.display(e, "LoRA")
|
||||
return None
|
||||
@@ -28,24 +29,24 @@ def load_per_module(sd_model: diffusers.DiffusionPipeline, filename: str, adapte
|
||||
if hasattr(sd_model, 'transformer') and sd_model.transformer is not None:
|
||||
sd_model.load_lora_into_transformer(state_dict, transformer=sd_model.transformer, adapter_name=adapter_name)
|
||||
else:
|
||||
shared.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
logger.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
elif lora_module == 'transformer_2':
|
||||
if hasattr(sd_model, 'transformer_2') and sd_model.transformer_2 is not None:
|
||||
sd_model.load_lora_into_transformer(state_dict, transformer=sd_model.transformer_2, adapter_name=adapter_name)
|
||||
else:
|
||||
shared.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
logger.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
elif lora_module == 'unet':
|
||||
if hasattr(sd_model, 'unet') and sd_model.unet is not None:
|
||||
sd_model.load_lora_into_unet(state_dict, network_alphas, unet=sd_model.unet, adapter_name=adapter_name)
|
||||
else:
|
||||
shared.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
logger.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
elif lora_module == 'text_encoder' or lora_module == 'te':
|
||||
if hasattr(sd_model, 'text_encoder') and sd_model.text_encoder is not None:
|
||||
sd_model.load_lora_into_text_encoder(state_dict, network_alphas, text_encoder=sd_model.text_encoder, adapter_name=adapter_name)
|
||||
else:
|
||||
shared.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
logger.log.warning(f'LoRA load: requested={lora_module} missing')
|
||||
else:
|
||||
shared.log.warning(f'LoRA load: requested={lora_module} unknown')
|
||||
logger.log.warning(f'LoRA load: requested={lora_module} unknown')
|
||||
return adapter_name
|
||||
|
||||
|
||||
@@ -53,9 +54,9 @@ def load_diffusers(name: str, network_on_disk: network.NetworkOnDisk, lora_scale
|
||||
t0 = time.time()
|
||||
name = name.replace(".", "_")
|
||||
sd_model: diffusers.DiffusionPipeline = getattr(shared.sd_model, "pipe", shared.sd_model)
|
||||
shared.log.debug(f'Network load: type=LoRA name="{name}" file="{network_on_disk.filename}" detected={network_on_disk.sd_version} method=diffusers scale={lora_scale} fuse={shared.opts.lora_fuse_native}:{shared.opts.lora_fuse_diffusers}')
|
||||
logger.log.debug(f'Network load: type=LoRA name="{name}" file="{network_on_disk.filename}" detected={network_on_disk.sd_version} method=diffusers scale={lora_scale} fuse={shared.opts.lora_fuse_native}:{shared.opts.lora_fuse_diffusers}')
|
||||
if not hasattr(sd_model, 'load_lora_weights'):
|
||||
shared.log.error(f'Network load: type=LoRA class={sd_model.__class__} does not implement load lora')
|
||||
logger.log.error(f'Network load: type=LoRA class={sd_model.__class__} does not implement load lora')
|
||||
return None
|
||||
try:
|
||||
if lora_module is not None and isinstance(lora_module, list) and len(lora_module) > 0:
|
||||
@@ -68,11 +69,11 @@ def load_diffusers(name: str, network_on_disk: network.NetworkOnDisk, lora_scale
|
||||
pass
|
||||
else:
|
||||
if 'following keys have not been correctly renamed' in str(e):
|
||||
shared.log.error(f'Network load: type=LoRA name="{name}" diffusers unsupported format')
|
||||
logger.log.error(f'Network load: type=LoRA name="{name}" diffusers unsupported format')
|
||||
elif 'object has no attribute' in str(e):
|
||||
shared.log.error(f'Network load: type=LoRA name="{name}" diffusers empty module')
|
||||
logger.log.error(f'Network load: type=LoRA name="{name}" diffusers empty module')
|
||||
else:
|
||||
shared.log.error(f'Network load: type=LoRA name="{name}" {e}')
|
||||
logger.log.error(f'Network load: type=LoRA name="{name}" {e}')
|
||||
if l.debug:
|
||||
errors.display(e, "LoRA")
|
||||
return None
|
||||
@@ -82,7 +83,7 @@ def load_diffusers(name: str, network_on_disk: network.NetworkOnDisk, lora_scale
|
||||
list_adapters = sd_model.get_list_adapters()
|
||||
list_adapters = [adapter for adapters in list_adapters.values() for adapter in adapters]
|
||||
if name not in list_adapters:
|
||||
shared.log.error(f'Network load: type=LoRA name="{name}" adapters={list_adapters} not loaded')
|
||||
logger.log.error(f'Network load: type=LoRA name="{name}" adapters={list_adapters} not loaded')
|
||||
else:
|
||||
diffuser_loaded.append(name)
|
||||
diffuser_scales.append(lora_scale)
|
||||
|
||||
Reference in New Issue
Block a user