diff options
-rw-r--r-- | extensions-builtin/Lora/ui_extra_networks_lora.py | 1 | ||||
-rw-r--r-- | html/extra-networks-card.html | 1 | ||||
-rw-r--r-- | modules/ui_extra_networks.py | 15 | ||||
-rw-r--r-- | modules/ui_extra_networks_checkpoints.py | 1 | ||||
-rw-r--r-- | modules/ui_extra_networks_hypernets.py | 1 | ||||
-rw-r--r-- | modules/ui_extra_networks_textual_inversion.py | 1 | ||||
-rw-r--r-- | style.css | 11 |
7 files changed, 31 insertions, 0 deletions
diff --git a/extensions-builtin/Lora/ui_extra_networks_lora.py b/extensions-builtin/Lora/ui_extra_networks_lora.py index 4c1549d7..9da13a09 100644 --- a/extensions-builtin/Lora/ui_extra_networks_lora.py +++ b/extensions-builtin/Lora/ui_extra_networks_lora.py @@ -19,6 +19,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage): "name": name,
"filename": path,
"preview": self._find_preview(path),
+ "description": self._find_description(path),
"search_term": self.search_terms_from_path(lora_on_disk.filename),
"prompt": json.dumps(f"<lora:{name}:") + " + opts.extra_networks_default_multiplier + " + json.dumps(">"),
"local_preview": path + ".png",
diff --git a/html/extra-networks-card.html b/html/extra-networks-card.html index 8a5e2fbd..8612396d 100644 --- a/html/extra-networks-card.html +++ b/html/extra-networks-card.html @@ -7,6 +7,7 @@ <span style="display:none" class='search_term'>{search_term}</span> </div> <span class='name'>{name}</span> + <span class='description'>{description}</span> </div> </div> diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py index 1a10a5df..cd61a569 100644 --- a/modules/ui_extra_networks.py +++ b/modules/ui_extra_networks.py @@ -1,6 +1,7 @@ import glob
import os.path
import urllib.parse
+from functools import lru_cache
from pathlib import Path
from typing import Optional
@@ -131,6 +132,7 @@ class ExtraNetworksPage: "tabname": json.dumps(tabname),
"local_preview": json.dumps(item["local_preview"]),
"name": item["name"],
+ "description": (item.get("description") or ""),
"card_clicked": onclick,
"save_card_preview": '"' + html.escape(f"""return saveCardPreview(event, {json.dumps(tabname)}, {json.dumps(item["local_preview"])})""") + '"',
"search_term": item.get("search_term", ""),
@@ -147,6 +149,19 @@ class ExtraNetworksPage: return self.link_preview(file)
return None
+ @lru_cache(maxsize=512)
+ def _find_description(self, path: str) -> Optional[str]:
+ """
+ Find and read a description file for a given path (without extension).
+ """
+ for file in [f"{path}.txt", f"{path}.description.txt"]:
+ try:
+ with open(file, "r", encoding="utf-8", errors="replace") as f:
+ return f.read()
+ except OSError:
+ pass
+ return None
+
def intialize():
extra_pages.clear()
diff --git a/modules/ui_extra_networks_checkpoints.py b/modules/ui_extra_networks_checkpoints.py index b712d12b..1deb785a 100644 --- a/modules/ui_extra_networks_checkpoints.py +++ b/modules/ui_extra_networks_checkpoints.py @@ -20,6 +20,7 @@ class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage): "name": checkpoint.name_for_extra,
"filename": path,
"preview": self._find_preview(path),
+ "description": self._find_description(path),
"search_term": self.search_terms_from_path(checkpoint.filename) + " " + (checkpoint.sha256 or ""),
"onclick": '"' + html.escape(f"""return selectCheckpoint({json.dumps(name)})""") + '"',
"local_preview": path + ".png",
diff --git a/modules/ui_extra_networks_hypernets.py b/modules/ui_extra_networks_hypernets.py index 89f33242..80cc2a24 100644 --- a/modules/ui_extra_networks_hypernets.py +++ b/modules/ui_extra_networks_hypernets.py @@ -19,6 +19,7 @@ class ExtraNetworksPageHypernetworks(ui_extra_networks.ExtraNetworksPage): "name": name,
"filename": path,
"preview": self._find_preview(path),
+ "description": self._find_description(path),
"search_term": self.search_terms_from_path(path),
"prompt": json.dumps(f"<hypernet:{name}:") + " + opts.extra_networks_default_multiplier + " + json.dumps(">"),
"local_preview": path + ".png",
diff --git a/modules/ui_extra_networks_textual_inversion.py b/modules/ui_extra_networks_textual_inversion.py index f7057390..f3bae666 100644 --- a/modules/ui_extra_networks_textual_inversion.py +++ b/modules/ui_extra_networks_textual_inversion.py @@ -19,6 +19,7 @@ class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage): "name": embedding.name,
"filename": embedding.filename,
"preview": self._find_preview(path),
+ "description": self._find_description(path),
"search_term": self.search_terms_from_path(embedding.filename),
"prompt": json.dumps(embedding.name),
"local_preview": path + ".preview.png",
@@ -939,6 +939,17 @@ footer { line-break: anywhere;
}
+.extra-network-cards .card .actions .description {
+ display: block;
+ max-height: 3em;
+ white-space: pre-wrap;
+ line-height: 1.1;
+}
+
+.extra-network-cards .card .actions .description:hover {
+ max-height: none;
+}
+
.extra-network-cards .card .actions:hover .additional{
display: block;
}
|