Commit 14c1c2b9 authored by Alexandre Simard's avatar Alexandre Simard
Browse files

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.
parent 46122c4f
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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)