progressbar.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // code related to showing and updating progressbar shown as the image is being made
  2. global_progressbars = {}
  3. function check_progressbar(id_part, id_progressbar, id_progressbar_span, id_interrupt, id_preview, id_gallery){
  4. var progressbar = gradioApp().getElementById(id_progressbar)
  5. var interrupt = gradioApp().getElementById(id_interrupt)
  6. if(progressbar!= null && progressbar != global_progressbars[id_progressbar]){
  7. global_progressbars[id_progressbar] = progressbar
  8. var mutationObserver = new MutationObserver(function(m){
  9. preview = gradioApp().getElementById(id_preview)
  10. gallery = gradioApp().getElementById(id_gallery)
  11. if(preview != null && gallery != null){
  12. preview.style.width = gallery.clientWidth + "px"
  13. preview.style.height = gallery.clientHeight + "px"
  14. var progressDiv = gradioApp().querySelectorAll('#' + id_progressbar_span).length > 0;
  15. if(!progressDiv){
  16. interrupt.style.display = "none"
  17. }
  18. }
  19. window.setTimeout(function(){ requestMoreProgress(id_part, id_progressbar_span, id_interrupt) }, 500)
  20. });
  21. mutationObserver.observe( progressbar, { childList:true, subtree:true })
  22. }
  23. }
  24. onUiUpdate(function(){
  25. check_progressbar('txt2img', 'txt2img_progressbar', 'txt2img_progress_span', 'txt2img_interrupt', 'txt2img_preview', 'txt2img_gallery')
  26. check_progressbar('img2img', 'img2img_progressbar', 'img2img_progress_span', 'img2img_interrupt', 'img2img_preview', 'img2img_gallery')
  27. check_progressbar('ti', 'ti_progressbar', 'ti_progress_span', 'ti_interrupt', 'ti_preview', 'ti_gallery')
  28. })
  29. function requestMoreProgress(id_part, id_progressbar_span, id_interrupt){
  30. btn = gradioApp().getElementById(id_part+"_check_progress");
  31. if(btn==null) return;
  32. btn.click();
  33. var progressDiv = gradioApp().querySelectorAll('#' + id_progressbar_span).length > 0;
  34. var interrupt = gradioApp().getElementById(id_interrupt)
  35. if(progressDiv && interrupt){
  36. interrupt.style.display = "block"
  37. }
  38. }
  39. function requestProgress(id_part){
  40. btn = gradioApp().getElementById(id_part+"_check_progress_initial");
  41. if(btn==null) return;
  42. btn.click();
  43. }