aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorふぁ <34892635+fa0311@users.noreply.github.com>2022-10-18 08:29:42 +0000
committerAUTOMATIC1111 <16777216c@gmail.com>2022-10-18 12:08:23 +0000
commit97d3ba3941536215ea15431886c7f28300a9d915 (patch)
tree4ac06444d3dfcb49ac9e25f4e2e567e609150956 /modules
parent428080d469a1b760d7b08a1d81fef77d3d47832a (diff)
downloadstable-diffusion-webui-gfx803-97d3ba3941536215ea15431886c7f28300a9d915.tar.gz
stable-diffusion-webui-gfx803-97d3ba3941536215ea15431886c7f28300a9d915.tar.bz2
stable-diffusion-webui-gfx803-97d3ba3941536215ea15431886c7f28300a9d915.zip
Add scripts to ui-config,json
Diffstat (limited to 'modules')
-rw-r--r--modules/scripts.py15
-rw-r--r--modules/ui.py5
2 files changed, 18 insertions, 2 deletions
diff --git a/modules/scripts.py b/modules/scripts.py
index ac66d448..3402066d 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -96,6 +96,7 @@ def wrap_call(func, filename, funcname, *args, default=None, **kwargs):
class ScriptRunner:
def __init__(self):
self.scripts = []
+ self.titles = []
def setup_ui(self, is_img2img):
for script_class, path in scripts_data:
@@ -107,9 +108,10 @@ class ScriptRunner:
self.scripts.append(script)
- titles = [wrap_call(script.title, script.filename, "title") or f"{script.filename} [error]" for script in self.scripts]
+ self.titles = [wrap_call(script.title, script.filename, "title") or f"{script.filename} [error]" for script in self.scripts]
- dropdown = gr.Dropdown(label="Script", choices=["None"] + titles, value="None", type="index")
+ dropdown = gr.Dropdown(label="Script", choices=["None"] + self.titles, value="None", type="index")
+ dropdown.save_to_config = True
inputs = [dropdown]
for script in self.scripts:
@@ -139,6 +141,15 @@ class ScriptRunner:
return [ui.gr_show(True if i == 0 else args_from <= i < args_to) for i in range(len(inputs))]
+ def init_field(title):
+ if title == "None":
+ return
+ script_index = self.titles.index(title)
+ script = self.scripts[script_index]
+ for i in range(script.args_from, script.args_to):
+ inputs[i].visible = True
+
+ dropdown.init_field = init_field
dropdown.change(
fn=select_script,
inputs=[dropdown],
diff --git a/modules/ui.py b/modules/ui.py
index 75eb0b0c..39afbc4e 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -1753,6 +1753,11 @@ Requested path was: {f}
print(f'Warning: Bad ui setting value: {key}: {saved_value}; Default value "{getattr(obj, field)}" will be used instead.')
else:
setattr(obj, field, saved_value)
+ if getattr(x, 'init_field', False):
+ try:
+ x.init_field(saved_value)
+ except Exception:
+ print(f'Warning: Bad ui setting value: {key}: {saved_value}; Default value "{getattr(obj, field)}" will be used instead.')
if type(x) in [gr.Slider, gr.Radio, gr.Checkbox, gr.Textbox, gr.Number] and x.visible:
apply_field(x, 'visible')