diff options
author | AUTOMATIC <16777216c@gmail.com> | 2023-01-04 09:35:07 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2023-01-04 09:35:07 +0000 |
commit | 02d7abf5141431b9a3a8a189bb3136c71abd5e79 (patch) | |
tree | 6b19b67fab476214ffd5d19a316d4daf8baf1a70 /modules/errors.py | |
parent | 7e549468b3d01e6cdf6d07d00c2719c1a5787517 (diff) | |
download | stable-diffusion-webui-gfx803-02d7abf5141431b9a3a8a189bb3136c71abd5e79.tar.gz stable-diffusion-webui-gfx803-02d7abf5141431b9a3a8a189bb3136c71abd5e79.tar.bz2 stable-diffusion-webui-gfx803-02d7abf5141431b9a3a8a189bb3136c71abd5e79.zip |
helpful error message when trying to load 2.0 without config
failing to load model weights from settings won't break generation for currently loaded model anymore
Diffstat (limited to 'modules/errors.py')
-rw-r--r-- | modules/errors.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/modules/errors.py b/modules/errors.py index 372dc51a..a668c014 100644 --- a/modules/errors.py +++ b/modules/errors.py @@ -2,9 +2,30 @@ import sys import traceback
+def print_error_explanation(message):
+ lines = message.strip().split("\n")
+ max_len = max([len(x) for x in lines])
+
+ print('=' * max_len, file=sys.stderr)
+ for line in lines:
+ print(line, file=sys.stderr)
+ print('=' * max_len, file=sys.stderr)
+
+
+def display(e: Exception, task):
+ print(f"{task or 'error'}: {type(e).__name__}", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
+
+ message = str(e)
+ if "copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768])" in message:
+ print_error_explanation("""
+The most likely cause of this is you are trying to load Stable Diffusion 2.0 model without specifying its connfig file.
+See https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#stable-diffusion-20 for how to solve this.
+ """)
+
+
def run(code, task):
try:
code()
except Exception as e:
- print(f"{task}: {type(e).__name__}", file=sys.stderr)
- print(traceback.format_exc(), file=sys.stderr)
+ display(task, e)
|