handle missing version

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-08-25 19:39:40 -04:00
parent ecf3df2aab
commit a50f5c8faa
5 changed files with 17 additions and 20 deletions
+6 -8
View File
@@ -153,10 +153,11 @@ class ExtraNetworksPage:
def find_version(self, item, info):
all_versions = info.get('modelVersions', [])
if len(all_versions) == 0:
return {}
try:
found_versions = []
if item is None:
return all_versions
return all_versions[0]
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:
@@ -164,17 +165,14 @@ class ExtraNetworksPage:
elif hasattr(item, 'sha256') and item.sha256 is not None:
current_hash = item.sha256[:8].upper()
else:
return all_versions
return all_versions[0]
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
return v
except Exception as e:
errors.display(e, 'Network version')
return all_versions
return all_versions[0]
def link_preview(self, filename):
quoted_filename = urllib.parse.quote(filename.replace('\\', '/'))
+1 -1
View File
@@ -64,7 +64,7 @@ class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage):
record["info"] = self.find_info(checkpoint.filename)
record["description"] = self.find_description(checkpoint.filename, record["info"])
version = self.find_version(checkpoint, record["info"])
record["version"] = version[0].get("baseModel", "") if record["info"] else ""
record["version"] = version.get("baseModel", "") if record["info"] else ""
except Exception as e:
shared.log.debug(f'Networks error: type=model file="{name}" {e}')
+8 -9
View File
@@ -37,14 +37,13 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
tag = ' '.join(words[1:]).lower()
tags[tag] = words[0]
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:
for tag in tag_str.split(','):
tag = tag.strip().lower()
if tag not in tags:
tags[tag] = 0
possible_tags = version.get('trainedWords', [])
if isinstance(possible_tags, list):
for tag_str in possible_tags:
for tag in tag_str.split(','):
tag = tag.strip().lower()
if tag not in tags:
tags[tag] = 0
possible_tags = info.get('tags', []) # tags from info json
if not isinstance(possible_tags, list):
@@ -86,7 +85,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
"metadata": json.dumps(l.metadata, indent=4) if l.metadata else None,
"mtime": mtime,
"size": size,
"version": version[0].get("baseModel", l.sd_version) if info else l.sd_version,
"version": version.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, version),
+1 -1
View File
@@ -32,7 +32,7 @@ class ExtraNetworksPageVAEs(ui_extra_networks.ExtraNetworksPage):
"size": size,
"info": info,
"description": self.find_description(filename, info),
"version": version[0].get("baseModel", "N/A") if info else "N/A",
"version": version.get("baseModel", "N/A") if info else "N/A",
}
yield record
except Exception as e: