Commit 353c8761 authored by AUTOMATIC1111's avatar AUTOMATIC1111

fix API always using -1 as seed

parent f3b96d49
...@@ -330,6 +330,7 @@ class Api: ...@@ -330,6 +330,7 @@ class Api:
with self.queue_lock: with self.queue_lock:
with closing(StableDiffusionProcessingTxt2Img(sd_model=shared.sd_model, **args)) as p: with closing(StableDiffusionProcessingTxt2Img(sd_model=shared.sd_model, **args)) as p:
p.is_api = True
p.scripts = script_runner p.scripts = script_runner
p.outpath_grids = opts.outdir_txt2img_grids p.outpath_grids = opts.outdir_txt2img_grids
p.outpath_samples = opts.outdir_txt2img_samples p.outpath_samples = opts.outdir_txt2img_samples
...@@ -390,6 +391,7 @@ class Api: ...@@ -390,6 +391,7 @@ class Api:
with self.queue_lock: with self.queue_lock:
with closing(StableDiffusionProcessingImg2Img(sd_model=shared.sd_model, **args)) as p: with closing(StableDiffusionProcessingImg2Img(sd_model=shared.sd_model, **args)) as p:
p.init_images = [decode_base64_to_image(x) for x in init_images] p.init_images = [decode_base64_to_image(x) for x in init_images]
p.is_api = True
p.scripts = script_runner p.scripts = script_runner
p.outpath_grids = opts.outdir_img2img_grids p.outpath_grids = opts.outdir_img2img_grids
p.outpath_samples = opts.outdir_img2img_samples p.outpath_samples = opts.outdir_img2img_samples
......
...@@ -194,6 +194,8 @@ class StableDiffusionProcessing: ...@@ -194,6 +194,8 @@ class StableDiffusionProcessing:
sd_vae_name: str = field(default=None, init=False) sd_vae_name: str = field(default=None, init=False)
sd_vae_hash: str = field(default=None, init=False) sd_vae_hash: str = field(default=None, init=False)
is_api: bool = field(default=False, init=False)
def __post_init__(self): def __post_init__(self):
if self.sampler_index is not None: if self.sampler_index is not None:
print("sampler_index argument for StableDiffusionProcessing does not do anything; use sampler_name", file=sys.stderr) print("sampler_index argument for StableDiffusionProcessing does not do anything; use sampler_name", file=sys.stderr)
...@@ -258,7 +260,7 @@ class StableDiffusionProcessing: ...@@ -258,7 +260,7 @@ class StableDiffusionProcessing:
def setup_scripts(self): def setup_scripts(self):
self.scripts_setup_complete = True self.scripts_setup_complete = True
self.scripts.setup_scrips(self) self.scripts.setup_scrips(self, is_ui=not self.is_api)
def comment(self, text): def comment(self, text):
self.comments[text] = 1 self.comments[text] = 1
......
...@@ -5,7 +5,7 @@ from modules.ui_common import create_refresh_button ...@@ -5,7 +5,7 @@ from modules.ui_common import create_refresh_button
from modules.ui_components import InputAccordion from modules.ui_components import InputAccordion
class ScriptRefiner(scripts.Script): class ScriptRefiner(scripts.ScriptBuiltinUI):
section = "accordions" section = "accordions"
create_group = False create_group = False
......
...@@ -7,7 +7,7 @@ from modules.shared import cmd_opts ...@@ -7,7 +7,7 @@ from modules.shared import cmd_opts
from modules.ui_components import ToolButton from modules.ui_components import ToolButton
class ScriptSeed(scripts.ScriptBuiltin): class ScriptSeed(scripts.ScriptBuiltinUI):
section = "seed" section = "seed"
create_group = False create_group = False
......
...@@ -68,6 +68,9 @@ class Script: ...@@ -68,6 +68,9 @@ class Script:
on_after_component_elem_id = None on_after_component_elem_id = None
"""list of callbacks to be called after a component with an elem_id is created""" """list of callbacks to be called after a component with an elem_id is created"""
setup_for_ui_only = False
"""If true, the script setup will only be run in Gradio UI, not in API"""
def title(self): def title(self):
"""this function should return the title of the script. This is what will be displayed in the dropdown menu.""" """this function should return the title of the script. This is what will be displayed in the dropdown menu."""
...@@ -258,7 +261,6 @@ class Script: ...@@ -258,7 +261,6 @@ class Script:
self.on_after_component_elem_id.append((elem_id, callback)) self.on_after_component_elem_id.append((elem_id, callback))
def describe(self): def describe(self):
"""unused""" """unused"""
return "" return ""
...@@ -280,7 +282,8 @@ class Script: ...@@ -280,7 +282,8 @@ class Script:
pass pass
class ScriptBuiltin(Script): class ScriptBuiltinUI(Script):
setup_for_ui_only = True
def elem_id(self, item_id): def elem_id(self, item_id):
"""helper function to generate id for a HTML element, constructs final id out of tab and user-supplied item_id""" """helper function to generate id for a HTML element, constructs final id out of tab and user-supplied item_id"""
...@@ -728,8 +731,11 @@ class ScriptRunner: ...@@ -728,8 +731,11 @@ class ScriptRunner:
except Exception: except Exception:
errors.report(f"Error running before_hr: {script.filename}", exc_info=True) errors.report(f"Error running before_hr: {script.filename}", exc_info=True)
def setup_scrips(self, p): def setup_scrips(self, p, *, is_ui=True):
for script in self.alwayson_scripts: for script in self.alwayson_scripts:
if not is_ui and script.setup_for_ui_only:
continue
try: try:
script_args = p.script_args[script.args_from:script.args_to] script_args = p.script_args[script.args_from:script.args_to]
script.setup(p, *script_args) script.setup(p, *script_args)
......
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