diff options
author | AUTOMATIC <16777216c@gmail.com> | 2023-03-14 06:10:26 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2023-03-14 06:10:26 +0000 |
commit | c19530f1a590d758463f84523dd4c48c34d723e6 (patch) | |
tree | 096f701ce58e01e2e0a27f2bfcbd79cc824de6e9 /extensions-builtin/Lora/lora.py | |
parent | dfeee786f903e392dbef1519c7c246b9856ebab3 (diff) | |
download | stable-diffusion-webui-gfx803-c19530f1a590d758463f84523dd4c48c34d723e6.tar.gz stable-diffusion-webui-gfx803-c19530f1a590d758463f84523dd4c48c34d723e6.tar.bz2 stable-diffusion-webui-gfx803-c19530f1a590d758463f84523dd4c48c34d723e6.zip |
Add view metadata button for Lora cards.
Diffstat (limited to 'extensions-builtin/Lora/lora.py')
-rw-r--r-- | extensions-builtin/Lora/lora.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/extensions-builtin/Lora/lora.py b/extensions-builtin/Lora/lora.py index cb8f1d36..8937b585 100644 --- a/extensions-builtin/Lora/lora.py +++ b/extensions-builtin/Lora/lora.py @@ -3,7 +3,9 @@ import os import re
import torch
-from modules import shared, devices, sd_models
+from modules import shared, devices, sd_models, errors
+
+metadata_tags_order = {"ss_sd_model_name": 1, "ss_resolution": 2, "ss_clip_skip": 3, "ss_num_train_images": 10, "ss_tag_frequency": 20}
re_digits = re.compile(r"\d+")
re_unet_down_blocks = re.compile(r"lora_unet_down_blocks_(\d+)_attentions_(\d+)_(.+)")
@@ -43,6 +45,23 @@ class LoraOnDisk: def __init__(self, name, filename):
self.name = name
self.filename = filename
+ self.metadata = {}
+
+ _, ext = os.path.splitext(filename)
+ if ext.lower() == ".safetensors":
+ try:
+ self.metadata = sd_models.read_metadata_from_safetensors(filename)
+ except Exception as e:
+ errors.display(e, f"reading lora {filename}")
+
+ if self.metadata:
+ m = {}
+ for k, v in sorted(self.metadata.items(), key=lambda x: metadata_tags_order.get(x[0], 999)):
+ m[k] = v
+
+ self.metadata = m
+
+ self.ssmd_cover_images = self.metadata.pop('ssmd_cover_images', None) # those are cover images and they are too big to display in UI as text
class LoraModule:
|