はじめに
FLUX.1の時と同じエラーに遭遇しました。
RuntimeError: Required aspect fp64 is not supported on the device
どうやらこれはArc A770がfloat64に対応していないのが原因のようです。
またdiffusersのコード書き換えてインストールする必要がありました。
環境構築
Diffusers以外のインストール
まずはDiffusers以外をインストールします。
[project] name = "flux" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.12" dependencies = [ "accelerate==1.12.0", "hf-xet==1.2.0", "pytorch-triton-xpu==3.5.0", "torch==2.9.1+xpu", "torchvision==0.24.1+xpu", "transformers==4.57.6", ] [[tool.uv.index]] name = "torch-xpu" url = "https://download.pytorch.org/whl/xpu" explicit = true [tool.uv.sources] torch = [{ index = "torch-xpu" }] torchvision = [{ index = "torch-xpu" }] pytorch-triton-xpu = [{ index = "torch-xpu" }]
uv sync
Diffusersのインストール
その後diffusersをインストールします。
git clone https://github.com/huggingface/diffusers cd diffusers
src/diffusers/models/transformers/transformer_flux2.py内のFlux2PosEmbedクラスを書き変えます。
修正前
is_mps = ids.device.type == "mps" is_npu = ids.device.type == "npu" freqs_dtype = torch.float32 if (is_mps or is_npu) else torch.float64
修正後
is_mps = ids.device.type == "mps" is_npu = ids.device.type == "npu" is_xpu = ids.device.type == "xpu" freqs_dtype = torch.float32 if (is_mps or is_npu or is_xpu) else torch.float64
その後インストール
pip install -e .
結果
