stable-diffusion-webui icon indicating copy to clipboard operation
stable-diffusion-webui copied to clipboard

Fix corrupt model initial load loop

Open w-e-w opened this issue 1 year ago • 14 comments

Description

Fix corrupt model initial load loop

  • https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15568

  • fix initial corrupt model load loop

if for some reason the initial loading model at loading phase of webui is corrupted after entering this state the user will not be able to load even a good model is selected, due the the unload_model_weights > send_model_to_cpu > m.lowvram attribute check will fail becaules m is None webui will be stuck in the loop unable to recover without manual intervention

  • show LoRA on extra networks tab if sd_model failed to load

this issue can for the most part be simulated by setting the value config.json > sd_model_checkpoint path of a know corrupted model

a corrupted model can be simulated by creating a new file and name it to whatever.safetensors


Testing with theis PR I was able to change the model even the initial settings at load is pointing to a corrupted model, and after switching to a good model, image generation seem to work properly.


other possibly related issue

  • https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15595
  • https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15584

Checklist:

w-e-w avatar Apr 22 '24 17:04 w-e-w

Yes I had this error thanks for fixing

FurkanGozukara avatar Apr 22 '24 18:04 FurkanGozukara

Adding “Return” to the first line of modules/sd_models.py solves the problem. 1713890188788

1637561204 avatar Apr 23 '24 16:04 1637561204

Adding “Return” to the first line of modules/sd_models.py solves the problem.

??????

w-e-w avatar Apr 23 '24 16:04 w-e-w

Adding “Return” to the first line of modules/sd_models.py solves the problem.

??????

After adding“Return”, you can select the model.

1637561204 avatar Apr 23 '24 16:04 1637561204

Adding “Return” to the first line of modules/sd_models.py solves the problem.

??????

After adding“Return”, you can select the model. When you can select the model, you can delete“Return”

1637561204 avatar Apr 23 '24 16:04 1637561204

you realize this is a pull request not an issue post

w-e-w avatar Apr 23 '24 17:04 w-e-w

you realize this is a pull request not an issue post

Sorry, I'm working on problem #15595

1637561204 avatar Apr 23 '24 17:04 1637561204

Hi, I have this error AttributeError: 'NoneType' object has no attribute 'lowvram' How can I fix it? where I must writing the code? I know we change the code in cmd and webui-user.bat. Could you please explain what can i do?

Zespina avatar Apr 24 '24 12:04 Zespina

Hi, I have this error AttributeError: 'NoneType' object has no attribute 'lowvram' How can I fix it? where I must writing the code? I know we change the code in cmd and webui-user.bat. Could you please explain what can i do?

I tried several times to reload and it fixed

FurkanGozukara avatar Apr 24 '24 12:04 FurkanGozukara

@Zespina delete the corrupted model that's causing issue

w-e-w avatar Apr 24 '24 13:04 w-e-w

@Zespina delete the corrupted model that's causing issue

No it is not corrupted model error

Happened to me as well and after trying several times fixed

There is certainly a bug

FurkanGozukara avatar Apr 24 '24 14:04 FurkanGozukara

I also experienced the same issue. After deleting and re-downloading the new model several times, the error still persists upon startup. I noticed that in my configuration information, "sd_model_checkpoint" is set to null, which is likely the cause of the problem. However, I have not been able to find where to modify this configuration item.

@Zespina delete the corrupted model that's causing issue

No it is not corrupted model error

Happened to me as well and after trying several times fixed

There is certainly a bug

xyhk0 avatar May 17 '24 15:05 xyhk0

I noticed that in my configuration information, "sd_model_checkpoint" is set to null, which is likely the cause of the problem

I did some test just now by manually set sd_model_checkpoint to null and I wasn't able to replicate the issue

when the value is to null, webui will look for the first available model and loaded it if no model can be found webui will download the default v1-5-pruned-emaonly.safetensors

from my testing as long as the model that webui tries to load can be loaded correctly (not corrupted) then it will able to function normally


After deleting and re-downloading the new model several times

even though attempting multiple times makes the likelihood of file corruption less likely, but it is still possible the only practical method to make sure if the model isn't corrupted is by compare the hash

Click to see how

you can calculate the hash of your downloaded file by using tools such as Powershell

you can do so by using various tools such as powershell

open powershell and then type

Get-FileHash "C:\Path\to\the\modle.safetensors"

and press enter

> Get-FileHash "v1-5-pruned-emaonly.safetensors"
Algorithm       Hash
---------       ----
SHA256          6CE0161689B3853ACAA03779EC93EAFE75A02F4CED659BEE03F50797806FA2FA

after obtaining the hash of your file compare it to what is described by the source of the model

for example the above hash is for v1-5-pruned-emaonly.safetensors you can see the hash will match the hash on hugging face https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.safetensors image

hash can also be found on civitai

AUTOV2 is just the fixst 10 characters of SHA256 image

note there is also the possibility of that one downloaded a file that you think is a is a valid model but not for example you mistaken a LoRA as a SD model and put it in the dir for SD modes, webui will try and fail regardless if the model is corrupted or not

w-e-w avatar May 17 '24 16:05 w-e-w

I noticed that in my configuration information, "sd_model_checkpoint" is set to null, which is likely the cause of the problem

I did some test just now by manually set sd_model_checkpoint to null and I wasn't able to replicate the issue

when the value is to null, webui will look for the first available model and loaded it if no model can be found webui will download the default v1-5-pruned-emaonly.safetensors

from my testing as long as the model that webui tries to load can be loaded correctly (not corrupted) then it will able to function normally

After deleting and re-downloading the new model several times

even though attempting multiple times makes the likelihood of file corruption less likely, but it is still possible the only practical method to make sure if the model isn't corrupted is by compare the hash

Thank you very much for your advice. Yesterday, I updated the new code you submitted, and today I turned on my computer and tried to run it again. I found that there were no errors reported. Although I restarted several times yesterday, it didn't work, which was quite strange. Nevertheless, thanks to your help, your method has solved my problem. I am very grateful.

xyhk0 avatar May 18 '24 11:05 xyhk0

Description

Fix corrupt model initial load loop

if for some reason the initial loading model at loading phase of webui is corrupted after entering this state the user will not be able to load even a good model is selected, due the the unload_model_weights > send_model_to_cpu > m.lowvram attribute check will fail becaules m is None webui will be stuck in the loop unable to recover without manual intervention

  • show LoRA on extra networks tab if sd_model failed to load

this issue can for the most part be simulated by setting the value config.json > sd_model_checkpoint path of a know corrupted model

a corrupted model can be simulated by creating a new file and name it to whatever.safetensors

Testing with theis PR I was able to change the model even the initial settings at load is pointing to a corrupted model, and after switching to a good model, image generation seem to work properly.

other possibly related issue

Checklist:

Dude, you're very kind to offer your help, but for some of us we're just normal people, I don't do any coding, I'm bad with computers and I don't understand well English, but for my work I need this ia to work absolutely, I've been tearing my hair out for hours trying to find solutions.

You seem to have one but you don't explain how to do it, it's extremely frustrating, where do you put your line of code? in the bat, user sh? please tell us.

Kouignaman13 avatar May 24 '24 13:05 Kouignaman13

I wasn't able to reproduce the problem with being unable to switch with lowvram, but I guess if it helps people it can be added.

AUTOMATIC1111 avatar Jun 08 '24 07:06 AUTOMATIC1111

I wasn't able to reproduce the problem with being unable to switch with lowvram, but I guess if it helps people it can be added.

this error occurs high vram machines as well. i encountered on runpod multiple times with 24 gb vram

FurkanGozukara avatar Jun 08 '24 11:06 FurkanGozukara

oh ,no.the same my problem,how solve

wdloyeu avatar Jul 07 '24 10:07 wdloyeu