wkpark / sd-webui-model-mixer

Checkpoint model mixer/merger extension
GNU Affero General Public License v3.0
96 stars 4 forks source link

Dare issue - RuntimeError: "bernoulli_tensor_cpu_self_" not implemented for 'Half' #130

Closed Enferlain closed 1 week ago

Enferlain commented 3 months ago

Doesn't seem to matter whether or not use fp16 is enabled.

 - loading sd_modelmixer.hyper...
 - set search lower, upper = -0.2 0.2
 - fix request parameter order...
debugs =  ['elemental merge']
use_extra_elements =  True
 - mm_max_models =  3
config hash =  be072c7e93b620844dfd390c276fd823fffb9c179f795df9362365309d4d75a9
  - mm_use [True, False, False]
  - model_a umbra_mecha.fp16.safetensors [80da973b09]
  - base_model None
  - max_models 3
  - models ['tpn34pdfv10js2ts05tensoradjust.fp16.safetensors [cf4f62151c]']
  - modes ['DARE']
  - calcmodes ['Inv. Cosine']
  - usembws [['ALL']]
  - weights ['0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5']
  - alpha [0.5]
  - adjust
  - use elemental [False]
  - elementals ['']
  - Parse elemental merge...
model_a = umbra_mecha.fp16
Loading umbra_mecha.fp16.safetensors [80da973b09] from loaded model...
 - base lora_patch
Applying attention optimization: xformers... done.
isxl = True , sd2 = False
compact_mode =  True
 - check possible UNet partial update...
 - partial changed blocks =  ['BASE', 'IN00', 'IN01', 'IN02', 'IN03', 'IN04', 'IN05', 'IN06', 'IN07', 'IN08', 'M00', 'OUT00', 'OUT01', 'OUT02', 'OUT03', 'OUT04', 'OUT05', 'OUT06', 'OUT07', 'OUT08']
 - UNet partial update mode
Open state_dict from file D:\stable-diffusion-webui\models\Stable-diffusion\tpn34pdfv10js2ts05tensoradjust.fp16.safetensors...
mode = DARE, mbw mode, alpha = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
 - Use Inv. Cosine merge
Stage #1/3:   0%|                                                                             | 0/2263 [00:00<?, ?it/s]
*** Error running before_process: D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py
    Traceback (most recent call last):
      File "D:\stable-diffusion-webui\modules\scripts.py", line 776, in before_process
        script.before_process(p, *script_args)
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3979, in before_process
        ret = cosim(theta0, theta1, calcmodes[n])
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3974, in cosim
        theta0 = dare_merge(theta0, theta1, alpha, 0.5)
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3609, in dare_merge
        m = torch.bernoulli(torch.full_like(input=theta0, fill_value=p)).to(device="gpu")
    RuntimeError: "bernoulli_tensor_cpu_self_" not implemented for 'Half'

When cpu is selected:

Stage #1/3:   0%|                                                                             | 0/2263 [00:00<?, ?it/s]
*** Error running before_process: D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py
    Traceback (most recent call last):
      File "D:\stable-diffusion-webui\modules\scripts.py", line 776, in before_process
        script.before_process(p, *script_args)
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3979, in before_process
        ret = cosim(theta0, theta1, calcmodes[n])
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3974, in cosim
        theta0 = dare_merge(theta0, theta1, alpha, 0.5)
      File "D:\stable-diffusion-webui\extensions\sd-webui-model-mixer\scripts\model_mixer.py", line 3608, in dare_merge
        if calc_settings.index("GPU"):
    ValueError: 'GPU' is not in list
Enferlain commented 3 months ago

works! thanks