Intel ARC A750でStable Diffusionを動かす (Windowsネイティブ編)

この記事以降にSD.next Windowsネイティブ版の更新がありました。こちらを参照ください

tomokz.hateblo.jp

 

Stable Diffusion Webui/Automatic1111のfork版 Vladmandic/automaticは以前からIntel ARC(oneAPI)対応でしたがWindowsではWSLでしか動いてませんでした。最近WSL無しで動くようになったので手順をメモします


WSL版の記事はこちら

読まなくても大丈夫です

tomokz.hateblo.jp

 

おことわり

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を使います

github.com

 


Windows版についてはこの辺で話題になっています。

 

Steps to run SD.Next on native windows with Intel Arc GPU · vladmandic/automatic · Discussion #2023 · GitHub

 

今回の記事はここに書いてある手順を訳したようなものです

インストール手順

こんな順番です

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のダウンロードリンクがあります

www.intel.com

 

上記のページを開いて、

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

こんな感じ