Commit 06f167da authored by Aarni Koskela's avatar Aarni Koskela
Browse files

Extra networks: support .txt description sidecar file

parent 49b1dc5e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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",
+1 −0
Original line number Diff line number Diff line
@@ -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>
+15 −0
Original line number Diff line number Diff line
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()
+1 −0
Original line number Diff line number Diff line
@@ -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",
+1 −0
Original line number Diff line number Diff line
@@ -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",
Loading