stable-diffusion-webui
35 строк · 1.5 Кб
1// attaches listeners to the txt2img and img2img galleries to update displayed generation param text when the image changes
2
3let txt2img_gallery, img2img_gallery, modal = undefined;4onAfterUiUpdate(function() {5if (!txt2img_gallery) {6txt2img_gallery = attachGalleryListeners("txt2img");7}8if (!img2img_gallery) {9img2img_gallery = attachGalleryListeners("img2img");10}11if (!modal) {12modal = gradioApp().getElementById('lightboxModal');13modalObserver.observe(modal, {attributes: true, attributeFilter: ['style']});14}15});16
17let modalObserver = new MutationObserver(function(mutations) {18mutations.forEach(function(mutationRecord) {19let selectedTab = gradioApp().querySelector('#tabs div button.selected')?.innerText;20if (mutationRecord.target.style.display === 'none' && (selectedTab === 'txt2img' || selectedTab === 'img2img')) {21gradioApp().getElementById(selectedTab + "_generation_info_button")?.click();22}23});24});25
26function attachGalleryListeners(tab_name) {27var gallery = gradioApp().querySelector('#' + tab_name + '_gallery');28gallery?.addEventListener('click', () => gradioApp().getElementById(tab_name + "_generation_info_button").click());29gallery?.addEventListener('keydown', (e) => {30if (e.keyCode == 37 || e.keyCode == 39) { // left or right arrow31gradioApp().getElementById(tab_name + "_generation_info_button").click();32}33});34return gallery;35}
36