構成#
- CPU:Core i5 12600K
- GPU:Intel ARC A770 16GB
CPU内臓グラフィックは無効にしてあります。(使用するGPUを指定できなかったため)
前置き#
Intel公式のWin版IPEXではAOTコンパイルのサポートがされておらず、モデルのロード等にかなり時間がかかってしまうので快適に使用できないという問題があった。
9/20にNuullll氏がAOTをサポートしたホイールを公開したことでWSL2を介さないStable Diffusionの利用が現実的なものとなった。
(性能はネイティブなLinux環境の80%程度に落ち着くそう)
Install#
- (任意)SD.Next用の環境を作成
python -m venv venv
- DLLの依存関係をインストール
pip install dpcpp-cpp-rt mkl-dpcpp
- SD.Nextをクローン
git clone https://github.com/vladmandic/automatic.git -b dev
cd automatic
- 実行
python launch.py --use-ipex
Nuullll氏の手順では手動でipexをインストールするように書かれているが
以下のコミットで自動でNuullll氏のホイールをインストールするように変更されています。
色々模索したのでメモ#
使用モデルはAnything3
backend
基本的にはOriginalバックエンドのほうが生成が速いがLoraが正確に扱えていない気がする。Cross-attention optimization method
Sub-quadratic推奨。Device precision type
BF16が最速。~~速さでは少し劣るがFP16のほうが生成物のクオリティが高い。 ~~ 2023/11/01時点ではBF16も安定している。samplers
自分的にはEuler aが生成速度とクオリティの両立が取れていると感じる。WSL2との比較
VRAMのリークが発生しない。(以下のコミットで修正されていたようだが自分はHyperV環境なので適応範囲外だった)
RAMの使用量が少なく感じられる。
生成速度はWSL2が優っている。
複数Loraを使用した際の適応がWSL2のほうが良い。
あとがき#
ぼく個人の感想です。なんかそういうデータはありません。
参考にしたもの#
追記#
- 2023/11/01
pythonをMinicondaから通常のものに変えたので一部コマンドをvenv用に変更。