Merge pull request #5165 from klimaleksus/fix-sequential-vae

Make VAE step sequential to prevent VRAM spikes, will fix #3059, #2082, #2561, #3462
This commit is contained in:
AUTOMATIC1111 2022-12-03 08:29:56 +03:00 committed by GitHub
commit ae81b377d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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