画像生成AI『Stable Diffusion』を導入してみた

yasuです。
以前、Wizardry PROVING GROUNDS OF THE MAD OVERLOADをプレイの記事で書いたように、Steam版であれば自分で作成したキャラクターにポートレートを設定できるということで、YouTube動画を参考にMicrosoftのBing Image Creatorを使ってポートレートを生成したのですが、Bing Image Creatorだと画像を早く作れる回数が決まっていて1日に数枚程度しか作成できないことや、職場閲覧注意な画像は生成できないなどのデメリットがあります。

どうせなら自宅のPCやサーバーで自由にAI画像を生成するツールがないかな~と探してみたところ、Stable Diffusion WebUIをローカルPCで動かすと制限なく画像が生成できるということだったので、簡単ですが備忘録として手順を残すことにしました。

そもそもStable Diffusionのローカルで稼働される製品には、大きく

の2種類があり、WebUIの有名なのが

と4種類くらいあるそうですが、上3つはしばらく更新がされていないそうなので、一番下のForge Classicをチョイスしました。

AIで画像を生成するにはGPUが高性能でないと、生成に時間がかかるもしくは画像生成ができないということで、自宅にあるPCの中でGPU性能が一番高いWindows PCに導入する事にしました。というか、Stable Diffusion WebUI Forge ClassicはWindowsでしか動作確認がされていないようです。

Stable Diffusion WebUI Forge ClassicをインストールするPCは以下の通りです。

PCスペック

CPU:Intel Core i9 10900F
マザー:ASRock Z490 PRO4
メモリ:16GB (CFD W4U3200CX1-8G×2)+16GB(CORSAIR CMK16GX4M1A2666C16)
SSD:WD Blue SN580 1TB
GPU:玄人志向 GG-RTX3070Ti-E8GB/DF
OS:Windows 11 Professional

4年くらい前にパーツを購入して自作したPCで、GPUは去年の春に中古で4.5万で購入したものを取り付けています。

導入手順

1.Git for Windowsのインストール

Stable Diffusion WebUI Forge ClassicはGitHubでソース管理されているので、ダウンロードするのにGit for Windowsを導入した方がいいです。
以前導入した記事のリンクを張っておきます。

Windows 11にGit for Windowsをインストール

2.Stable Diffusion WebUI Forge Classicのインストール

肝心のStable Diffusion WebUI Forge Classicをインストール(GitHubからダウンロード)します。
コマンドプロンプトを起動して、以下コマンドを実行していきます。

git clone https://github.com/Haoming02/sd-webui-forge-classic

3.uvのインストール

uvというPythonのパッケージ管理ツールをインストールします。
Pythonはあまり詳しくないのですが、どうやらフォルダ毎に導入したいPythonのバージョンを管理できるようなものらしいです。
こちらもコマンドプロンプトで、以下コマンドを実行していきます。

uvをアップデートする際は下記コマンドを実行します。

uvのマニュアルは以下URLを参照。

https://docs.astral.sh/uv/getting-started/installation/

続いて、Stable Diffusion WebUI Forge Classicを動かすのに必要な推奨Pythonのバージョンが3.11のようなので、Stable Diffusion WebUI Forge Classic格納フォルダでPython3.11が動くように設定します。

4.Stable Diffusion WebUI Forge Classicの起動準備

Stable Diffusion WebUI Forge Classicを起動する前に必要なパラメタを設定します。
修正するファイルはStable Diffusion WebUI Forge Classic格納フォルダのルートフォルダにwebui-user.batファイルがあるので、これをメモ帳などテキストエディタで編集します。

修正箇所は「set COMMANDLINE_ARGS=」の箇所で、ここにStable Diffusion WebUI Forge Classicの起動パラメタを設定します。
yasuのPCはGPUにRTX3070を使っているのとuvを導入したので、COMMANDLINE_ARGSに「–uv –xformers –cuda-malloc –cuda-stream –pin-shared-memory」を追加しました。

@echo off

:: set PYTHON=
:: set GIT=
:: set VENV_DIR=

■修正前
set COMMANDLINE_ARGS= --no-download-sd-model
↓
■修正後
set COMMANDLINE_ARGS= --no-download-sd-model --uv --xformers --cuda-malloc --cuda-stream --pin-shared-memory

:: --xformers --sage --uv
:: --pin-shared-memory --cuda-malloc --cuda-stream
:: --skip-python-version-check --skip-torch-cuda-test --skip-version-check --skip-prepare-environment --skip-install

call webui.bat

5.Stable Diffusion Checkpointの導入

Stable Diffusion Checkpointというのは画像の特徴を保存したファイルで、他のAIツールではモデルと呼ばれるものです。
このCheckpointを入れ替えるだけでアニメ風の画像を作ったり、リアル風の画像を作ったりできるそうです。
今回Wizardryのポートレートなのでアニメ風にしたく、色々探していたら「Animagine XL 4.0」が良さそうだなと思いましたので、これをダウンロードします。

https://civitai.com/models/1188071/animagine-xl-40

画面右上の方にダウンロードボタンがあるのでダウンロードします。
ダウンロードした animagineXL40_v40.safetensors ファイルは、sd-webui-forge-classic\models\Stable-diffusionフォルダに格納します。
sd-webui-forge-classic
└ models
 └ Stable-diffusion ←このフォルダに animagineXL40_v40.safetensors を格納する

6.Stable Diffusion WebUI Forge Classic起動

4.で修正したwebui-user.batファイルをダブルクリックしてStable Diffusion WebUI Forge Classicを起動します。
コマンドプロンプトが起動して、しばらくするとブラウザが起動してくると思います。

まず導入したCheckpoint「Animagine XL 4.0」を利用する推奨の設定をしていきます。
Stable Diffusion Checkpoint:animagineXL40_v40.safetensors
Sampling Method:Euler a
Sampling Steps:25~28(28を推奨)
Width:1024
Height:1024
CFG Scale:4~7(5を推奨)

続いてプロンプトとネガティブプロンプトを指定します。
プロンプトはAIにどのような画像を作成してほしいかを指示するためのキーワードで、逆に生成してほしくない画像はネガティブプロンプトに記入します。

Wizardryのポートレートを作りたいので、イメージはロードの女の子のプロンプトとネガティブプロンプトを指定します。

Prompt

(masterpiece:1.2),best quality,ultra detailed,16K,single woman,beautiful girl,teenager,dark red hair,ponytail,knight,adventurer,village,looking ahead,smiling,sword,detailed skin,rich,cute face,blue eyes,blush

Negative Prompt

lowres, bad anatomy, bad hands, text, error, missing finger, extra digits, fewer digits, cropped, worst quality, low quality, low score, bad score, average score, signature, watermark, username, blurry

Batch Count:5
最後のBatch CountはGenerateボタンをクリックして画像を何枚作るかの指定なので、作成したい枚数を入力します。
とりあえず5枚くらい作ってみようかなくらいで指定しています。

これで[Generate]ボタンをクリックすると、プロンプトとネガティブプロンプトで指示した内容に沿って画像を生成してくれます。
画像は \sd-webui-forge-classic\output\txt2img-images\yyyy-mm-dd フォルダに保存されます。
yyyy-mm-ddは画像を作成した年月日です。

とりあえず最初の1枚目だけを張っておきますが、こんな感じの画像が数秒でできるんですね。
いや、凄い世の中になったものです。

Steam版Wizardryをプレイされている方、ぜひStable Diffusionを導入して、素敵な画像を作成して、ポートレート設定してみてはいかがでしょうか?

コメントする