aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-01-28 15:45:38 +0000
committerGitHub <noreply@github.com>2023-01-28 15:45:38 +0000
commit91c8d0dcfc9a5d46aec47fd3eb34c633c104b5bb (patch)
treea6b0396e2fbf2fe1ca0238a5239f6176b32c5a53
parentfecb990debdae2cc99b64808d22ba902e34e575b (diff)
parent591b68e56c53eed391d08ce008423191c573784d (diff)
downloadstable-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.py4
-rw-r--r--modules/scripts.py14
-rw-r--r--scripts/xyz_grid.py10
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