Fix dtype error in MHA layer/change dtype checking mechanism for manual cast
diff --git a/modules/devices.py b/modules/devices.py
index dfffaf24fd0..8f49f7a486b 100644
--- a/modules/devices.py
+++ b/modules/devices.py
@@ -4,7 +4,6 @@
 
 import torch
 from modules import errors, shared
-from modules import torch_utils
 
 if sys.platform == "darwin":
     from modules import mac_specific
@@ -141,7 +140,12 @@ def forward_wrapper(self, *args, **kwargs):
             args = [arg.to(target_dtype) if isinstance(arg, torch.Tensor) else arg for arg in args]
             kwargs = {k: v.to(target_dtype) if isinstance(v, torch.Tensor) else v for k, v in kwargs.items()}
 
-        org_dtype = torch_utils.get_param(self).dtype
+        org_dtype = target_dtype
+        for param in self.parameters():
+            if param.dtype != target_dtype:
+                org_dtype = param.dtype
+                break
+
         if org_dtype != target_dtype:
             self.to(target_dtype)
         result = self.org_forward(*args, **kwargs)
@@ -170,7 +174,7 @@ def manual_cast(target_dtype):
             continue
         applied = True
         org_forward = module_type.forward
-        if module_type == torch.nn.MultiheadAttention and has_xpu():
+        if module_type == torch.nn.MultiheadAttention:
             module_type.forward = manual_cast_forward(torch.float32)
         else:
             module_type.forward = manual_cast_forward(target_dtype)

## Description
torch.nn.MultiheadAttention have so much forks inside their forward call and is impossible to patch their inside call of computation operationg. I decide to give it "always fp32" when manual_cast is used.

And since the dtype error I got is weird, it claim the tensor it got is fp32 and fp8, which should never happen.(Should at least be fp32 and fp16) 
So it is possible that torch_utils.get_param is not working for my case.

Based on some test, I finally decide to just go through all the parameters to check if there are any different dtype parameters.


## Checklist:

- [x] I have read [contributing wiki page](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Contributing)
- [x] I have performed a self-review of my own code
- [x] My code follows the [style guidelines](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Contributing#code-style)
- [x] My code passes [tests](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Tests)
