hako-mikan/sd-webui-lora-block-weight

local variable 'errormodules' referenced before assignment

Opened this issue · 1 comments

local variable 'errormodules' referenced before assignment

*** Error running after_extra_networks_activate: /data/extensions/sd-webui-lora-block-weight/scripts/lora_block_weight.py
    Traceback (most recent call last):
      File "/app/modules/scripts.py", line 819, in after_extra_networks_activate
        script.after_extra_networks_activate(p, *script_args, **kwargs)
      File "/data/extensions/sd-webui-lora-block-weight/scripts/lora_block_weight.py", line 541, in after_extra_networks_activate
        loradealer(self, kwargs["prompts"] ,self.lratios,self.elementals,kwargs["extra_network_data"])
      File "/data/extensions/sd-webui-lora-block-weight/scripts/lora_block_weight.py", line 893, in loradealer
        if go_lbw or load: load_loras_blocks(self, lorans,lorars,te_multipliers,unet_multipliers,elements,ltype, starts=starts)
      File "/data/extensions/sd-webui-lora-block-weight/scripts/lora_block_weight.py", line 975, in load_loras_blocks
        lbwf(te, unet, lwei, elements, starts)
      File "/data/extensions/sd-webui-lora-block-weight/scripts/lora_block_weight.py", line 1159, in lbwf
        if len(errormodules) > 0:
    UnboundLocalError: local variable 'errormodules' referenced before assignment

The errormodules is initialized inside the for loop at line 1142 and then used at line 1159.

def lbwf(mt, mu, lwei, elemental, starts):
for key, vals in shared.sd_model.forge_objects_after_applying_lora.unet.patches.items():
n_vals = []
errormodules = []
lvals = [val for val in vals if val[1][0] in LORAS]
for v, m, l, e ,s in zip(lvals, mu, lwei, elemental, starts):
ratio, errormodule = ratiodealer(key.replace(".","_"), l, e)
n_vals.append((ratio * m if s is None else 0, *v[1:]))
if errormodule:errormodules.append(errormodule)
shared.sd_model.forge_objects_after_applying_lora.unet.patches[key] = n_vals
for key, vals in shared.sd_model.forge_objects_after_applying_lora.clip.patcher.patches.items():
n_vals = []
lvals = [val for val in vals if val[1][0] in LORAS]
for v, m, l, e in zip(lvals, mt, lwei, elemental):
ratio, errormodule = ratiodealer(key.replace(".","_"), l, e)
n_vals.append((ratio * m, *v[1:]))
if errormodule:errormodules.append(errormodule)
shared.sd_model.forge_objects_after_applying_lora.clip.patcher.patches[key] = n_vals
if len(errormodules) > 0:
print("Unknown modules:",errormodules)

It should likely be fixed in the latest update. Please give it a try.