Show PB texts at same time and earlier

For big tasks (1000+ steps), waiting 1 minute to see ETA is long and this changes it so the number of steps done plays a role in showing the text as well.
This commit is contained in:
Alexandre Simard 2022-10-19 13:53:52 -04:00
parent 46122c4ff6
commit 14c1c2b935

View File

@ -261,14 +261,14 @@ def wrap_gradio_call(func, extra_outputs=None):
return f
def calc_time_left(progress, threshold, label, force_display):
def calc_time_left(progress, threshold, label, force_display, showTime):
if progress == 0:
return ""
else:
time_since_start = time.time() - shared.state.time_start
eta = (time_since_start/progress)
eta_relative = eta-time_since_start
if (eta_relative > threshold and progress > 0.02) or force_display:
if (eta_relative > threshold and showTime) or force_display:
if eta_relative > 3600:
return label + time.strftime('%H:%M:%S', time.gmtime(eta_relative))
elif eta_relative > 60:
@ -290,7 +290,10 @@ def check_progress_call(id_part):
if shared.state.sampling_steps > 0:
progress += 1 / shared.state.job_count * shared.state.sampling_step / shared.state.sampling_steps
time_left = calc_time_left( progress, 1, " ETA: ", shared.state.time_left_force_display )
# Show progress percentage and time left at the same moment, and base it also on steps done
showPBText = progress >= 0.01 or shared.state.sampling_step >= 10
time_left = calc_time_left( progress, 1, " ETA: ", shared.state.time_left_force_display, showPBText )
if time_left != "":
shared.state.time_left_force_display = True
@ -298,7 +301,7 @@ def check_progress_call(id_part):
progressbar = ""
if opts.show_progressbar:
progressbar = f"""<div class='progressDiv'><div class='progress' style="overflow:visible;width:{progress * 100}%;white-space:nowrap;">{"&nbsp;" * 2 + str(int(progress*100))+"%" + time_left if progress > 0.01 else ""}</div></div>"""
progressbar = f"""<div class='progressDiv'><div class='progress' style="overflow:visible;width:{progress * 100}%;white-space:nowrap;">{"&nbsp;" * 2 + str(int(progress*100))+"%" + time_left if showPBText else ""}</div></div>"""
image = gr_show(False)
preview_visibility = gr_show(False)