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:
" File "ldm/modules/diffusionmodules/openaimodel.py", line 115, in forward
x = F.interpolate(x, scale_factor=2, mode="nearest")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "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'
Therefore this commit adds the FP32 fallback execution to solve it.
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:
Therefore this commit adds the FP32 fallback execution to solve it.