|
|
|
|
|
var rsen_init = false; |
|
|
|
|
|
|
|
|
var rsen_extra_networks_symbol = '🎴'; |
|
|
|
|
|
|
|
|
var rsen_toggleState = false; |
|
|
|
|
|
var rsen_lastTxt2imgTabButton; |
|
|
var rsen_lastImg2imgTabButton; |
|
|
|
|
|
var rsen_lastGenerationTabGridTemplateTxt2img = { |
|
|
saved: "1fr 16px 1fr" |
|
|
} |
|
|
var rsen_lastGenerationTabGridTemplateImg2img = { |
|
|
saved: "1fr 16px 1fr" |
|
|
}; |
|
|
|
|
|
|
|
|
onUiLoaded(function() { |
|
|
|
|
|
if(!rsen_init) { |
|
|
|
|
|
let settingsObjects = [ |
|
|
{ |
|
|
tools: document.getElementById('txt2img_tools'), |
|
|
last_button: document.getElementById('txt2img_style_apply'), |
|
|
generation_tab: document.getElementById('txt2img_settings').parentNode.parentNode, |
|
|
generation_tab_att_id: 'txt2img_generation_tab', |
|
|
new_id: 'txt2img_toggle_extra' |
|
|
}, |
|
|
{ |
|
|
tools: document.getElementById('img2img_tools'), |
|
|
last_button: document.getElementById('deepbooru'), |
|
|
generation_tab: document.getElementById('img2img_settings').parentNode.parentNode, |
|
|
generation_tab_att_id: 'img2img_generation_tab', |
|
|
new_id: 'img2img_toggle_extra' |
|
|
} |
|
|
]; |
|
|
if(typeof settingsObjects[0].last_button != "undefined" && typeof settingsObjects[1].last_button != "undefined") { |
|
|
|
|
|
settingsObjects.forEach(obj => { |
|
|
|
|
|
let newButton = obj.last_button.cloneNode(false); |
|
|
newButton.id = obj.new_id; |
|
|
newButton.title = "Toggle Extra Networks."; |
|
|
newButton.innerHTML = rsen_extra_networks_symbol; |
|
|
|
|
|
obj.last_button.parentNode.insertBefore(newButton, obj.last_button.nextSibling); |
|
|
|
|
|
newButton.onclick = () => rsen_toggleExtraNetworks(); |
|
|
|
|
|
|
|
|
obj.generation_tab.setAttribute("sd-enr-id", obj.generation_tab_att_id); |
|
|
obj.generation_tab.parentNode.setAttribute("sd-enr-id", obj.generation_tab_att_id + "_parent"); |
|
|
}); |
|
|
|
|
|
|
|
|
rsen_init = true; |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
function getText_ExtraNetworksSidePanel(text) { |
|
|
let tl = getTranslation(text); |
|
|
return tl !== undefined ? tl.trim() : text.trim(); |
|
|
} |
|
|
|
|
|
function rsen_toggleExtraNetworks() { |
|
|
|
|
|
let settingsObjects = [ |
|
|
{ |
|
|
all_tabs: document.getElementById('txt2img_extra_tabs'), |
|
|
generation_tab_parent: document.querySelector('[sd-enr-id="txt2img_generation_tab_parent"]'), |
|
|
generation_tab: document.querySelector('[sd-enr-id="txt2img_generation_tab"]'), |
|
|
generation_tab_resize: document.getElementById('txt2img_generation_tab_resize'), |
|
|
generation_tab_resize_id: 'txt2img_generation_tab_resize', |
|
|
tab_nav: document.querySelector('#txt2img_extra_tabs > .tab-nav'), |
|
|
lastTabButton: rsen_lastTxt2imgTabButton, |
|
|
lastGridTemplate: rsen_lastGenerationTabGridTemplateTxt2img |
|
|
}, |
|
|
{ |
|
|
all_tabs: document.getElementById('img2img_extra_tabs'), |
|
|
generation_tab_parent: document.querySelector('[sd-enr-id="img2img_generation_tab_parent"]'), |
|
|
generation_tab: document.querySelector('[sd-enr-id="img2img_generation_tab"]'), |
|
|
generation_tab_resize: document.getElementById('img2img_generation_tab_resize'), |
|
|
generation_tab_resize_id: 'img2img_generation_tab_resize', |
|
|
tab_nav: document.querySelector('#img2img_extra_tabs > .tab-nav'), |
|
|
lastTabButton: rsen_lastImg2imgTabButton, |
|
|
lastGridTemplate: rsen_lastGenerationTabGridTemplateImg2img |
|
|
} |
|
|
]; |
|
|
|
|
|
if (typeof settingsObjects[0].generation_tab != "undefined" && typeof settingsObjects[1].generation_tab != "undefined") { |
|
|
|
|
|
settingsObjects.forEach(obj => { |
|
|
|
|
|
let tabButtons = Array.from(obj.tab_nav.querySelectorAll('button')) |
|
|
let defaultTabButton = tabButtons.find(button => button.innerHTML.trim() === getText_ExtraNetworksSidePanel(opts.extra_networks_side_panel_default_tab)); |
|
|
let generationButton = tabButtons.find(button => button.innerHTML.trim() === getText_ExtraNetworksSidePanel("Generation")); |
|
|
|
|
|
let lastTabButton; |
|
|
if (typeof obj.lastTabButton !== "undefined") { |
|
|
lastTabButton = Array.from(obj.tab_nav.querySelectorAll('button')).find(button => button.innerHTML.trim() === obj.lastTabButton.innerHTML.trim()); |
|
|
} |
|
|
|
|
|
if (generationButton) { |
|
|
if (!rsen_toggleState) { |
|
|
if (defaultTabButton && typeof lastTabButton === "undefined") { |
|
|
|
|
|
defaultTabButton.click(); |
|
|
} else { |
|
|
|
|
|
lastTabButton.click(); |
|
|
} |
|
|
|
|
|
obj.all_tabs.parentNode.setAttribute("restore-separate-extra-network",""); |
|
|
|
|
|
|
|
|
obj.all_tabs.parentNode.insertBefore(obj.generation_tab, obj.all_tabs); |
|
|
|
|
|
let resizeDiv = document.createElement('div'); |
|
|
resizeDiv.setAttribute('id', obj.generation_tab_resize_id); |
|
|
|
|
|
obj.all_tabs.parentNode.insertBefore(resizeDiv, obj.all_tabs); |
|
|
|
|
|
|
|
|
resizeDiv.onmousedown = function dragMouseDown(e) { |
|
|
|
|
|
let dragX = e.clientX; |
|
|
|
|
|
document.onmousemove = function onMouseMove(e) { |
|
|
|
|
|
let newWidth = obj.generation_tab.offsetWidth + e.clientX - dragX; |
|
|
let maxWidth = obj.all_tabs.parentNode.offsetWidth - 400; |
|
|
|
|
|
if (newWidth > 200 && newWidth < maxWidth) { |
|
|
|
|
|
obj.generation_tab.style.width = newWidth + "px"; |
|
|
|
|
|
dragX = e.clientX; |
|
|
} |
|
|
} |
|
|
|
|
|
document.onmouseup = () => document.onmousemove = document.onmouseup = null; |
|
|
} |
|
|
|
|
|
|
|
|
let generationButtonIndex = Array.from(obj.tab_nav.children).indexOf(generationButton) + 1; |
|
|
|
|
|
|
|
|
obj.tab_nav.setAttribute("important-hide", generationButtonIndex.toString()); |
|
|
|
|
|
|
|
|
obj.generation_tab.style.overflowX = 'auto'; |
|
|
obj.generation_tab.style.width = ''; |
|
|
|
|
|
|
|
|
if(obj.generation_tab.firstElementChild) { |
|
|
let tempVal = obj.generation_tab.firstElementChild.style.gridTemplateColumns; |
|
|
obj.generation_tab.firstElementChild.style.gridTemplateColumns = obj.lastGridTemplate.saved; |
|
|
obj.lastGridTemplate.saved = tempVal; |
|
|
} |
|
|
} else { |
|
|
|
|
|
obj.tab_nav.removeAttribute("important-hide"); |
|
|
|
|
|
obj.all_tabs.parentNode.removeAttribute("restore-separate-extra-network",""); |
|
|
|
|
|
|
|
|
obj.generation_tab_parent.appendChild(obj.generation_tab); |
|
|
|
|
|
|
|
|
obj.generation_tab.style.overflowX = ''; |
|
|
obj.generation_tab.style.width = ''; |
|
|
|
|
|
obj.generation_tab_resize.remove(); |
|
|
|
|
|
|
|
|
if(obj.generation_tab.firstElementChild) { |
|
|
let tempVal = obj.generation_tab.firstElementChild.style.gridTemplateColumns; |
|
|
obj.generation_tab.firstElementChild.style.gridTemplateColumns = obj.lastGridTemplate.saved; |
|
|
obj.lastGridTemplate.saved = tempVal; |
|
|
} |
|
|
|
|
|
|
|
|
generationButton.click(); |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
rsen_toggleState = !rsen_toggleState; |
|
|
} |
|
|
} |
|
|
|
|
|
onUiUpdate(function(args) { |
|
|
const lastTxt2imgTabButton = document.querySelector("#txt2img_extra_tabs > .tab-nav > .selected"); |
|
|
const lastImg2imgTabButton = document.querySelector("#img2img_extra_tabs > .tab-nav > .selected"); |
|
|
|
|
|
let generationText = ["Generation", getText_ExtraNetworksSidePanel("Generation")]; |
|
|
if(lastTxt2imgTabButton != null && typeof lastTxt2imgTabButton !== "undefined" && !generationText.includes(lastTxt2imgTabButton.innerHTML.trim())) { |
|
|
rsen_lastTxt2imgTabButton = lastTxt2imgTabButton; |
|
|
} |
|
|
if(lastImg2imgTabButton != null && typeof lastImg2imgTabButton !== "undefined" && !generationText.includes(lastImg2imgTabButton.innerHTML.trim())) { |
|
|
rsen_lastImg2imgTabButton = lastImg2imgTabButton; |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const extraNetworksMovePromptToTabOriginal = extraNetworksMovePromptToTab; |
|
|
|
|
|
|
|
|
extraNetworksMovePromptToTab = (...args) => { |
|
|
if(rsen_toggleState) return; |
|
|
return extraNetworksMovePromptToTabOriginal(...args); |
|
|
}; |