diff options
author | ふぁ <34892635+fa0311@users.noreply.github.com> | 2022-10-18 08:29:42 +0000 |
---|---|---|
committer | AUTOMATIC1111 <16777216c@gmail.com> | 2022-10-18 12:08:23 +0000 |
commit | 97d3ba3941536215ea15431886c7f28300a9d915 (patch) | |
tree | 4ac06444d3dfcb49ac9e25f4e2e567e609150956 /modules | |
parent | 428080d469a1b760d7b08a1d81fef77d3d47832a (diff) | |
download | stable-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.py | 15 | ||||
-rw-r--r-- | modules/ui.py | 5 |
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')
|