mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
ip adapter masking
This commit is contained in:
+23
-18
@@ -1,5 +1,5 @@
|
||||
const activePromptTextarea = {};
|
||||
let sortVal = 0;
|
||||
let sortVal = -1;
|
||||
|
||||
// helpers
|
||||
|
||||
@@ -224,33 +224,35 @@ function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function sortExtraNetworks() {
|
||||
const sortDesc = ['Name [A-Z]', 'Name [Z-A]', 'Date [Newest]', 'Date [Oldest]', 'Size [Largest]', 'Size [Smallest]'];
|
||||
function sortExtraNetworks(fixed = 'no') {
|
||||
const sortDesc = ['Default', 'Name [A-Z]', 'Name [Z-A]', 'Date [Newest]', 'Date [Oldest]', 'Size [Largest]', 'Size [Smallest]'];
|
||||
const pagename = getENActivePage();
|
||||
if (!pagename) return 'sort error: unknown page';
|
||||
const allPages = Array.from(gradioApp().querySelectorAll('.extra-network-cards'));
|
||||
const pages = allPages.filter((el) => el.id.toLowerCase().includes(pagename.toLowerCase()));
|
||||
let num = 0;
|
||||
if (sortVal === -1) sortVal = sortDesc.indexOf(opts.extra_networks_sort);
|
||||
if (fixed !== 'fixed') sortVal = (sortVal + 1) % sortDesc.length;
|
||||
for (const pg of pages) {
|
||||
const cards = Array.from(pg.querySelectorAll('.card') || []);
|
||||
num = cards.length;
|
||||
if (num === 0) return 'sort: no cards';
|
||||
cards.sort((a, b) => { // eslint-disable-line no-loop-func
|
||||
switch (sortVal) {
|
||||
case 0: return a.dataset.name ? a.dataset.name.localeCompare(b.dataset.name) : 0;
|
||||
case 1: return b.dataset.name ? b.dataset.name.localeCompare(a.dataset.name) : 0;
|
||||
case 2: return a.dataset.mtime && !isNaN(a.dataset.mtime) ? parseFloat(b.dataset.mtime) - parseFloat(a.dataset.mtime) : 0;
|
||||
case 3: return b.dataset.mtime && !isNaN(b.dataset.mtime) ? parseFloat(a.dataset.mtime) - parseFloat(b.dataset.mtime) : 0;
|
||||
case 4: return a.dataset.size && !isNaN(a.dataset.size) ? parseFloat(b.dataset.size) - parseFloat(a.dataset.size) : 0;
|
||||
case 5: return b.dataset.size && !isNaN(b.dataset.size) ? parseFloat(a.dataset.size) - parseFloat(b.dataset.size) : 0;
|
||||
case 0: return 0;
|
||||
case 1: return a.dataset.name ? a.dataset.name.localeCompare(b.dataset.name) : 0;
|
||||
case 2: return b.dataset.name ? b.dataset.name.localeCompare(a.dataset.name) : 0;
|
||||
case 3: return a.dataset.mtime && !isNaN(a.dataset.mtime) ? parseFloat(b.dataset.mtime) - parseFloat(a.dataset.mtime) : 0;
|
||||
case 4: return b.dataset.mtime && !isNaN(b.dataset.mtime) ? parseFloat(a.dataset.mtime) - parseFloat(b.dataset.mtime) : 0;
|
||||
case 5: return a.dataset.size && !isNaN(a.dataset.size) ? parseFloat(b.dataset.size) - parseFloat(a.dataset.size) : 0;
|
||||
case 6: return b.dataset.size && !isNaN(b.dataset.size) ? parseFloat(a.dataset.size) - parseFloat(b.dataset.size) : 0;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
for (const card of cards) pg.appendChild(card);
|
||||
}
|
||||
const desc = sortDesc[sortVal];
|
||||
sortVal = (sortVal + 1) % sortDesc.length;
|
||||
log('sortExtraNetworks', pagename, num, desc);
|
||||
log('sortExtraNetworks', { name: pagename, val: sortVal, order: desc, fixed: fixed === 'fixed', items: num });
|
||||
return `sort page ${pagename} cards ${num} by ${desc}`;
|
||||
}
|
||||
|
||||
@@ -271,12 +273,8 @@ function extraNetworksSearchButton(event) {
|
||||
const tabname = getENActiveTab();
|
||||
const searchTextarea = gradioApp().querySelector(`#${tabname}_extra_search textarea`);
|
||||
const button = event.target;
|
||||
|
||||
if (button.classList.contains('search-all')) {
|
||||
searchTextarea.value = '';
|
||||
} else {
|
||||
searchTextarea.value = `${button.textContent.trim()}/`;
|
||||
}
|
||||
if (button.classList.contains('search-all')) searchTextarea.value = '';
|
||||
else searchTextarea.value = `${button.textContent.trim()}/`;
|
||||
updateInput(searchTextarea);
|
||||
}
|
||||
|
||||
@@ -307,6 +305,11 @@ function quickSaveStyle() {
|
||||
const tabname = getENActiveTab();
|
||||
const btnSave = gradioApp().getElementById(`${tabname}_extra_quicksave`);
|
||||
if (btnSave) btnSave.click();
|
||||
const btnRefresh = gradioApp().getElementById(`${tabname}_extra_refresh`);
|
||||
if (btnRefresh) {
|
||||
setTimeout(() => btnRefresh.click(), 100);
|
||||
setTimeout(() => sortExtraNetworks('fixed'), 500);
|
||||
}
|
||||
}
|
||||
|
||||
let enDirty = false;
|
||||
@@ -368,6 +371,7 @@ function setupExtraNetworksForTab(tabname) {
|
||||
if (btnView) buttons.appendChild(btnView);
|
||||
if (btnClose) buttons.appendChild(btnClose);
|
||||
btnModel.onclick = () => btnModel.classList.toggle('toolbutton-selected');
|
||||
btnRefresh.onclick = () => sortExtraNetworks('fixed');
|
||||
tabs.appendChild(buttons);
|
||||
|
||||
// details
|
||||
@@ -426,6 +430,7 @@ function setupExtraNetworksForTab(tabname) {
|
||||
}
|
||||
if (entries[0].intersectionRatio > 0) {
|
||||
refreshENpage();
|
||||
sortExtraNetworks('fixed');
|
||||
if (window.opts.extra_networks_card_cover === 'cover') {
|
||||
en.style.transition = '';
|
||||
en.style.zIndex = 100;
|
||||
@@ -459,7 +464,7 @@ function setupExtraNetworksForTab(tabname) {
|
||||
gradioApp().getElementById(`${tabname}_settings`).parentNode.style.width = 'unset';
|
||||
}
|
||||
});
|
||||
intersectionObserver.observe(en); // monitor visibility of
|
||||
intersectionObserver.observe(en); // monitor visibility
|
||||
}
|
||||
|
||||
async function setupExtraNetworks() {
|
||||
|
||||
Reference in New Issue
Block a user