improved extra network search (#1953)

multiple search terms possible, split by ' '
also improved handling when changing UI setting
This commit is contained in:
DenOfEquity
2024-09-30 15:13:11 +01:00
committed by GitHub
parent 86d003266b
commit f5190349b4

View File

@@ -51,15 +51,15 @@ function setupExtraNetworksForTab(tabname) {
var applyFilter = function(force) {
var searchTerm = search.value.toLowerCase();
// get UI preset
radioUI = gradioApp().querySelector('#forge_ui_preset');
radioButtons = radioUI.getElementsByTagName('input');
UIresult = 3; // default to 'all'
// get UI preset
radioUI = gradioApp().querySelector('#forge_ui_preset');
radioButtons = radioUI.getElementsByTagName('input');
UIresult = 3; // default to 'all'
for (i = 0; i < radioButtons.length; i++) {
if (radioButtons[i].checked) {
UIresult = i;
}
}
UIresult = i;
}
}
gradioApp().querySelectorAll('#' + tabname + '_extra_tabs div.card').forEach(function(elem) {
var searchOnly = elem.querySelector('.search_only');
@@ -67,24 +67,27 @@ function setupExtraNetworksForTab(tabname) {
return t.textContent.toLowerCase();
}).join(" ");
var visible = text.indexOf(searchTerm) != -1;
if (searchOnly && searchTerm.length < 4) {
visible = false;
}
var visible = true;
if (searchOnly && searchTerm.length < 4) visible = false;
splitSearch = searchTerm.split(" ");
splitSearch.forEach(function(partial) {
if (text.indexOf(partial) == -1) visible = false;
})
sdversion = elem.getAttribute('data-sort-sdversion');
if (sdversion == null) ;
else if (sdversion == 'SdVersion.Unknown') ;
else if (sdversion == 'SdVersion.Unknown') ;
else if (opts.lora_filter_disabled == True) ;
else if (UIresult == 3) ; // 'all'
else if (UIresult == 0) { // 'sd'
if (sdversion != 'SdVersion.SD1' && sdversion != 'SdVersion.SD2') visible = false;
else if (UIresult == 3) ; // 'all'
else if (UIresult == 0) { // 'sd'
if (sdversion != 'SdVersion.SD1' && sdversion != 'SdVersion.SD2') visible = false;
}
else if (UIresult == 1) { // 'xl'
if (sdversion != 'SdVersion.SDXL') visible = false;
else if (UIresult == 1) { // 'xl'
if (sdversion != 'SdVersion.SDXL') visible = false;
}
else if (UIresult == 2) { // 'flux'
if (sdversion != 'SdVersion.Flux') visible = false;
else if (UIresult == 2) { // 'flux'
if (sdversion != 'SdVersion.Flux') visible = false;
}
if (visible) {
@@ -141,6 +144,7 @@ function setupExtraNetworksForTab(tabname) {
});
applySort();
applyFilter();
extraNetworksApplySort[tabname_full] = applySort;
extraNetworksApplyFilter[tabname_full] = applyFilter;
@@ -478,14 +482,16 @@ function extraNetworksControlTreeViewOnClick(event, tabname, extra_networks_tabn
}
function clickLoraRefresh() {
var applyFunction = extraNetworksApplyFilter['txt2img_lora'];
if (applyFunction) {
applyFunction(true);
}
applyFunction = extraNetworksApplyFilter['img2img_lora'];
if (applyFunction) {
applyFunction(true);
}
const targets = ['txt2img_lora', 'txt2img_checkpoints', 'txt2img_textural_inversion', 'img2img_lora', 'img2img_checkpoints', 'img2img_textural_inversion'];
targets.forEach(function(t) {
const tab = gradioApp().getElementById(t + '-button');
if (tab && tab.getAttribute('aria-selected') == "true") {
const applyFunction = extraNetworksApplyFilter[t];
if (applyFunction) {
applyFunction(true);
}
}
});
}
function extraNetworksControlRefreshOnClick(event, tabname, extra_networks_tabname) {