match network version

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-08-25 12:26:40 -04:00
parent 073d6cec77
commit 7f46d08a2c
6 changed files with 36 additions and 37 deletions
+1 -1
View File
@@ -98,7 +98,7 @@ table.settings-value-table td { padding: 0.4em; border: 1px solid #ccc; max-widt
.extra-network-cards .card:hover .overlay { background: rgba(0, 0, 0, 0.40); }
.extra-network-cards .card:hover .preview { box-shadow: none; filter: grayscale(100%); }
.extra-network-cards .card:hover .overlay { background: rgba(0, 0, 0, 0.40); }
.extra-network-cards .card .tags { margin: 4px; display: none; overflow-wrap: break-word; }
.extra-network-cards .card .tags { margin: 4px; display: none; overflow-wrap: anywhere; }
.extra-network-cards .card .tag { padding: 2px; margin: 2px; background: var(--neutral-700); cursor: pointer; display: inline-block; }
.extra-network-cards .card .actions > span { padding: 4px; }
.extra-network-cards .card:hover .actions { display: block; }
+1 -1
View File
@@ -260,7 +260,7 @@ def civit_search_metadata(title: str = None):
if type(title) == str:
if page.title != title:
continue
if page.name == 'style':
if page.name == 'style' or page.name == 'wildcards':
continue
for item in page.list_items():
if item is None:
+25 -17
View File
@@ -149,23 +149,32 @@ class ExtraNetworksPage:
return text.replace('~tabname', tabname)
def create_xyz_grid(self):
"""
xyz_grid = [x for x in scripts.scripts_data if x.script_class.__module__ == "xyz_grid.py"][0].module
pass
def add_prompt(p, opt, x):
for item in [x for x in self.items if x["name"] == opt]:
try:
p.prompt = f'{p.prompt} {eval(item["prompt"])}' # pylint: disable=eval-used
except Exception as e:
shared.log.error(f'Cannot evaluate extra network prompt: {item["prompt"]} {e}')
if not any(self.title in x.label for x in xyz_grid.axis_options):
if self.title == 'Model':
return
opt = xyz_grid.AxisOption(f"[Network] {self.title}", str, add_prompt, choices=lambda: [x["name"] for x in self.items])
if opt not in xyz_grid.axis_options:
xyz_grid.axis_options.append(opt)
"""
def find_version(self, item, info):
all_versions = info.get('modelVersions', [])
try:
found_versions = []
if item is None:
return all_versions
elif hasattr(item, 'hash') and item.hash is not None:
current_hash = item.hash[:8].upper()
elif hasattr(item, 'shorthash') and item.shorthash is not None:
current_hash = item.shorthash[:8].upper()
elif hasattr(item, 'sha256') and item.sha256 is not None:
current_hash = item.sha256[:8].upper()
else:
current_hash = None
for v in info.get('modelVersions', []):
for f in v.get('files', []):
if any(h.startswith(current_hash) for h in f.get('hashes', {}).values()):
found_versions.append(v)
if len(found_versions) == 0:
found_versions = all_versions
return found_versions
except Exception as e:
errors.display(e, 'Network version')
return all_versions
def link_preview(self, filename):
quoted_filename = urllib.parse.quote(filename.replace('\\', '/'))
@@ -225,7 +234,6 @@ class ExtraNetworksPage:
debug(f'EN create-items: page={self.name} items={len(self.items)} time={t1-t0:.2f}')
self.list_time += t1-t0
def create_page(self, tabname, skip = False):
debug(f'EN create-page: {self.name}')
if self.page_time > refresh_time and len(self.html) > 0: # cached page
+2 -1
View File
@@ -63,7 +63,8 @@ class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage):
}
record["info"] = self.find_info(checkpoint.filename)
record["description"] = self.find_description(checkpoint.filename, record["info"])
record["version"] = record["info"].get("modelVersions", [{}])[0].get("baseModel", "N/A") if record["info"] else "N/A"
version = self.find_version(checkpoint, record["info"])
record["version"] = version[0].get("baseModel", "") if record["info"] else ""
except Exception as e:
shared.log.debug(f'Networks error: type=model file="{name}" {e}')
+5 -16
View File
@@ -17,7 +17,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
lora_load.list_available_networks()
@staticmethod
def get_tags(l, info):
def get_tags(l, info, version):
tags = {}
try:
if l.metadata is not None:
@@ -37,19 +37,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
tag = ' '.join(words[1:]).lower()
tags[tag] = words[0]
def find_version():
found_versions = []
current_hash = l.hash[:8].upper()
all_versions = info.get('modelVersions', [])
for v in info.get('modelVersions', []):
for f in v.get('files', []):
if any(h.startswith(current_hash) for h in f.get('hashes', {}).values()):
found_versions.append(v)
if len(found_versions) == 0:
found_versions = all_versions
return found_versions
for v in find_version(): # trigger words from info json
for v in version: # trigger words from info json
possible_tags = v.get('trainedWords', [])
if isinstance(possible_tags, list):
for tag_str in possible_tags:
@@ -87,6 +75,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
name = os.path.splitext(os.path.relpath(l.filename, shared.cmd_opts.lora_dir))[0]
size, mtime = modelstats.stat(l.filename)
info = self.find_info(l.filename)
version = self.find_version(l, info)
item = {
"type": 'Lora',
"name": name,
@@ -97,10 +86,10 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
"metadata": json.dumps(l.metadata, indent=4) if l.metadata else None,
"mtime": mtime,
"size": size,
"version": info.get("modelVersions", [{}])[0].get("baseModel", l.sd_version) if info else l.sd_version,
"version": version[0].get("baseModel", l.sd_version) if info else l.sd_version,
"info": info,
"description": self.find_description(l.filename, info),
"tags": self.get_tags(l, info),
"tags": self.get_tags(l, info, version),
}
return item
except Exception as e:
+2 -1
View File
@@ -16,6 +16,7 @@ class ExtraNetworksPageVAEs(ui_extra_networks.ExtraNetworksPage):
try:
size, mtime = modelstats.stat(filename)
info = self.find_info(filename)
version = self.find_version(None, info)
record = {
"type": 'VAE',
"name": name,
@@ -31,7 +32,7 @@ class ExtraNetworksPageVAEs(ui_extra_networks.ExtraNetworksPage):
"size": size,
"info": info,
"description": self.find_description(filename, info),
"version": info.get("modelVersions", [{}])[0].get("baseModel", "N/A") if info else "N/A",
"version": version[0].get("baseModel", "N/A") if info else "N/A",
}
yield record
except Exception as e: