stable-diffusion-webui/javascript/progressbar.js

54 lines
2.2 KiB
JavaScript
Raw Normal View History

2022-09-18 06:00:06 +00:00
// code related to showing and updating progressbar shown as the image is being made
global_progressbars = {}
function check_progressbar(id_part, id_progressbar, id_progressbar_span, id_interrupt, id_preview, id_gallery){
var progressbar = gradioApp().getElementById(id_progressbar)
var interrupt = gradioApp().getElementById(id_interrupt)
if(progressbar!= null && progressbar != global_progressbars[id_progressbar]){
global_progressbars[id_progressbar] = progressbar
var mutationObserver = new MutationObserver(function(m){
preview = gradioApp().getElementById(id_preview)
gallery = gradioApp().getElementById(id_gallery)
2022-09-06 16:33:51 +00:00
if(preview != null && gallery != null){
preview.style.width = gallery.clientWidth + "px"
preview.style.height = gallery.clientHeight + "px"
var progressDiv = gradioApp().querySelectorAll('#' + id_progressbar_span).length > 0;
2022-09-20 18:05:25 +00:00
if(!progressDiv){
2022-09-22 01:11:53 +00:00
interrupt.style.display = "none"
2022-09-20 18:05:25 +00:00
}
2022-09-06 16:33:51 +00:00
}
2022-09-18 05:51:11 +00:00
window.setTimeout(function(){ requestMoreProgress(id_part, id_progressbar_span, id_interrupt) }, 500)
});
mutationObserver.observe( progressbar, { childList:true, subtree:true })
}
}
onUiUpdate(function(){
check_progressbar('txt2img', 'txt2img_progressbar', 'txt2img_progress_span', 'txt2img_interrupt', 'txt2img_preview', 'txt2img_gallery')
check_progressbar('img2img', 'img2img_progressbar', 'img2img_progress_span', 'img2img_interrupt', 'img2img_preview', 'img2img_gallery')
check_progressbar('ti', 'ti_progressbar', 'ti_progress_span', 'ti_interrupt', 'ti_preview', 'ti_gallery')
2022-09-18 05:51:11 +00:00
})
function requestMoreProgress(id_part, id_progressbar_span, id_interrupt){
btn = gradioApp().getElementById(id_part+"_check_progress");
2022-09-18 06:00:06 +00:00
if(btn==null) return;
btn.click();
var progressDiv = gradioApp().querySelectorAll('#' + id_progressbar_span).length > 0;
var interrupt = gradioApp().getElementById(id_interrupt)
if(progressDiv && interrupt){
2022-09-22 01:11:53 +00:00
interrupt.style.display = "block"
2022-09-20 18:05:25 +00:00
}
2022-09-18 06:00:06 +00:00
}
function requestProgress(id_part){
btn = gradioApp().getElementById(id_part+"_check_progress_initial");
if(btn==null) return;
btn.click();
}