見出し画像

【Stable Diffusion】M1 macで、LoRAを作成する拡張機能、「Train Tools」を動かす方法

M1のmacだとGPUが内臓のため、Stable Diffusion Web UIのツールである「Train Tools」が動かなくて、LoRA作成を諦めてしまった方に、無理やり起動する方法を見つけましたので、共有します

注意事項

 あくまでも、自己責任の範囲で実施してください。直接pythonのコードを修正するので、アップデートしたら動かなくなったとか、生成が失敗したとか、環境が壊れたとしても、責任を負いません。
エラー内容を把握できて、自己修復できる方のみ、この先を読み進めてください。

なぜ動かなかったのか?

 元々のLoRA作成ツールには、コマンドラインによるオプション指定で、CPUのみでの学習を行える機能を具備しておりますが、Train Toolsの画面(UI)は、GPUが存在している前提でパラメタを生成して動作するため、GPUがデフォルトになっています
(自己解析なので、勝手な解釈です)

どうやるのか?

画面から「Mixed precision」の指定に”no"の選択肢を追加するだけ!

・train_toolsの生成パラメタ設定画面で「Mixed precision (If your graphics card supports bf16 better)」を選択するのですが、fp16かbp16しか選べない

 CPUで学習させるには、「no」の選択肢が必要であり、train_toolsの画面を生成しているpythonコードを変更してあげれば良い

[変更するpythonのコード]
stable-diffusion-webui/extensions/sd-webui-train-tools/liasece_sd_webui_train_tools/ui.py

・エディタで開き編集します

[変更前]
choices=["fp16", "bf16"]
[変更後]
choices=["no","fp16", "bf16"]

[エディタを使えない方のため]

cd /(インストールdir)/stable-diffusion-webui
sed -i -e 's/choices=\["fp16", "bf16"\]/choices=\["no","fp16", "bf16"\]/g' extensions/sd-webui-train-tools/liasece_sd_webui_train_tools/ui.py

たったのこれだけ…CPUでLoRA作成ができますが、異常に遅いですw

生成時のパラメタ設定について

・xformersは、記事作成時点では使えないので、チェックを外す

・Mixed precision (If your graphics card supports bf16 better)の選択をnoにする

・その他のパラメタ設定は、LoRA作成に関する内容なので省略します

内臓GPUで動かせないのか?

前回の記事を適用すると、画像生成時もLoRA作成時も内臓GPUを使ってくれます
LoRA作成が爆速になりますw

GPUを使う設定にした時に、webui起動時に、diffusersモジュールでエラー吐く時があります

  File "/インストールdir/stable-diffusion-webui/venv/lib/pythonの環境名/site-packages/diffusers/utils/import_utils.py", line 207, in <module>
    if torch.__version__ < version.Version("1.12"):
TypeError: '<' not supported between instances of 'str' and 'Version'

 こんな時は、「import_utils.py」をコードをエディタで開き、エラーとなっているコードをコメントにする

 バージョンチェックをしているのですが、torchのバージョンは、前回の記事では開発バージョンを入れているため、下記の様に、1.12以下ではないので、コメントにしても問題ない

コメントにするのは、先頭に「#」記号を入れて、保存する

        # if torch.__version__ < version.Version("1.12"):
        #     raise ValueError("PyTorch should be >= 1.12")


LoRAをmacで生成して、快適な画像生成ライフを楽しんでください

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