diff options
author | AUTOMATIC <16777216c@gmail.com> | 2022-09-04 23:16:36 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2022-09-04 23:16:36 +0000 |
commit | f91d0c3d19ac2b849cd15a519f711f9281e782cd (patch) | |
tree | c9aa258638e795f1f7ecdc78079ed2b3c58c98c8 | |
parent | a039878c0f583aab3cd75b32635ef00cd7a5c2b5 (diff) | |
download | stable-diffusion-webui-gfx803-f91d0c3d19ac2b849cd15a519f711f9281e782cd.tar.gz stable-diffusion-webui-gfx803-f91d0c3d19ac2b849cd15a519f711f9281e782cd.tar.bz2 stable-diffusion-webui-gfx803-f91d0c3d19ac2b849cd15a519f711f9281e782cd.zip |
add an option to enable tiling image generation
-rw-r--r-- | modules/sd_hijack.py | 5 | ||||
-rw-r--r-- | modules/shared.py | 2 | ||||
-rw-r--r-- | webui.py | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py index 1dbdc9ce..9779c30c 100644 --- a/modules/sd_hijack.py +++ b/modules/sd_hijack.py @@ -243,8 +243,13 @@ class EmbeddingsWithFixes(torch.nn.Module): return inputs_embeds
+def add_circular_option_to_conv_2d():
+ conv2d_constructor = torch.nn.Conv2d.__init__
+ def conv2d_constructor_circular(self, *args, **kwargs):
+ return conv2d_constructor(self, *args, padding_mode='circular', **kwargs)
+ torch.nn.Conv2d.__init__ = conv2d_constructor_circular
model_hijack = StableDiffusionModelHijack()
diff --git a/modules/shared.py b/modules/shared.py index 9e744f6c..0722185d 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -30,6 +30,8 @@ parser.add_argument("--precision", type=str, help="evaluate at this precision", parser.add_argument("--share", action='store_true', help="use share=True for gradio and make the UI accessible through their site (doesn't work for me but you might have better luck)")
parser.add_argument("--esrgan-models-path", type=str, help="path to directory with ESRGAN models", default=os.path.join(script_path, 'ESRGAN'))
parser.add_argument("--opt-split-attention", action='store_true', help="enable optimization that reduced vram usage by a lot for about 10% decrease in performance")
+parser.add_argument("--tiling", action='store_true', help="causes the model to generate images that can be tiled")
+
cmd_opts = parser.parse_args()
cpu = torch.device("cpu")
@@ -140,6 +140,11 @@ try: except Exception:
pass
+
+if cmd_opts.tiling:
+ # this has to be done before the model is loaded
+ modules.sd_hijack.add_circular_option_to_conv_2d()
+
sd_config = OmegaConf.load(cmd_opts.config)
shared.sd_model = load_model_from_config(sd_config, cmd_opts.ckpt)
shared.sd_model = (shared.sd_model if cmd_opts.no_half else shared.sd_model.half())
|