diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-01-28 15:45:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-28 15:45:38 +0000 |
commit | 91c8d0dcfc9a5d46aec47fd3eb34c633c104b5bb (patch) | |
tree | a6b0396e2fbf2fe1ca0238a5239f6176b32c5a53 | |
parent | fecb990debdae2cc99b64808d22ba902e34e575b (diff) | |
parent | 591b68e56c53eed391d08ce008423191c573784d (diff) | |
download | stable-diffusion-webui-gfx803-91c8d0dcfc9a5d46aec47fd3eb34c633c104b5bb.tar.gz stable-diffusion-webui-gfx803-91c8d0dcfc9a5d46aec47fd3eb34c633c104b5bb.tar.bz2 stable-diffusion-webui-gfx803-91c8d0dcfc9a5d46aec47fd3eb34c633c104b5bb.zip |
Merge pull request #7231 from EllangoK/master
Fixes X/Y/Z Plot parameters not being restored from images
-rw-r--r-- | modules/generation_parameters_copypaste.py | 4 | ||||
-rw-r--r-- | modules/scripts.py | 14 | ||||
-rw-r--r-- | scripts/xyz_grid.py | 10 |
3 files changed, 26 insertions, 2 deletions
diff --git a/modules/generation_parameters_copypaste.py b/modules/generation_parameters_copypaste.py index 1bf35bbb..3c098e0d 100644 --- a/modules/generation_parameters_copypaste.py +++ b/modules/generation_parameters_copypaste.py @@ -13,7 +13,6 @@ from PIL import Image re_param_code = r'\s*([\w ]+):\s*("(?:\\"[^,]|\\"|\\|[^\"])+"|[^,]*)(?:,|$)'
re_param = re.compile(re_param_code)
-re_params = re.compile(r"^(?:" + re_param_code + "){3,}$")
re_imagesize = re.compile(r"^(\d+)x(\d+)$")
re_hypernet_hash = re.compile("\(([0-9a-f]+)\)$")
type_of_gr_update = type(gr.update())
@@ -243,7 +242,7 @@ Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 965400086, Size: 512x512, Model done_with_prompt = False
*lines, lastline = x.strip().split("\n")
- if not re_params.match(lastline):
+ if len(re_param.findall(lastline)) < 3:
lines.append(lastline)
lastline = ''
@@ -262,6 +261,7 @@ Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 965400086, Size: 512x512, Model res["Negative prompt"] = negative_prompt
for k, v in re_param.findall(lastline):
+ v = v[1:-1] if v[0] == '"' and v[-1] == '"' else v
m = re_imagesize.match(v)
if m is not None:
res[k+"-1"] = m.group(1)
diff --git a/modules/scripts.py b/modules/scripts.py index 6e9dc0c0..24056a12 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -345,6 +345,20 @@ class ScriptRunner: outputs=[script.group for script in self.selectable_scripts]
)
+ self.script_load_ctr = 0
+ def onload_script_visibility(params):
+ title = params.get('Script', None)
+ if title:
+ title_index = self.titles.index(title)
+ visibility = title_index == self.script_load_ctr
+ self.script_load_ctr = (self.script_load_ctr + 1) % len(self.titles)
+ return gr.update(visible=visibility)
+ else:
+ return gr.update(visible=False)
+
+ self.infotext_fields.append( (dropdown, lambda x: gr.update(value=x.get('Script', 'None'))) )
+ self.infotext_fields.extend( [(script.group, onload_script_visibility) for script in self.selectable_scripts] )
+
return inputs
def run(self, p, *args):
diff --git a/scripts/xyz_grid.py b/scripts/xyz_grid.py index f0116055..3df40483 100644 --- a/scripts/xyz_grid.py +++ b/scripts/xyz_grid.py @@ -383,6 +383,15 @@ class Script(scripts.Script): y_type.change(fn=select_axis, inputs=[y_type], outputs=[fill_y_button])
z_type.change(fn=select_axis, inputs=[z_type], outputs=[fill_z_button])
+ self.infotext_fields = (
+ (x_type, "X Type"),
+ (x_values, "X Values"),
+ (y_type, "Y Type"),
+ (y_values, "Y Values"),
+ (z_type, "Z Type"),
+ (z_values, "Z Values"),
+ )
+
return [x_type, x_values, y_type, y_values, z_type, z_values, draw_legend, include_lone_images, include_sub_grids, no_fixed_seeds]
def run(self, p, x_type, x_values, y_type, y_values, z_type, z_values, draw_legend, include_lone_images, include_sub_grids, no_fixed_seeds):
@@ -542,6 +551,7 @@ class Script(scripts.Script): if grid_infotext[0] is None:
pc.extra_generation_params = copy(pc.extra_generation_params)
+ pc.extra_generation_params['Script'] = self.title()
if x_opt.label != 'Nothing':
pc.extra_generation_params["X Type"] = x_opt.label
|