インテル Arcで画像生成系AI入門!設定方法とパフォーマンス検証でArc×生成AIを解説

文●加藤勝明(KTU) 編集● ジサトラユージ/ASCII

提供: ASRock/テックウインド

  • この記事をはてなブックマークに追加
  • 本文印刷

OpenVINOを利用したStable Diffusion+Automatic 1111環境を構築する

 ここから先は実際の導入手順解説となる。Stable Diffusionでインテル Arcによる推論処理の高速化を図るには、インテルが提供する「OpenVINO」の活用が肝となる。幸いなことにOpenVINO入りのStable Diffusion+Automatic 1111環境およびインストールガイドがGitHubのリポジトリー(https://github.com/openvinotoolkit/stable-diffusion-webui/wiki/Installation-on-Intel-Silicon)にあるので、これを利用させていただくとしよう。一部機能が未対応だそうだが、Stable Diffusion環境のスタートとしては十分のはずだ。

●手順1:GitとPythonの導入

 Stable Diffusionを始めるにあたり、Windowsに「Git」と「Python」の導入が必要となる。GitはGitHubのリポジトリーから必要なファイルを取得するために必要だし、PythonはAI処理に必須となる。

 PythonはPython公式(https://www.python.org/)のインストーラーのほか、Anaconda(https://www.anaconda.com/)、さらにAnacondaのミニマルな要素だけを抽出したMiniconda(https://docs.anaconda.com/free/miniconda/)があるが、本稿ではAnacondaを使用している。

 GitもAnacondaもインストール時に様々なオプションが提示されるが、特にこだわりがなければ何も変更せずに先へ先へと進めて問題ない。

Gitのインストーラーをダウンロード(https://git-scm.com/download/win)。少々分かりにくいが「64-bit Git for Windows Setup」のリンクを踏めばいい

Anacondaのインストーラーをダウンロード(https://www.anaconda.com/download/)して導入。現行執筆時点ではPython 3.11がセットアップされる

Anacondaの導入が終わると、スタートメニューに「Anaconda Prompt」が出現する。以降の作業ではずっとこれを使用するので、タスクバーにピン留めしておくことをオススメする

 今回紹介するStable Diffusion+Automatic 1111のリポジトリーは少々古いPython(3.10.6)の利用を前提している。Anacondaインストール時に導入されるPython 3.11でも動作するが、残念ながら万全ではないようだ。そこで3.10.6環境を「py310」という名前をつけて構築する。Anaconda Promptを起動し、以下のコマンドを入力し[Enter]キーを叩く。全部手打ちでもよいが以下のテキストのコピー&ペーストが楽だ。

conda create -n py310 python==3.10.6

上記コマンドを正しく入力するとこのような表示になる。Python 3.10.6環境に必要なファイルを別途ダウンロードするよ、という確認なので[Enter]キーを押そう

 その後、以下のコマンドでPython 3.10.6環境に切り替わる。このまま手順3の初回起動まで、このAnaconda Promptは閉じずにいよう。閉じてしまったらAnaconda Prompt上でconda activate py310をもう一度実行すればいい。

conda activate py310

conda activate py310でPython 3.10.6環境に切り替わる。コマンドプロンプトの行頭が(base)から(py310)に変化したらOKだ

●手順2:Stable Diffusionのリポジトリーを取得(クローン)する

 Anaconda Promptを起動し、以下のコマンドを入力してEnterキーを押す。これによりWindowsのホームフォルダー(C:¥Users¥ユーザー名)直下に「stable-diffusion-webui」というフォルダーが生成され、そこにリポジトリー内のファイルがダウンロードされる。

git clone https://github.com/openvinotoolkit/stable-diffusion-webui.git

最初の行(git clone〜)が正しくコピー&ペースト(赤線部)され実行できていれば、このような表示になる。行頭のpy310にも注目

●手順3:Stable Diffusionの起動

 Anaconda Prompt上で以下のようにコマンドを入力。1つ打ち終わるごとに[Enter]キーだ。こういうCLIに慣れているなら[Tab]キーによる補完を上手く使えば、毎回コピー&ペーストする必要はない。初めてwebui-user.batを実行した時は足りないファイルのダウンロードが入るのでしばし待つ(インターネットの接続速度による)必要があるが、起動に成功すればブラウザーが自動的に起動し、Automatic 1111のインターフェースが出現する。

cd stable-diffusion-webui

webui-user.bat

 この手順(手順3全体)がStable Diffusion+Automatic 1111そのものの起動手順となる。一度手順3を実施したら、以降はこの手順3だけを繰り返せばよい。手順1で作成したPython 3.10.6環境の有効化(conda activate py310)も2回目以降は不要となる。

cd stable〜の1行と、webui〜の1行を1つずつ入力。初めてwebui-user.batを実行するとかなりのスピードで文字が流れてゆく。Stable Diffusion 1.5の学習モデル(4GB弱)をダウンロードするのでじっくり待とう

webui-user.batの処理が進めば、やがてブラウザーが開きAutomatic 1111のUIが出現する。だがここでプロンプトを入れ始めるのはよろしくない

 ここでいきなりプロンプトを入力し始めても良いが、まだインテル Arcで処理できるようにはなっていない。OpenVINOを利用するように設定し、推論デバイスにGPUを選択する必要がある。ここだけは起動するたびに毎回設定する必要がある。

Automatic 1111のUIにある「Script」の下の部分(デフォルトでNoneとある部分)をクリックし「Accelerate with OpenVINO」に変更(赤矢印)。すると下側に追加の設定項目が出現するので「Select a device」から「GPU」を選択しよう(青矢印)。これでインテル Arcでの推論処理が可能になる

 この後はAutomatic 1111で自由な探索が待っている。解像度やSampling Steps、シード値などを好みの値に設定し、好みのプロンプトを入力した後「Generate」ボタンで生成開始だ。解像度を上げすぎると処理がとんでもなく遅くなるため、VRAM 8GBのArc A580〜A770なら768×768ドットまでにとどめておきたい。VRAM 16GBのA770なら1024×1024ドットもいけそうだが、Stable Diffusionが沈黙してしまったのでオススメはできない。

 またAutomatic 1111を起動した直後、あるいは解像度などのパラメーターを変更した直後の処理は必ず余分に時間がかかる(解像度に依存する)点は覚えておきたい。

A580環境でBatch Conut 10、Batch Size 1、768×768ドットで10枚の画像を連続で出力させた時の結果。上10本が初回起動時となるが最初の1枚(赤線部)だけ処理時間が長い(図中では53秒)。少しプロンプトを変え同じ設定で2回目の処理をさせると、1枚目(青線部)からフルスピード(17秒前後)で処理される

「SD.Next」も試してみよう

 Stable Diffusionの他にも、インテル Arc環境で利用できる画像生成系AIが存在する。それが「SD.Next」だ。インテル Arcのパフォーマンスを活かすためには、「Intel extension for PyTorch」、通称「IPEX」を組み込んだビルドを試すのがいいようだ。SD.Next+IPEX環境の構築には様々なガイドが存在するが、なかなか上手く動かないものだ。筆者が試して動いたものを軽く紹介するとしよう。

●手順1:GitとPythonの導入

 これは先ほどのStable Diffusion+Automatic 1111導入手順とまったく同じなので割愛する。Pythonも3.10.6そのままでいいだろう。

●手順2:SD.Nextを取得

 Anaconda Promptで以下のコマンドを実行し、SD.Nextのリポジトリーの内容を自分のPCにクローンする。URLが変わっただけで、やっている事は先のStable Diffusionと同じだ。

git clone https://github.com/vladmandic/automatic

●手順3:SD.Nextの起動

 起動手順はAnaconda Prompt上で行うが、コマンドの内容が先のStable Diffusionと微妙に異なる。専用のオプション(--use-ipex)を付けないとIPEXが有効とならず、CPUだけで処理するようになるからだ。SD.Nextも2回目以降はこの手順3だけ繰り返せばよい。

cd automatic webui.bat --use-ipex

webui.bat --use-ipexで起動するとズラズラと文字が流れる。使用しているインテル Arcの型番がdevice=の後に出てくるが、その最後に「ipex=2.1.10+xpu」と出ていれば(赤矢印)IPEX経由でインテル Arcを使ってくれると判断していい

SD.Nextもブラウザー経由で操作する。先のStable Diffusion+Automatic 1111環境と違って追加の設定はないが、右のサムネイルをクリックし使用したい学習モデルを選択するといい。このパネルは「Network」ボタンを押すことで出し入れできる

SD.Nextで768×768ドットの画像を生成中のGPUの様子。グラフィック描画時に使われる「3D」ではなくGPGPU演算を示す「Compute」に大きな負荷がかかっている事を示している

今回試したSD.NextではCPUも若干使われるようだ。前掲の図と同じタイミングでCPUの負荷を観察すると、3基程度のPコアが活発に動いているようだ

過去記事アーカイブ

2024年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2020年
01月
02月
06月
07月
08月
09月
10月
11月
12月
2019年
01月
02月
04月
05月
07月
08月
09月
10月
11月
2018年
02月
03月
04月
05月
06月
07月
08月
10月
11月
12月
2017年
01月
02月
03月
04月
06月
07月
08月
09月
10月
11月
12月
2016年
01月
02月
04月
05月
06月
07月
08月
11月
12月
2015年
02月
04月
06月
07月
08月
09月
11月
12月
2014年
02月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2013年
01月
05月
06月
07月
10月
11月
12月
2012年
01月
03月
04月
05月
06月
08月
09月
10月
11月
2011年
01月
02月
03月
05月
06月
07月
08月
09月
11月
12月
2010年
02月
03月
04月
05月
06月
07月
08月
09月
2009年
04月
08月
10月
2008年
01月
02月
2007年
02月
03月
06月
07月
08月
11月
2006年
02月
03月
05月
06月
07月
08月
09月
2005年
07月
10月
2004年
08月
09月