mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
match network version
Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
+1
-1
@@ -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; }
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}')
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user