Merge pull request #4152 from Artheriax/base-model-filtering

Filter on base model in networks tab
This commit is contained in:
Vladimir Mandic
2025-08-25 12:53:17 -04:00
committed by GitHub
2 changed files with 28 additions and 2 deletions
+22
View File
@@ -290,6 +290,28 @@ function extraNetworksSearchButton(event) {
}
}
function extraNetworksFilterVersion(event) {
// log('extraNetworksFilterVersion', event);
const version = event.target.textContent.trim();
const activeTab = gradioApp().querySelector('.extra-networks-tab:not([style*="display: none"])');
if (!activeTab) return;
const cardContainer = activeTab.querySelector('.extra-network-cards');
if (!cardContainer) return;
if (cardContainer.dataset.activeVersion === version) {
cardContainer.dataset.activeVersion = '';
cardContainer.querySelectorAll('.card').forEach(card => card.style.display = '');
} else {
cardContainer.dataset.activeVersion = version;
cardContainer.querySelectorAll('.card').forEach(card => {
if (card.dataset.version === version) {
card.style.display = '';
} else {
card.style.display = 'none';
}
});
}
}
let desiredStyle = '';
function selectStyle(name) {
desiredStyle = name;
+6 -2
View File
@@ -24,7 +24,7 @@ extra_pages = shared.extra_networks
debug = shared.log.trace if os.environ.get('SD_EN_DEBUG', None) is not None else lambda *args, **kwargs: None
debug('Trace: EN')
card_full = '''
<div class='card' onclick={card_click} title='{name}' data-page='{page}' data-name='{name}' data-filename='{filename}' data-short='{short}' data-tags='{tags}' data-mtime='{mtime}' data-size='{size}' data-search='{search}' style='--data-color: {color}'>
<div class='card' onclick={card_click} title='{name}' data-page='{page}' data-name='{name}' data-filename='{filename}' data-short='{short}' data-tags='{tags}' data-mtime='{mtime}' data-size='{size}' data-search='{search}' data-version='{version}' style='--data-color: {color}'>
<div class='overlay'>
<div class='name {reference}'>{title}</div>
</div>
@@ -291,6 +291,10 @@ class ExtraNetworksPage:
subdirs_html += f'<button class="lg secondary gradio-button custom-button {style}" onclick="extraNetworksSearchButton(event)">{html.escape(subdir)}</button><br>'
self.html = ''
self.create_items(tabname)
versions = sorted({item.get("version", "") for item in self.items if item.get("version")})
versions_html = ''
for ver in versions:
versions_html += f'<button class="lg secondary gradio-button custom-button" onclick="extraNetworksFilterVersion(event)" style="margin-left:4px">{html.escape(ver)}</button><br>'
self.create_xyz_grid()
htmls = []
@@ -314,7 +318,7 @@ class ExtraNetworksPage:
htmls.append(self.create_html(item, tabname))
self.html += ''.join(htmls)
self.page_time = time.time()
self.html = f"<div id='{tabname}_{self_name_id}_subdirs' class='extra-network-subdirs'>{subdirs_html}</div><div id='~tabname_{self_name_id}_cards' class='extra-network-cards'>{self.html}</div>"
self.html = f"""<div id='{tabname}_{self_name_id}_subdirs' class='extra-network-subdirs'>{subdirs_html}{versions_html}</div><div id='~tabname_{self_name_id}_cards' class='extra-network-cards'>{self.html}</div>"""
shared.log.debug(f'Networks: type="{self.name}" items={len(self.items)} subfolders={len(subdirs)} tab={tabname} folders={self.allowed_directories_for_previews()} list={self.list_time:.2f} thumb={self.preview_time:.2f} desc={self.desc_time:.2f} info={self.info_time:.2f} workers={shared.max_workers}')
if len(self.missing_thumbs) > 0:
threading.Thread(target=self.create_thumb).start()