restore lora version filtering (#1885)

Added Flux to lora types in extra networks UI, so user can set.
Loras versioned first by user-set type, if any. Falls back to heuristics - these are much more reliable than the removed old A1111 tests and in case of no match default to Unknown (always displayed).
Filtering is done based on UI setting. 'all' setting does not filter. Filters lora lists on change.
Removed unused 'lora_hide_unknown_for_versions' setting.
This commit is contained in:
DenOfEquity
2024-09-23 14:53:58 +01:00
committed by GitHub
parent 95b54a27f1
commit a82d5d177c
7 changed files with 83 additions and 10 deletions

View File

@@ -50,6 +50,17 @@ 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'
for (i = 0; i < radioButtons.length; i++) {
if (radioButtons[i].checked) {
UIresult = i;
}
}
gradioApp().querySelectorAll('#' + tabname + '_extra_tabs div.card').forEach(function(elem) {
var searchOnly = elem.querySelector('.search_only');
var text = Array.prototype.map.call(elem.querySelectorAll('.search_terms, .description'), function(t) {
@@ -60,6 +71,21 @@ function setupExtraNetworksForTab(tabname) {
if (searchOnly && searchTerm.length < 4) {
visible = false;
}
sdversion = elem.getAttribute('data-sort-sdversion');
if (sdversion == null) ;
else if (sdversion == 'SdVersion.Unknown') ;
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 == 2) { // 'flux'
if (sdversion != 'SdVersion.Flux') visible = false;
}
if (visible) {
elem.classList.remove("hidden");
} else {
@@ -70,6 +96,7 @@ function setupExtraNetworksForTab(tabname) {
applySort(force);
};
var applySort = function(force) {
var cards = gradioApp().querySelectorAll('#' + tabname_full + ' div.card');
var parent = gradioApp().querySelector('#' + tabname_full + "_cards");
@@ -449,6 +476,17 @@ function extraNetworksControlTreeViewOnClick(event, tabname, extra_networks_tabn
pane.classList.toggle("extra-network-dirs-hidden", show);
}
function clickLoraRefresh() {
var applyFunction = extraNetworksApplyFilter['txt2img_lora'];
if (applyFunction) {
applyFunction(true);
}
applyFunction = extraNetworksApplyFilter['img2img_lora'];
if (applyFunction) {
applyFunction(true);
}
}
function extraNetworksControlRefreshOnClick(event, tabname, extra_networks_tabname) {
/**
* Handles `onclick` events for the Refresh Page button.