aboutsummaryrefslogtreecommitdiff
path: root/modules/sd_vae_approx.py
AgeCommit message (Collapse)Author
2023-11-29Revert "Add FP32 fallback support on sd_vae_approx"hidenorly
This reverts commit 58c19545c83fa6925c9ce2216ee64964eb5129ce. Since the modification is expected to move to mac_specific.py (https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14046#issuecomment-1826731532)
2023-11-21Add FP32 fallback support on sd_vae_approxhidenorly
This tries to execute interpolate with FP32 if it failed. Background is that on some environment such as Mx chip MacOS devices, we get error as follows: ``` "torch/nn/functional.py", line 3931, in interpolate return torch._C._nn.upsample_nearest2d(input, output_size, scale_factors) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half' ``` In this case, ```--no-half``` doesn't help to solve. Therefore this commits add the FP32 fallback execution to solve it. Note that the submodule may require additional modifications. The following is the example modification on the other submodule. ```repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py class Upsample(nn.Module): ..snip.. def forward(self, x): assert x.shape[1] == self.channels if self.dims == 3: x = F.interpolate( x, (x.shape[2], x.shape[3] * 2, x.shape[4] * 2), mode="nearest" ) else: try: x = F.interpolate(x, scale_factor=2, mode="nearest") except: x = F.interpolate(x.to(th.float32), scale_factor=2, mode="nearest").to(x.dtype) if self.use_conv: x = self.conv(x) return x ..snip.. ``` You can see the FP32 fallback execution as same as sd_vae_approx.py.
2023-08-04add TAESD for i2i and t2iKohaku-Blueleaf
2023-07-14add cheap VAE approximation coeffs for SDXLAUTOMATIC1111
2023-07-13add XL support for live previews: approx and TAESDAUTOMATIC1111
2023-03-11modules/sd_vae_approx.py: fix VAE-approx pathZhang Hua
2023-01-15Fix Approx NN on devices other than CUDAbrkirch
2022-12-24added cheap NN approximation for VAEAUTOMATIC