Commit 0aa7c53c authored by AUTOMATIC1111's avatar AUTOMATIC1111

fix borked merge, rename fields to better match what they do, change setting...

fix borked merge, rename fields to better match what they do, change setting default to true for #13653
parent 2a7ad70d
...@@ -78,7 +78,7 @@ def wrap_gradio_call(func, extra_outputs=None, add_stats=False): ...@@ -78,7 +78,7 @@ def wrap_gradio_call(func, extra_outputs=None, add_stats=False):
shared.state.skipped = False shared.state.skipped = False
shared.state.interrupted = False shared.state.interrupted = False
shared.state.interrupted_next = False shared.state.stopping_generation = False
shared.state.job_count = 0 shared.state.job_count = 0
if not add_stats: if not add_stats:
......
...@@ -51,7 +51,7 @@ def process_batch(p, input_dir, output_dir, inpaint_mask_dir, args, to_scale=Fal ...@@ -51,7 +51,7 @@ def process_batch(p, input_dir, output_dir, inpaint_mask_dir, args, to_scale=Fal
if state.skipped: if state.skipped:
state.skipped = False state.skipped = False
if state.interrupted or state.interrupted_next: if state.interrupted or state.stopping_generation:
break break
try: try:
......
...@@ -865,7 +865,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: ...@@ -865,7 +865,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
if state.skipped: if state.skipped:
state.skipped = False state.skipped = False
if state.interrupted or state.interrupted_next: if state.interrupted or state.stopping_generation:
break break
sd_models.reload_model_weights() # model can be changed for example by refiner sd_models.reload_model_weights() # model can be changed for example by refiner
......
...@@ -120,7 +120,6 @@ options_templates.update(options_section(('system', "System", "system"), { ...@@ -120,7 +120,6 @@ options_templates.update(options_section(('system', "System", "system"), {
"disable_mmap_load_safetensors": OptionInfo(False, "Disable memmapping for loading .safetensors files.").info("fixes very slow loading speed in some cases"), "disable_mmap_load_safetensors": OptionInfo(False, "Disable memmapping for loading .safetensors files.").info("fixes very slow loading speed in some cases"),
"hide_ldm_prints": OptionInfo(True, "Prevent Stability-AI's ldm/sgm modules from printing noise to console."), "hide_ldm_prints": OptionInfo(True, "Prevent Stability-AI's ldm/sgm modules from printing noise to console."),
"dump_stacks_on_signal": OptionInfo(False, "Print stack traces before exiting the program with ctrl+c."), "dump_stacks_on_signal": OptionInfo(False, "Print stack traces before exiting the program with ctrl+c."),
"interrupt_after_current": OptionInfo(False, "Interrupt generation after current image is finished on batch processing"),
})) }))
options_templates.update(options_section(('API', "API", "system"), { options_templates.update(options_section(('API', "API", "system"), {
...@@ -286,6 +285,7 @@ options_templates.update(options_section(('ui_alternatives', "UI alternatives", ...@@ -286,6 +285,7 @@ options_templates.update(options_section(('ui_alternatives', "UI alternatives",
"hires_fix_show_prompts": OptionInfo(False, "Hires fix: show hires prompt and negative prompt").needs_reload_ui(), "hires_fix_show_prompts": OptionInfo(False, "Hires fix: show hires prompt and negative prompt").needs_reload_ui(),
"txt2img_settings_accordion": OptionInfo(False, "Settings in txt2img hidden under Accordion").needs_reload_ui(), "txt2img_settings_accordion": OptionInfo(False, "Settings in txt2img hidden under Accordion").needs_reload_ui(),
"img2img_settings_accordion": OptionInfo(False, "Settings in img2img hidden under Accordion").needs_reload_ui(), "img2img_settings_accordion": OptionInfo(False, "Settings in img2img hidden under Accordion").needs_reload_ui(),
"interrupt_after_current": OptionInfo(True, "Don't Interrupt in the middle").info("when using Interrupt button, if generating more than one image, stop after the generation of an image has finished, instead of immediately"),
})) }))
options_templates.update(options_section(('ui', "User interface", "ui"), { options_templates.update(options_section(('ui', "User interface", "ui"), {
......
...@@ -12,7 +12,7 @@ log = logging.getLogger(__name__) ...@@ -12,7 +12,7 @@ log = logging.getLogger(__name__)
class State: class State:
skipped = False skipped = False
interrupted = False interrupted = False
interrupted_next = False stopping_generation = False
job = "" job = ""
job_no = 0 job_no = 0
job_count = 0 job_count = 0
...@@ -80,9 +80,9 @@ class State: ...@@ -80,9 +80,9 @@ class State:
self.interrupted = True self.interrupted = True
log.info("Received interrupt request") log.info("Received interrupt request")
def interrupt_next(self): def stop_generating(self):
self.interrupted_next = True self.stopping_generation = True
log.info("Received interrupt request, interrupt after current job") log.info("Received stop generating request")
def nextjob(self): def nextjob(self):
if shared.opts.live_previews_enable and shared.opts.show_progress_every_n_steps == -1: if shared.opts.live_previews_enable and shared.opts.show_progress_every_n_steps == -1:
...@@ -96,7 +96,7 @@ class State: ...@@ -96,7 +96,7 @@ class State:
obj = { obj = {
"skipped": self.skipped, "skipped": self.skipped,
"interrupted": self.interrupted, "interrupted": self.interrupted,
"interrupted_next": self.interrupted_next, "stopping_generation": self.stopping_generation,
"job": self.job, "job": self.job,
"job_count": self.job_count, "job_count": self.job_count,
"job_timestamp": self.job_timestamp, "job_timestamp": self.job_timestamp,
...@@ -120,7 +120,7 @@ class State: ...@@ -120,7 +120,7 @@ class State:
self.id_live_preview = 0 self.id_live_preview = 0
self.skipped = False self.skipped = False
self.interrupted = False self.interrupted = False
self.interrupted_next = False self.stopping_generation = False
self.textinfo = None self.textinfo = None
self.job = job self.job = job
devices.torch_gc() devices.torch_gc()
......
...@@ -106,8 +106,14 @@ class Toprow: ...@@ -106,8 +106,14 @@ class Toprow:
outputs=[], outputs=[],
) )
def interrupt_function():
if shared.state.job_count > 1 and shared.opts.interrupt_after_current:
shared.state.stop_generating()
else:
shared.state.interrupt()
self.interrupt.click( self.interrupt.click(
fn=lambda: shared.state.interrupt(), fn=interrupt_function,
inputs=[], inputs=[],
outputs=[], outputs=[],
) )
......
...@@ -95,7 +95,7 @@ class Script(scripts.Script): ...@@ -95,7 +95,7 @@ class Script(scripts.Script):
processed = processing.process_images(p) processed = processing.process_images(p)
# Generation cancelled. # Generation cancelled.
if state.interrupted or state.interrupted_next: if state.interrupted or state.stopping_generation:
break break
if initial_seed is None: if initial_seed is None:
...@@ -122,7 +122,7 @@ class Script(scripts.Script): ...@@ -122,7 +122,7 @@ class Script(scripts.Script):
p.inpainting_fill = original_inpainting_fill p.inpainting_fill = original_inpainting_fill
if state.interrupted or state.interrupted_next: if state.interrupted or state.stopping_generation:
break break
if len(history) > 1: if len(history) > 1:
......
...@@ -696,7 +696,7 @@ class Script(scripts.Script): ...@@ -696,7 +696,7 @@ class Script(scripts.Script):
grid_infotext = [None] * (1 + len(zs)) grid_infotext = [None] * (1 + len(zs))
def cell(x, y, z, ix, iy, iz): def cell(x, y, z, ix, iy, iz):
if shared.state.interrupted or state.interrupted_next: if shared.state.interrupted or state.stopping_generation:
return Processed(p, [], p.seed, "") return Processed(p, [], p.seed, "")
pc = copy(p) pc = copy(p)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment