diff options
author | klimaleksus <klimaleksus@gmail.com> | 2022-11-28 11:29:43 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-28 11:29:43 +0000 |
commit | 67efee33a6c65e58b3f6c788993d0e68a33e4fd0 (patch) | |
tree | 180264f08f32c3e7d4cb57d7df8a3665c954687a /modules/processing.py | |
parent | 0b5dcb3d7ce397ad38312dbfc70febe7bb42dcc3 (diff) | |
download | stable-diffusion-webui-gfx803-67efee33a6c65e58b3f6c788993d0e68a33e4fd0.tar.gz stable-diffusion-webui-gfx803-67efee33a6c65e58b3f6c788993d0e68a33e4fd0.tar.bz2 stable-diffusion-webui-gfx803-67efee33a6c65e58b3f6c788993d0e68a33e4fd0.zip |
Make VAE step sequential to prevent VRAM spikes
Diffstat (limited to 'modules/processing.py')
-rw-r--r-- | modules/processing.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/processing.py b/modules/processing.py index edceb532..fd995b8a 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -530,8 +530,8 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: with devices.autocast():
samples_ddim = p.sample(conditioning=c, unconditional_conditioning=uc, seeds=seeds, subseeds=subseeds, subseed_strength=p.subseed_strength, prompts=prompts)
- samples_ddim = samples_ddim.to(devices.dtype_vae)
- x_samples_ddim = decode_first_stage(p.sd_model, samples_ddim)
+ x_samples_ddim = [decode_first_stage(p.sd_model, samples_ddim[i:i+1].to(dtype=devices.dtype_vae))[0].cpu() for i in range(samples_ddim.size(0))]
+ x_samples_ddim = torch.stack(x_samples_ddim).float()
x_samples_ddim = torch.clamp((x_samples_ddim + 1.0) / 2.0, min=0.0, max=1.0)
del samples_ddim
|