mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
@@ -134,7 +134,11 @@ def network_add_weights(self: Union[torch.nn.Conv2d, torch.nn.Linear, torch.nn.G
|
||||
new_weight = model_weights.to(devices.device) + lora_weights.to(devices.device)
|
||||
except Exception as e:
|
||||
shared.log.warning(f'Network load: {e}')
|
||||
new_weight = model_weights + lora_weights # try without device cast
|
||||
if 'The size of tensor' in str(e):
|
||||
shared.log.error(f'Network load: type=LoRA model={shared.sd_model.__class__.__name__} incompatible lora shape')
|
||||
new_weight = model_weights
|
||||
else:
|
||||
new_weight = model_weights + lora_weights # try without device cast
|
||||
weight = torch.nn.Parameter(new_weight.to(device), requires_grad=False)
|
||||
if weight is not None:
|
||||
if not bias:
|
||||
|
||||
@@ -33,7 +33,7 @@ def network_activate(include=[], exclude=[]):
|
||||
pbar = nullcontext()
|
||||
applied_weight = 0
|
||||
applied_bias = 0
|
||||
device = devices.device if shared.opts.lora_apply_gpu or shared.opts.diffusers_offload_mode == 'none' else devices.cpu
|
||||
device = devices.device if shared.opts.lora_apply_gpu or (shared.opts.diffusers_offload_mode == 'none') or (shared.sd_model_type == 'sd') else devices.cpu
|
||||
with devices.inference_context(), pbar:
|
||||
wanted_names = tuple((x.name, x.te_multiplier, x.unet_multiplier, x.dyn_dim) for x in l.loaded_networks) if len(l.loaded_networks) > 0 else ()
|
||||
applied_layers.clear()
|
||||
@@ -95,7 +95,7 @@ def network_deactivate(include=[], exclude=[]):
|
||||
modules[name] = list(component.named_modules())
|
||||
active_components.append(name)
|
||||
total = sum(len(x) for x in modules.values())
|
||||
device = devices.device if shared.opts.lora_apply_gpu else devices.cpu
|
||||
device = devices.device if shared.opts.lora_apply_gpu or (shared.opts.diffusers_offload_mode == 'none') or (shared.sd_model_type == 'sd') else devices.cpu
|
||||
if len(l.previously_loaded_networks) > 0 and l.debug:
|
||||
pbar = rp.Progress(rp.TextColumn('[cyan]Network: type=LoRA action=deactivate'), rp.BarColumn(), rp.TaskProgressColumn(), rp.TimeRemainingColumn(), rp.TimeElapsedColumn(), rp.TextColumn('[cyan]{task.description}'), console=shared.console)
|
||||
task = pbar.add_task(description='', total=total)
|
||||
|
||||
+15
-15
@@ -24,29 +24,29 @@ def detect_pipeline(f: str, op: str = 'model', warning=True, quiet=False):
|
||||
elif (size >= 316 and size <= 324) or (size >= 156 and size <= 164): # 320 or 160
|
||||
warn(f'Model detected as VAE model, but attempting to load as model: {op}={f} size={size} MB')
|
||||
guess = 'VAE'
|
||||
elif (size >= 4970 and size <= 4976): # 4973
|
||||
guess = 'Stable Diffusion 2' # SD v2 but could be eps or v-prediction
|
||||
# elif size < 0: # unknown
|
||||
# guess = 'Stable Diffusion 2B'
|
||||
elif (size >= 5791 and size <= 5799): # 5795
|
||||
if op == 'model':
|
||||
warn(f'Model detected as SD-XL refiner model, but attempting to load a base model: {op}={f} size={size} MB')
|
||||
guess = 'Stable Diffusion XL Refiner'
|
||||
elif (size >= 6611 and size <= 7220): # 6617, HassakuXL is 6776, monkrenRealisticINT_v10 is 7217
|
||||
elif (size >= 2002 and size <= 2038): # 2032
|
||||
guess = 'Stable Diffusion 1.5'
|
||||
elif (size >= 3138 and size <= 3142): #3140
|
||||
guess = 'Stable Diffusion XL'
|
||||
elif (size >= 3361 and size <= 3369): # 3368
|
||||
guess = 'Stable Diffusion Upscale'
|
||||
elif (size >= 4891 and size <= 4899): # 4897
|
||||
guess = 'Stable Diffusion XL Inpaint'
|
||||
elif (size >= 9791 and size <= 9799): # 9794
|
||||
guess = 'Stable Diffusion XL Instruct'
|
||||
elif (size > 3138 and size < 3142): #3140
|
||||
guess = 'Stable Diffusion XL'
|
||||
elif (size >= 4970 and size <= 4976): # 4973
|
||||
guess = 'Stable Diffusion 2' # SD v2 but could be eps or v-prediction
|
||||
elif (size >= 5791 and size <= 5799): # 5795
|
||||
if op == 'model':
|
||||
warn(f'Model detected as SD-XL refiner model, but attempting to load a base model: {op}={f} size={size} MB')
|
||||
guess = 'Stable Diffusion XL Refiner'
|
||||
elif (size > 5692 and size < 5698) or (size > 4134 and size < 4138) or (size > 10362 and size < 10366) or (size > 15028 and size < 15228):
|
||||
guess = 'Stable Diffusion 3'
|
||||
elif (size > 18414 and size < 18420): # sd35-large aio
|
||||
elif (size >= 6611 and size <= 7220): # 6617, HassakuXL is 6776, monkrenRealisticINT_v10 is 7217
|
||||
guess = 'Stable Diffusion XL'
|
||||
elif (size >= 9791 and size <= 9799): # 9794
|
||||
guess = 'Stable Diffusion XL Instruct'
|
||||
elif (size >= 18414 and size <= 18420): # sd35-large aio
|
||||
guess = 'Stable Diffusion 3'
|
||||
elif (size > 20000 and size < 40000):
|
||||
elif (size >= 20000 and size <= 40000):
|
||||
guess = 'FLUX'
|
||||
# guess by name
|
||||
if 'instaflow' in f.lower():
|
||||
|
||||
Reference in New Issue
Block a user