diff --git a/modules/civitai/metadata_civitai.py b/modules/civitai/metadata_civitai.py
index 3d40296b5..93bc143be 100644
--- a/modules/civitai/metadata_civitai.py
+++ b/modules/civitai/metadata_civitai.py
@@ -228,12 +228,8 @@ def civit_search_metadata(title: str = None):
def create_search_metadata_table(rows):
html = """
-
- | Name | ID | Type | Code | Hash | Size | Note |
-
-
- {tbody}
-
+ | Name | ID | Type | Code | Hash | Size | Note |
+ {tbody}
"""
tbody = ''
@@ -254,14 +250,12 @@ def civit_search_metadata(title: str = None):
log.error(f'Model list: row={row} {e}')
return html.format(tbody=tbody)
-
from modules.ui_extra_networks import get_pages
results = []
scanned, skipped = 0, 0
t0 = time.time()
candidates = []
re_skip = [r.strip() for r in opts.extra_networks_scan_skip.split(',') if len(r.strip()) > 0]
- log.debug(f'CivitAI search metadata: type={title if type(title) == str else "all"} skip={re_skip}')
for page in get_pages():
if type(title) == str:
if page.title != title:
@@ -276,6 +270,7 @@ def civit_search_metadata(title: str = None):
continue
scanned += 1
candidates.append(item)
+ log.debug(f'CivitAI search metadata: type={title if type(title) == str else "all"} workers={max_workers} skip={len(re_skip)} items={len(candidates)}')
import concurrent
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
future_items = {}
@@ -287,4 +282,4 @@ def civit_search_metadata(title: str = None):
t1 = time.time()
log.debug(f'CivitAI search metadata: scanned={scanned} skipped={skipped} time={t1-t0:.2f}')
- return create_search_metadata_table(results)
+ yield create_search_metadata_table(results)
diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py
index 1cb4b4cc0..6882cf616 100644
--- a/modules/ui_extra_networks.py
+++ b/modules/ui_extra_networks.py
@@ -933,7 +933,8 @@ def create_ui(container, button_parent, tabname, skip_indexing = False):
def ui_scan_click(title):
from modules.civitai.metadata_civitai import civit_search_metadata
- civit_search_metadata(title)
+ for _generator in civit_search_metadata(title): # need to read generator output so python does not optimize function away
+ pass
return ui_refresh_click(title)
def ui_save_click():