見出し画像

AI日和-#14 Flux.1-GGUFをComfyUI M2 Macで動かしてみる

 Flux.1随分と話題なので、ずっとトライしているけれどグラボのないMacは苦戦続き。何か良い手はないかと探していたらこんなYouTube発見。

何でもFlux.1-schnellベースにdevを足した感じで軽いけど、綺麗な画像が出るってことで、なかなかM2-Macでは生成スピードも上がらずなので、藁にもすがる感じでトライすることにしました。

 先ずはHugging Faceから色々ダウンロードです。

YouTubeの中では色々あるけど、今日はこれにしますってことで
"flux1-dev-Q4_0.gguf"をダウンロードしてUNETのフォルダーに格納。

それ以外はclip_1.safetensorsとかae.safetensorsは既にインストールしてあるのであとはワークフローをダウンロードします。

YouTubeを見ているとGGUFを動かすためにターミナルで色々やっていますが、よくわからないので、とりあえずStability Matrixを開いて何が足りないか聞いてみることにしました。そうするとInstall Missing Custom Nodeをクリックすると

このCustom Nodeが足りないらしいので、多分これのことだろうとInstall。
これが最初のノードになるみたいです。多分このUnet Loader(GGUF)ってやつなんだと思います。そこにさっきダウンロードしたファイルが入っています。あとはLoad VAEとDualClipLoaderの内容を確認してGo!

 かなり早いらしいので、期待していましたがKSamplerで凄い長いエラーが発生して止まっちゃいました。

読んでいくのも面倒なほどのエラーメッセージなので、そのままChatGPTに入れてエラーの内容と解決方法を聞くことにしました。回答はこんな感じ。

*****************************************************************************

### 原因

このエラーは、ComfyUIで使用されているPyTorchの特定の演算子(`aten::__rshift__.Tensor`)が、MPS(Metal Performance Shaders)デバイスでサポートされていないために発生しています。これは、Appleシリコン(M1/M2チップ)などのMacデバイスでPyTorchを使用している場合に見られる一般的な問題です。


### 解決策


#### 1. **環境変数の設定**

  エラーメッセージに記載されているように、以下の環境変数を設定して、MPSデバイスでサポートされていない演算子が使用される場合に、CPUフォールバックを使用することができます。

  ```bash

  export PYTORCH_ENABLE_MPS_FALLBACK=1

  ```

  これにより、該当の演算子がMPSで実行できない場合は、CPUにフォールバックして実行されます。ただし、CPUフォールバックはパフォーマンスが低下する可能性があります。


#### 2. **PyTorchの更新**

  PyTorchは継続的にアップデートされており、新しいバージョンではMPSのサポートが改善されている場合があります。PyTorchを最新バージョンに更新することを検討してください。


  ```bash

  pip install --upgrade torch torchvision torchaudio

  ```


#### 3. **別のデバイスで実行**

  MPSでの実行に問題がある場合は、CUDA対応のGPUを搭載したデバイスや、CPUでの実行に切り替えることも考えられます。


#### 4. **PyTorchのissueトラッカーをチェック**

  エラーメッセージで提案されているPyTorchのissueページ(https://github.com/pytorch/pytorch/issues/77764)を確認し、問題が解決されているか、他のユーザーが提供する回避策を探してみることも有効です。


### 信頼度評価

この解決策の信頼度は高いです。`PYTORCH_ENABLE_MPS_FALLBACK=1`は公式な回避策であり、またPyTorchの更新によってMPSのサポートが向上する可能性もあるため、まずはこれらの方法を試してみることをお勧めします。
*****************************************************************************

どうもやっぱりMプロセッサーのGPUの問題みたいですね。とりあえずPyTrochをアップデートして、MPSを動かせるように

export PYTORCH_ENABLE_MPS_FALLBACK=1

を実施してみましたが、うまくいったのか不透明です。これで動かしてみましたが、やっぱり上手くいかないので、色々考えてCPUだけで動かしてみることにしました。
設定画面からCPUだけで生成するように変えてみました。

これで要約画像が生成できました。しかしNvidiaのグラボが搭載されたマシンだと1分くらいで生成するらしいですが、KSamplerのStep数をデフォルトの4回でやりましたが10分くらいかかってしまいました。

しかも生成された画像はボケボケでイマイチでした。

まあ、だいぶ楽しめたので良しとします。やっぱりグラボが必要なのかとしみじみ思う今日この頃です。

次はGoogle Colabで試してみようと思います。

最後まで読んでくれてありがとうございます。スキやコメントいただけると嬉しいです。そして、下記からコーヒーでもご馳走して貰えるとさらに嬉しいです。

2024/8/23

いいなと思ったら応援しよう!