Merge pull request #4869 from vladmandic/fix/lora-name-lookup

fix(lora): natural-filename lookup on windows and in subfolders
This commit is contained in:
Vladimir Mandic
2026-05-24 08:29:20 +02:00
committed by GitHub
2 changed files with 11 additions and 1 deletions
+7
View File
@@ -214,6 +214,13 @@ def list_available_networks():
available_network_aliases[entry.name] = entry
if entry.fullname != entry.name:
available_network_aliases[entry.fullname] = entry
# entry.name mangles dots to underscores for legacy reasons and entry.fullname
# carries any subfolder prefix, so neither matches when the user types the file's
# natural basename. setdefault avoids clobbering an explicit primary entry when
# two files in different subfolders share a basename.
basename_alias = os.path.splitext(os.path.basename(filename))[0]
if basename_alias and basename_alias not in (entry.name, entry.fullname):
available_network_aliases.setdefault(basename_alias, entry)
if entry.shorthash:
available_network_hash_lookup[entry.shorthash] = entry
except OSError as e: # should catch FileNotFoundError and PermissionError etc.
+4 -1
View File
@@ -27,7 +27,10 @@ class NetworkOnDisk:
self.name = name
self.filename = filename
if filename.startswith(shared.cmd_opts.lora_dir):
self.fullname = os.path.splitext(filename[len(shared.cmd_opts.lora_dir):].strip("/"))[0]
# strip("/") missed Windows's leading backslash after the slice; normalize separators
# so the registry key is one canonical form on every OS.
rel = filename[len(shared.cmd_opts.lora_dir):].lstrip('/\\').replace('\\', '/')
self.fullname = os.path.splitext(rel)[0] if rel else name
else:
self.fullname = name
self.metadata = {}