diff options
-rw-r--r-- | javascript/progressbar.js | 12 | ||||
-rw-r--r-- | javascript/ui.js | 2 | ||||
-rw-r--r-- | modules/shared.py | 2 | ||||
-rw-r--r-- | modules/ui.py | 57 |
4 files changed, 47 insertions, 26 deletions
diff --git a/javascript/progressbar.js b/javascript/progressbar.js index 1fcd544c..065f259b 100644 --- a/javascript/progressbar.js +++ b/javascript/progressbar.js @@ -24,15 +24,23 @@ onUiUpdate(function(){ img2img_preview.style.height = img2img_gallery.clientHeight + "px" } - window.setTimeout(requestProgress, 500) + window.setTimeout(requestMoreProgress, 500) }); mutationObserver.observe( progressbar, { childList:true, subtree:true }) } }) -function requestProgress(){ +function requestMoreProgress(){ btn = gradioApp().getElementById("check_progress"); if(btn==null) return; btn.click(); } + +function requestProgress(){ + btn = gradioApp().getElementById("check_progress_initial"); + if(btn==null) return; + + btn.click(); +} + diff --git a/javascript/ui.js b/javascript/ui.js index e649dc6e..c39e96a1 100644 --- a/javascript/ui.js +++ b/javascript/ui.js @@ -37,7 +37,7 @@ function extract_image_from_gallery_extras(gallery){ function submit(){ // this calls a function from progressbar.js - window.setTimeout(requestProgress, 500) + requestProgress() res = [] for(var i=0;i<arguments.length;i++){ diff --git a/modules/shared.py b/modules/shared.py index 3c3aa9b6..c5742c10 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -31,7 +31,7 @@ parser.add_argument("--embeddings-dir", type=str, default=os.path.join(script_pa parser.add_argument("--allow-code", action='store_true', help="allow custom script execution from webui")
parser.add_argument("--medvram", action='store_true', help="enable stable diffusion model optimizations for sacrificing a little speed for low VRM usage")
parser.add_argument("--lowvram", action='store_true', help="enable stable diffusion model optimizations for sacrificing a lot of speed for very low VRM usage")
-parser.add_argument("--always-batch-cond-uncond", action='store_true', help="a workaround test; may help with speed if you use --lowvram")
+parser.add_argument("--always-batch-cond-uncond", action='store_true', help="disables cond/uncond batching that is enabled to save memory with --medvram or --lowvram")
parser.add_argument("--unload-gfpgan", action='store_true', help="does not do anything.")
parser.add_argument("--precision", type=str, help="evaluate at this precision", choices=["full", "autocast"], default="autocast")
parser.add_argument("--share", action='store_true', help="use share=True for gradio and make the UI accessible through their site (doesn't work for me but you might have better luck)")
diff --git a/modules/ui.py b/modules/ui.py index 202f4551..77f7c2ed 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -159,7 +159,6 @@ def wrap_gradio_call(func): def check_progress_call():
-
if shared.state.job_count == 0:
return "", gr_show(False), gr_show(False)
@@ -196,6 +195,12 @@ def check_progress_call(): return f"<span style='display: none'>{time.time()}</span><p>{progressbar}</p>", preview_visibility, image
+def check_progress_call_initial():
+ shared.state.job_count = -1
+
+ return check_progress_call()
+
+
def roll_artist(prompt):
allowed_cats = set([x for x in shared.artist_db.categories() if len(opts.random_artist_categories)==0 or x in opts.random_artist_categories])
artist = random.choice([x for x in shared.artist_db.artists if x.category in allowed_cats])
@@ -303,14 +308,30 @@ def create_toprow(is_img2img): prompt_style_apply = gr.Button('Apply style', elem_id="style_apply")
save_style = gr.Button('Create style', elem_id="style_create")
- check_progress = gr.Button('Check progress', elem_id="check_progress", visible=False)
+ return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, interrogate, prompt_style_apply, save_style
- return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, interrogate, prompt_style_apply, save_style, check_progress
+
+def setup_progressbar(progressbar, preview):
+ check_progress = gr.Button('Check progress', elem_id="check_progress", visible=False)
+ check_progress.click(
+ fn=check_progress_call,
+ show_progress=False,
+ inputs=[],
+ outputs=[progressbar, preview, preview],
+ )
+
+ check_progress_initial = gr.Button('Check progress (first)', elem_id="check_progress_initial", visible=False)
+ check_progress_initial.click(
+ fn=check_progress_call_initial,
+ show_progress=False,
+ inputs=[],
+ outputs=[progressbar, preview, preview],
+ )
def create_ui(txt2img, img2img, run_extras, run_pnginfo):
with gr.Blocks(analytics_enabled=False) as txt2img_interface:
- txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, txt2img_prompt_style_apply, txt2img_save_style, check_progress = create_toprow(is_img2img=False)
+ txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, txt2img_prompt_style_apply, txt2img_save_style = create_toprow(is_img2img=False)
with gr.Row().style(equal_height=False):
with gr.Column(variant='panel'):
@@ -343,6 +364,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): txt2img_preview = gr.Image(elem_id='txt2img_preview', visible=False)
txt2img_gallery = gr.Gallery(label='Output', elem_id='txt2img_gallery').style(grid=4)
+ setup_progressbar(progressbar, txt2img_preview)
+
with gr.Group():
with gr.Row():
save = gr.Button('Save')
@@ -379,19 +402,13 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): txt2img_gallery,
generation_info,
html_info
- ]
+ ],
+ show_progress=False,
)
txt2img_prompt.submit(**txt2img_args)
submit.click(**txt2img_args)
- check_progress.click(
- fn=check_progress_call,
- show_progress=False,
- inputs=[],
- outputs=[progressbar, txt2img_preview, txt2img_preview],
- )
-
interrupt.click(
fn=lambda: shared.state.interrupt(),
inputs=[],
@@ -424,7 +441,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): )
with gr.Blocks(analytics_enabled=False) as img2img_interface:
- img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_prompt_style_apply, img2img_save_style, check_progress = create_toprow(is_img2img=True)
+ img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_prompt_style_apply, img2img_save_style = create_toprow(is_img2img=True)
with gr.Row().style(equal_height=False):
with gr.Column(variant='panel'):
@@ -480,6 +497,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): img2img_preview = gr.Image(elem_id='img2img_preview', visible=False)
img2img_gallery = gr.Gallery(label='Output', elem_id='img2img_gallery').style(grid=4)
+ setup_progressbar(progressbar, img2img_preview)
+
with gr.Group():
with gr.Row():
save = gr.Button('Save')
@@ -584,7 +603,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): img2img_gallery,
generation_info,
html_info
- ]
+ ],
+ show_progress=False,
)
img2img_prompt.submit(**img2img_args)
@@ -596,13 +616,6 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): outputs=[img2img_prompt],
)
- check_progress.click(
- fn=check_progress_call,
- show_progress=False,
- inputs=[],
- outputs=[progressbar, img2img_preview, img2img_preview],
- )
-
interrupt.click(
fn=lambda: shared.state.interrupt(),
inputs=[],
@@ -611,7 +624,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): save.click(
fn=wrap_gradio_call(save_files),
- _js = "(x, y, z) => [x, y, selected_gallery_index()]",
+ _js="(x, y, z) => [x, y, selected_gallery_index()]",
inputs=[
generation_info,
img2img_gallery,
|