【AI/画像生成】Windows11のAMD環境でStable Diffusionを動かしてみる

2023年7月2日環境構築,画像生成

こんにちは、しきゆらです。
ChatGPTや画像生成など、AIが持てはやされて久しい昨今。
今回は、AMD環境でStable Diffusionを動かそうと思います。
なお、Stable DiffusionはCUDAを使うため基本的にはGeForce/NVIDIA RTX(旧Quadro)環境が必要になります。
Radeon環境ではそのままでは動かないので、Microsoftが提供しているCUDAの代わりDirectX12を使ったDirectMLを使って動くようにした「Stable-Diffusion WebUI DirectML」を使っていきます。


画像生成AIとは

画像生成AIとは、利用者がテキストやデータをAIへ入力し、入力を受けてAIが画像を生成する技術を指します。

AIというと、初めのころは特定の分野に特化した判断や識別などに利用されていました。
2000年代後半ころからはハードウェアの性能が上がったことが要因となり機械学習・ディープラーニング等が活発に利用されるようになり、将棋や囲碁等でAIがプロ棋士に勝利するようになってきました。

2020年からは、大量のデータから規則や構造を学習し、入力に対して同様なものを生成するAIが登場しました。
質問するとそれっぽい情報を返答してくれるChatGPTや、テキストで要素を列挙すると画像を作成する画像生成AIなどの生成AI・ジェネレーティブAIという分野が現在活発になっています。

上記のような生成AIのうち、画像を生成するAIの総称を画像生成AIというように表現されています。
よく使われるものとしては、DiscordからBeta版が利用でき気軽に使い始められるMidjourny、テキストのほかにも画像やControlNetと呼ばれるデータを入力して細かく生成する画像を指定できるStable Diffusionなどがあります。 この他、Adobe Photoshopに搭載されているAdobe Firefly、Web上やMicrosoft Edgeのサイドバーから利用できるImage Creatorなど特定のツール・サービス上から利用できるものも存在しています。

なお、画像生成AIについては、著作権や利用している学習データなど様々な問題が議論中です。
利用についてはあくまで自己責任ですが、手元で動かして遊ぶ以外にもアイデア出しの補助や構図の参考など使い方によっては便利であるのは間違いないかと思います。
使い方、生成物の利用・扱いに注意しながら楽しみましょう。

・・・と長々と書いてきましたが、ざっと調べたものなので
誤解やおかしな点などあればコメント等で教えていただければ幸いです。

ここからは導入・動作を見ていきます。

Stable Diffusion WebUI DirectMLを導入する

基本的にstable-diffusion-webuiのWikiにある「Install and Run on AMD GPUs」の手順に従って進めます。

まずは、Python 3.10.6をインストールし、PATHを通します。
ここからダウンロード可能です。
※ 手元の環境では3.10.11でも動作していますが、まずは手順に記載されているバージョンから試してみてください

PATHの通し方はこの辺を参考に。

続けてGitをインストール。

Gitをインストール後、こちらのリポジトリをお好みのところにクローンしてきます。

基本的な準備はこれでおしまい。
簡単でよいですね、ありがたい。

実行時は、webui-user.batをダブルクリックして立ち上げます。
なお、環境によって必要なオプションがあります。
この辺を参考に、お使いの環境に必要なものをピックアップしてset COMMANDLINE_ARGS=のところに追記してください。

手元の環境は、以下を記載しています。

set COMMANDLINE_ARGS=--disable-nan-check --no-half-vae --autolaunch

動かしてみる

webui-user.batを実行して起動を待ちます。
初回実行時は諸々必要なものをダウンロードしてくるので時間がかかるので、気長に待ちましょう。

オプションに--autolaunchを付けておくと、起動後規定のブラウザが立ち上がります。
つけていない場合は、Running on local URL: http://127.0.0.1:7860と記載がされれば起動完了です。
ブラウザにURLを入れて開きましょう。

なお、実行環境については過去の投稿にまとめていますが、以下の通りです。

CPUAMD Ryzen 9 7900X
GPUAMD Radeon RX7900XTX
メモリDDR5 32GB (6000MHz)
PC構成

ブラウザで開くとこんな感じ。

Prompt/Negative promptのところにいわゆる呪文と呼ばれるプロンプトを記載して、右上にあるオレンジ色の「Generate」を押せば生成が始まります。
それぞれの設定値については調べていただければと思います。

手元で動かしながら調べつつやっているので、もしかしたらまとめるかもしれません。

ちなみにですが、ハローアスカベンチマークの設定で512×512サイズの画像を生成した場合、1枚当たりおおよそ8秒程度で生成可能です。
ただし、CUDAではなくDirectML環境だからか生成結果はちょっと異なっているようです。

まとめ

今回は、最近話題の画像生成AIの1つであるStable DiffusionをRadeon環境で動かしてみました。

調べてみると、生成画像と呪文・プロンプトをセットで掲示してくれているサイトがいくつかありますが同じものを生成することはできないのでご注意ください。

ただ、PCスペックが許せばかなりの速度で生成してくれるので、遊んでみてはいかがでしょうか。

今回は、ここまで。

おわり