Intel ARC A750でStable Diffusionを動かす (Windowsネイティブ編)
この記事以降にSD.next Windowsネイティブ版の更新がありました。こちらを参照ください
Stable Diffusion Webui/Automatic1111のfork版 Vladmandic/automaticは以前からIntel ARC(oneAPI)対応でしたがWindowsではWSLでしか動いてませんでした。最近WSL無しで動くようになったので手順をメモします
WSL版の記事はこちら
読まなくても大丈夫です
おことわり
Windows版でもWSL版同様、A750でRTX3060よりちょい遅い程度とそこそこの速度をだしますが、データの内部形式変換のため起動時や各モジュールの初回動作時に相当の待ち時間が発生します
・起動からUI表示まで2〜3分
・初回のモデル読み込みで2〜3分
・txt2img初回のプロンプト入力から出画まで12分〜
・初回顔補正 で2〜3分
・初回Adetailer(顔補正add on)で2〜3分
Linux/WSL版だと起動時の2〜3分以外はこれほどの時間はかかりません
この待ち時間は耐えられないな、という方はWSL版を検討してみてください
動作環境
玄人志向 Intel ARC A750, Ryzen9 5900, Mem32GB, SSD 2TB, 電源750W
ソフト
前回同様Intel ARC対応のAUTOMATIC1111/stable-diffusion-webuiをフォークした vladmandic/automatic、通称SD.nextを使います
Windows版についてはこの辺で話題になっています。
今回の記事はここに書いてある手順を訳したようなものです
インストール手順
こんな順番です
・Intel ARCドライバをインストールする
・Git for Windowsをインストールする
・Python3.10.8をインストールする
・Visual Stoudio2022をインストールする
・Intel OneAPI Basekitをインストールする
・Miniconda for Windowsをインストールする
・SD.nextことvladmandic/automaticの動く環境を作り、インストールする
Intel ARCドライバをインストールする
今動いてるドライバで大丈夫です
Git for Windowsをインストールする
略
Python3.10.8をインストールする
略。インストール時「PATHの拡張を有効にする」にチェックを入れて下さい
Visual Studio2022をインストールする
略。python開発、C++ CLI開発あたりをインストールするチェックを入れました
Intel OneAPI Basekitをインストールする
こちらのページ
Installation Guide (Windows) — intel_extension_for_pytorch 2.0.110+xpu documentation
中程のリンクにIntel® oneAPI Base Toolkit 2023.2.0のダウンロードリンクがあります
上記のページを開いて、
OS:Windows
Offline Installer
Ver.:2023.2.0
を選択するとDownloadリンクが現れます
お知らせメール登録用にEmail Address, Country/Regionの入力欄がありますが、登録したくない人はSign Up& Downloadのボタンの下のContinue without signing up (download starts immediately) →
からダウンロードしてください
Miniconda for Windowsをインストールする
通常SD.nexはPythonのvenv形式Python環境を使いますが、Intel ARC Windowsネイティブ版ではanacond形式のPython環境を使うようです
SD.next用のPython環境を作る
minicondaコンソールを開く
Windowsメニューからminiconda プロンプト(PowrShellじゃない方)を選択し、開きます
>conda create -n sdnext python=3.10
sdnext用環境に切り替え、不足モジュールをインストールする
>conda activate sdnext
>conda install libuv
SD.nextことvladmandic/automaticをインストールする
引き続き上記のminicondaプロンプトをそのまま使います
oneAPIツールへのpathを通す
oneAPIツールへのpathを通すバッチファイルを呼び出します
「Intel OneAPI Basekitをインストールする」で、"C:\Program Files (x86)\Intel\oneAPI\setvars.bat"がインストールされています(場所はインストール手順で変わる可能性あり)
> call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
でコンソールに次の文字が表示されます
:: initializing oneAPI environment...
Initializing Visual Studio command-line environment...
Visual Studio version 17.6.5 environment configured.
"C:\Program Files\Microsoft Visual Studio\2022\Community\"
Visual Studio command-line environment initialized for: 'x64'
: compiler -- latest
: debugger -- latest
: dev-utilities -- latest
: mkl -- latest
: tbb -- latest
:: oneAPI environment initialized ::
コンソールからoneAPI関係コマンドが動くのを確認します
>sycl-ls
出力に
[opencl:gpu:2] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A770 Graphics 3.0 [31.0.101.4577]
といったGPU名、ドライババージョンがあればOKです
SD.nextをダウンロードし、インストールします
適当な場所X:\dir\でgit cloneします
>cd /D X:\dir
>git clone https://github.com/vladmandic/automatic.git
>cd automatic
SD.nextを初回起動します
>python launch.py --use-ipex
次回からの起動手順
miniconda プロンプト(PowrShellじゃない方)を選択し開く
>conda activate sdnext
> call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
>cd /D X:\dir\automatic
>python launch.py --use-ipex
バッチでまとめておくと便利です
call C:\Users\username\miniconda3\Scripts\activate.bat C:\Users\username\miniconda3
call activate sdnext
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
cd /D X:\dir\automatic
python launch.py --use-ipex --listen
こんな感じ