better en preview matching and optimize caching

This commit is contained in:
Vladimir Mandic
2024-01-19 13:50:19 -05:00
parent 5e1d316f24
commit 7c8d035edb
13 changed files with 146 additions and 159 deletions
+6 -4
View File
@@ -52,8 +52,6 @@ class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage):
"title": checkpoint.title,
"filename": checkpoint.filename,
"hash": checkpoint.shorthash,
"preview": self.find_preview(checkpoint.filename),
"local_preview": f"{os.path.splitext(checkpoint.filename)[0]}.{shared.opts.samples_format}",
"metadata": checkpoint.metadata,
"onclick": '"' + html.escape(f"""return selectCheckpoint({json.dumps(name)})""") + '"',
"mtime": os.path.getmtime(checkpoint.filename) if exists else 0,
@@ -66,14 +64,18 @@ class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage):
return record
def list_items(self):
# items = [self.create_item(cp) for cp in list(sd_models.checkpoints_list)] + list(self.list_reference())
items = []
with concurrent.futures.ThreadPoolExecutor(max_workers=shared.max_workers) as executor:
future_items = {executor.submit(self.create_item, cp): cp for cp in list(sd_models.checkpoints_list.copy())}
for future in concurrent.futures.as_completed(future_items):
item = future.result()
if item is not None:
yield item
items.append(item)
for record in self.list_reference():
yield record
items.append(record)
self.update_all_previews(items)
return items
def allowed_directories_for_previews(self):
if shared.backend == shared.Backend.DIFFUSERS: