使ってわかるCopilot+ PC

第53回

「Stable Diffusion WebUI」でもNPUが使える! SD 2.1の画像を約10秒で生成

「AUTOMATIC1111 stable-diffusion-webui Extension」

「AUTOMATIC1111 stable-diffusion-webui Extension」

WebUIの「Stable Diffusion」をNPUで動かす

 先週は画像編集・処理ソフト「GIMP」でNPUを使って画像生成AI「Stable Diffusion」を動かす話を紹介した。

 今回も「Stable Diffusion」をNPUで動かす話だが、ベースとなるのは「AUTOMATIC1111」と呼ばれる「Stable Diffusion」のWebUIだ。「AUTOMATIC1111 stable-diffusion-webui Extension」という拡張機能として提供されており、「Qualcomm AI Runtime (QAIRT)」を用いて「Snapdragon X」シリーズのNPUが使われる。

 この拡張機能で使えるのは「AUTOMATIC1111」の一部の機能とされている。具体的には「Stable Diffusion 1.5」および「2.1」のtxt2imgモードなど。前回紹介した「GIMP」を使うものは「1.5」のみ対応だったので、こちらの方がより新しいバージョンで画像を生成できることになる。

 なお、本稿の執筆中、AMD製NPUに最適化された「Stable Diffusion 3.0 Medium」が発表されている。筆者宅には検証環境がないので、いずれ機会があれば試してみたい。

インストール手順

 今回もインストール手順はGitHubに書かれているのだが、一部の手順は慣れていない方には難しいので、本稿ではなるべく詳しく説明していく。

 まず基本的なこととして、この拡張機能は「Snapdragon X」シリーズ以外のNPUでは動作しない。Intel製やAMD製のNPUでは動作しないのでご注意を。

 手順のStep 1では、最初に「Git」をインストールする。手順で案内されているのはx64版の古いバージョンなのだが、「Git」の公式サイトにはARM64版の最新版も用意されているので、そちらを使うといい。筆者は何も考えずにx64版の最新版をインストールしてしまったが、それでも作業的には問題は出なかった。インストーラーは多数の設定項目を尋ねてくるが、特に何も変更せず進めていい。

「Git」のインストール。確認項目は多いが変更なしで大丈夫

 次に「Python」をインストールする。こちらはバージョン3.10.6以外のものを使用しないようにと書かれているので、手順にあるリンクから素直にダウンロードする。こちらはインストーラーの最初の項目で「Add Python 3.10 to PATH」にチェックを付けておく必要がある。

PATHを通すチェックを忘れずに

 Step 2では「AUTOMATIC1111」の本体をダウンロードする。Windows PowerShellを起動し、ダウンロードしたいフォルダーに移動する。移動方法は、[C:apps]というフォルダーに移動する場合、

cd C:\apps

 と入力する。続いて「AUTOMATIC1111」のダウンロードは「Git」を使用し、下記のとおりに入力する。

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

 これで「stable-diffusion-webui」というフォルダーが新たに作られ、その中に「AUTOMATIC1111」が入っている状態になる。そのフォルダーへ移動するためのコマンドはこちら。

cd stable-diffusion-webui

 ここまで進んだらPowerShellのウィンドウはいったんそのままにしておく。

 次はStep 3。拡張機能をダウンロードする。手順にある[latest release]のリンクをたどり、拡張機能のZIPファイルをダウンロードする。本稿執筆時点では[stable-diffusion-webui-qairt-extension-v1.2.zip]だった。

 このZIPファイルを解凍し、中にある[qairt_accelerate]というフォルダーを丸ごと、[stable-diffusion-webui]フォルダーの下にある[extensions]フォルダーにコピーする。

ZIPファイルの中にある[qairt_accelerate]を丸ごと[extensions]フォルダーにコピー

 Step 4はWebUIの「AUTOMATIC1111」の起動だ。先程開いたままにしておいたPowerShellに戻り、下記のコマンドを入力。もしウィンドウを閉じてしまっていたら、再び[stable-diffusion-webui]フォルダーに移動してから下記のコマンドを入力すればいい。

$env:TORCH_INDEX_URL="https://download.pytorch.org/whl/cpu"
$env:WEBUI_LAUNCH_LIVE_OUTPUT=1
.\webui.bat --skip-torch-cuda-test --no-half --precision full --ui-config-file .\extensions\qairt_accelerate\ui-config.json

 この時に必要なファイルのダウンロードとインストールが行われ、作業が終わると自動でWebUIが開く。数GBのダウンロードが行われることもあり、筆者の環境ではインストールが完了してWebUIが起動するまで20分以上かかった。

PowerShellで最後のコマンドを入力すると、ダウンロードとインストールが進んでいく。初回はこのような画面が続き、かなり長時間かかる

「2.1」でも約10秒で画像を生成

 無事にWebUIが開いたら、画像生成を試してみよう。基本操作は、[txt2img]のタブのすぐ下にある[prompt]に生成したい画像の単語(プロンプト)を書き、右にある[Generate]ボタンをクリックする。

 初期設定では、512×512ドットの画像が1枚生成される。今回もプロンプトは『Surprised cat face floating in space』としたところ、7~8秒で1枚の画像が生成された。

無事に画像が生成された

 初期設定では「Stable Diffusion 1.5」が使われている。下の方にある項目の「Model to use」を選択すると、「Stable Diffusion 2.1」も選択できる。こちらでも同様の手順で画像を生成してみると、約10秒で1枚の画像が生成された。やはり「2.1」の方が処理は重くなるようだ。メモリ使用量には大きな差はなかった。

「Stable Diffusion 2.1」でもNPUを使って画像生成できる
こんな画像が約10秒で生成できた

 生成中はNPUをほぼフルに使用するのがわかる。GPUを使用せずに画像を生成できるだけでなく、使いやすさやわかりやすさにも優れるWebUIを使えるのは大きな利点だ。ローカルAIによる画像生成が、NPUのおかげでかなり手軽になるのが実感できる。

NPUもしっかり使っている。左端の山は「1.5」、右側は「2.1」の生成時のもの。メモリ使用量はそれほど違いが見られない
著者プロフィール:石田賀津男(いしだ かつお)

1977年生まれ、滋賀県出身

ゲーム専門誌『GAME Watch』(インプレス)の記者を経てフリージャーナリスト。ゲーム等のエンターテイメントと、PC・スマホ・ネットワーク等のIT系にまたがる分野を中心に幅広く執筆中。1990年代からのオンラインゲーマー。窓の杜では連載『初月100円! オススメGame Pass作品』、『週末ゲーム』などを執筆。

・著者Webサイト:https://ougi.net/