diff options
author | Francesco Manzali <manzali.francesco97@gmail.com> | 2023-01-31 17:58:36 +0000 |
---|---|---|
committer | Francesco Manzali <manzali.francesco97@gmail.com> | 2023-01-31 17:58:36 +0000 |
commit | 17b24e45e8839d889af35ee0b2fb0825306ddafe (patch) | |
tree | f12825f630c1e23253a05c7f5c3ab978a7ff7abf | |
parent | 2c1bb46c7ad5b4536f6587d327a03f0ff7811c5d (diff) | |
download | stable-diffusion-webui-gfx803-17b24e45e8839d889af35ee0b2fb0825306ddafe.tar.gz stable-diffusion-webui-gfx803-17b24e45e8839d889af35ee0b2fb0825306ddafe.tar.bz2 stable-diffusion-webui-gfx803-17b24e45e8839d889af35ee0b2fb0825306ddafe.zip |
Fix prompt matrix #rows/#cols when using hires
- images.draw_prompt_matrix() should be called with the final width/height
of the generated images, after upscaling.
Otherwise, the number of rows/cols computed in images.draw_grid_annotations
will increase by the upscaling factor.
- Round the number of cols/rows in images.draw_grid_annotations, since
the final images width may be a bit less than the required
hr_upscale_to_x/y
-rw-r--r-- | modules/images.py | 4 | ||||
-rw-r--r-- | scripts/prompt_matrix.py | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/modules/images.py b/modules/images.py index ae3cdaf4..4be0e74d 100644 --- a/modules/images.py +++ b/modules/images.py @@ -171,8 +171,8 @@ def draw_grid_annotations(im, width, height, hor_texts, ver_texts): pad_left = 0 if sum([sum([len(line.text) for line in lines]) for lines in ver_texts]) == 0 else width * 3 // 4
- cols = im.width // width
- rows = im.height // height
+ cols = round(im.width / width)
+ rows = round(im.height / height)
assert cols == len(hor_texts), f'bad number of horizontal texts: {len(hor_texts)}; must be {cols}'
assert rows == len(ver_texts), f'bad number of vertical texts: {len(ver_texts)}; must be {rows}'
diff --git a/scripts/prompt_matrix.py b/scripts/prompt_matrix.py index dd95e588..f6575b6b 100644 --- a/scripts/prompt_matrix.py +++ b/scripts/prompt_matrix.py @@ -79,7 +79,7 @@ class Script(scripts.Script): processed = process_images(p)
grid = images.image_grid(processed.images, p.batch_size, rows=1 << ((len(prompt_matrix_parts) - 1) // 2))
- grid = images.draw_prompt_matrix(grid, p.width, p.height, prompt_matrix_parts)
+ grid = images.draw_prompt_matrix(grid, max(p.width, p.hr_upscale_to_x), max(p.height, p.hr_upscale_to_y), prompt_matrix_parts)
processed.images.insert(0, grid)
processed.index_of_first_image = 1
processed.infotexts.insert(0, processed.infotexts[0])
|