この記事のポイント
- Stable Diffusion WebUI Forgeは、高性能な画像生成が可能なオープンソースのGUIツールです
- Azure仮想マシン上での環境構築から、実際の画像生成までステップバイステップで解説
- モデルやLoRAの導入方法、プロンプトの活用など、実践的な使い方を詳しく紹介
- リモートアクセスとローカルアクセス、両方の設定方法に対応
- 一般的なトラブルシューティングや解決方法も含めた包括的なガイド
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
AIによる画像生成技術の進化により、より手軽に高品質な画像生成が可能になっています。その中でもStable Diffusion WebUI Forgeは、使いやすいインターフェースと高い拡張性で注目を集めています。
本記事では、Azure仮想マシン上でのStable Diffusion WebUI Forgeの導入から実践的な使い方まで、詳しく解説します。環境構築からモデルのセットアップ、実際の画像生成まで、具体的な手順をステップバイステップで紹介します。
初めての方でも理解しやすいよう、コマンドの実行方法やトラブルシューティングについても丁寧に説明しています。AI画像生成の可能性を探る第一歩として、この記事がお役に立てば幸いです。
目次
Stable Diffusion WebUI Forgeとは
Stable Diffusion WebUI Forgeのインストール方法
【ステップ3】Stable Diffusion WebUI Forgeの立ち上げ
Stable Diffusion WebUI Forgeの使い方
Stable Diffusion WebUI Forge導入時のトラブルシューティング
Stable Diffusion WebUI Forgeとは
Stable Diffusion WebUI Forgeは、人気の画像生成AI「Stable Diffusion」をより使いやすく進化させたオープンソースのGUIツールです。従来のWebUIから派生し、より高速な処理と安定した画像生成を実現します。
コミュニティによって活発に開発が進められ、LoRAやモデルの管理機能など、多彩な機能を備えています。
個人での画像生成から企業でのクリエイティブ制作まで、幅広い用途に対応できる柔軟性を持ち、特にAzure仮想マシンとの組み合わせにより、高性能な画像生成環境を構築することができます。
Stable Diffusion WebUI Forgeのインストール方法
AIを活用した画像生成環境を構築するため、Azureの仮想マシンを使用してStable Diffusion WebUI Forgeを導入します。環境のセットアップから初回起動まで、具体的な手順に沿って説明していきます。
Homebrewのインストール、必要なツールの準備、NVIDIAドライバの設定など、確実な導入のためのステップを順を追って解説します。
導入環境
まず、今回Stable Diffusionを立ち上げるにあたっては、Azureの仮想マシン(Azure VM)を使用します。
Azureの仮想マシンについては、こちらの解説記事をご覧下さい。
【ステップ1】仮想マシンへの接続
まずは、下記のコマンドを実行し、Azureにログインして下さい。
az login
使用するアカウントのサブスクリプション一覧と下記のような表示が出てきます。準備した仮想マシンのあるサブスクリプションの番号を入力して下さい。
サブスクリプションの選択
SSHを使用して仮想マシンに接続します。以下の接続コマンドをターミナルで実行して下さい。
ssh -i {秘密鍵のパス} azureuser@{パブリックIPアドレス}
パブリックIPアドレスは、以下のコマンドまたはAzureポータルで確認できます。
terraform output public_ip_address
コマンドでのパブリックIPアドレスの確認
AzureポータルでのパブリックIPアドレスの確認
初めてSSH接続を行う場合には、以下の画像のような警告が表示されるかもしれませんが、「yes」と入力し、確定して大丈夫です。
SSH接続を初めて行う際に表示される警告
すると、以下のような1行目の文章とともに、システムの情報などが表示されます。
SSH接続の成功
これで、SSHを使用して仮想マシンに接続することが出来ました。
【ステップ2】立ち上げの為のセットアップ
仮想マシンに接続した後は、以下のように緑色の表示が出てきます。
ここにコマンドを入力することで、仮想マシンでそのコマンドを実行することが出来ます。
仮想マシンの操作
【ステップ2-1】Homebrewのインストール
必要な依存関係をインストールします。以下のコマンドを順に実行して下さい。
sudo apt-get update
sudo apt-get install -y build-essential procps curl file git
1つ目のコマンドの実行結果
2つ目のコマンドの実行結果の一部
次に、Homebrewをインストールします。以下のコマンドを使用して、インストールスクリプトを実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
なお、実行時には下記のようにパスワードを求められます。
実行時のパスワード入力
パスワードを忘れてしまった場合は、以下のコマンドで設定することが出来ます。
sudo passwd azureuser
パスワードの設定
パスワード設定後、インストールスクリプトを実行し直しました。インストール時には、途中で下記のような表示が出てくるので、「Enter」を押して下さい。
Homebrewインストール時の操作
インストールが進むと、'Linuxbrew'のディレクトリが作成されます。
エラー無くHomebrewが正常にインストールされたら、以下のコマンドを順に実行して、シェル環境にHomebrewのパスを追加します。
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
Homebrewインストール確認
パスを追加しても特に何か表示されるわけではありません。
正常にインストールされたか確認するために、以下のコマンドを実行してバージョンを表示します。
brew --version
Homebrewバージョン表示
【ステップ2-2】必要なツールのインストール
以下のコマンドを使用して、必要なツールをインストールして下さい。
brew install cmake protobuf rust python@3.10 git wget
必要なツールのインストール
インストールの完了には少々時間がかかります。
【ステップ1】NVIDIAドライバとCUDAツールキットのインストール
NVIDIAドライバはシステムのハードウェアに深く関わるものなので、homebrewではなく、aptを使ってインストールします。
まずは、以下のコマンドを実行し、あなたの環境で使用可能なドライバのバージョンを表示して下さい。
ubuntu-drivers devices
使用可能NVIDIAドライバ一覧
使用するバージョンを選び、以下の順でコードを実行し、NVIDIAドライバをインストールできます。なお、最後のコードによって、一旦再起動するので、接続し直してください。
sudo apt-get update
sudo apt-get install -y nvidia-driver-<バージョン番号>
sudo reboot
今回、筆者は「535」のバージョンを選びました。
NVIDIAドライバが正しくインストールされているかを確認するには、以下のコードを実行します。
nvidia-smi
NVIDIAドライバのインストール確認
次に、必要なCUDAツールキットをインストールします
sudo apt-get update
sudo apt-get install -y nvidia-cuda-toolkit
CUDAが正しくインストールされているかは、以下のコマンドを実行して確かめることが出来ます。
nvcc --version
CUDAのインストール確認
次に以下を順に実行し、環境変数を設定します。
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
【ステップ3】Stable Diffusion WebUI Forgeの立ち上げ
Stable Diffusion WebUI Forgeのリポジトリをクローンします。下記のコマンドを実行して下さい。
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
リポジトリのクローン
クローンが完了したら、「stable-diffusion-webui-forge」という名前のフォルダが作成されているか確認するために、以下のコマンドを実行します。
ls
クローンの確認
ここで、forgeへのアクセス方法としては、リモートデスクトップで直接アクセスするか、forgeを公開して様々なデバイスからアクセスするかの2通りあります。
forgeを公開して様々なデバイスからアクセスする方は、まず、「stable-diffusion-webui-forge」ディレクトリで以下のコマンドを実行して下さい。
nano webui.sh
するとエディターが起動します。
矢印キーを使って一番下へと移動し、下記画像のように「--listen」と追加して下さい。
listenの追加
そうしたら、「Ctrl + O」 > 「Enter」 > 「Ctrl + X」の順で押して下さい。
なお、「webui-user.sh」を編集することで、ご自身の環境に合わせてカスタマイズする事が出来ます。
【ステップ4】Stable diffusionの起動
「stable-diffusion-webui-forge」ディレクトリで下記のコマンドを実行して下さい。
./webui.sh
初回起動時にはかなり時間がかかります。
初回起動時のインストール
すると、forgeの立ち上げが成功し、下記のように出力の最後の方に、forgeアクセスの為のURLが表示されます。
forgeの立ち上げ成功
ここで注意点として、今回は仮想マシンでforgeを立ち上げようとしているので、このURLにアクセスしても接続できません。
リモートデスクトップを使用する方は、ここで表示されるURLをリモートデスクトップの検索バーに貼り付けることで、forgeへとアクセス出来ます。
forgeを公開して様々なデバイスからアクセスする方は、表示されたURLが「http://〇:△」のような形になっていると思います。
〇部分をVMのパブリックIPアドレスに変更し、それを検索バーに入力することで、forgeへとアクセスすることが出来ます。
「http:// {パブリックIPアドレス}:△」
forgeにアクセスすると、以下のような画面が表示されます。これでforgeの導入を一通り終える事が出来ました。
forge起動画面
Stable Diffusion WebUI Forgeの使い方
Stable Diffusion WebUI Forgeを効果的に活用するためには、適切なモデルの準備と基本的な操作方法の理解が重要です。
ここでは、モデルの導入から実際の画像生成まで、実践的な使い方を解説します。
モデルのダウンロード
まずは、モデルを用意する必要があります。モデルは、「stable-diffusion-webui-forge > models > Stable-diffusion」内に保存することになります。
使用したいモデルを探してください。今回は例として、「realisticVisionV51_v51VAE」を使用したいと思います。こちらにアクセスすると、下記のような画面が出てきます。
モデルのダウンロード手順その1
赤枠部分をクリックし、モデルがダウンロード出来るページへと移動します。
すると、以下のような画面が出てくるので、「Copy download link」をクリックし、リンクをコピーします。
モデルのダウンロード手順その2
次に、stable-diffusion-webui-forge > models > Stable-diffusion へと移動し、下記のコマンドを実行することで、モデルをダウンロードする事が出来ます。
wget {コピーしたリンク}
今回の場合は、以下の画像のようになります。
モデルのダウンロード手順その3
使用したいモデルのリンクをコピーし、先ほどと同じように作業すれば、お好きなモデルで色々と試すことが出来ます。
動作テスト
まずは、本当に動くのかを試すために、簡単なプロンプトで画像を生成してもらいます。
上のCheckpointでモデルを選択し、その下のPromptにプロンプトを入力します。
Prompt:モデルに生成してほしい内容やスタイルを具体的に指示するもの
Negative prompt:モデルに生成してほしくない要素や避けたいスタイルを指示するもの
forgeの簡単なテスト
テストとしてまずは、「金髪の1人の女の子」というプロンプトを試してみました。
1girl, blond hair
出力された画像は、以下の通りです。
テスト結果その1
次に、先ほどのプロンプトに「夜の賑やかな東京の通りに立っている」という条件を追加してみました。
1girl, blond hair, standing on a busy Tokyo street at night
出力された画像は、以下の通りです。
テスト結果その2
これらの出力は、stable-diffusion-webui-forge内の「outputs」フォルダに保存されていきます。これら仮想マシンに保存された出力をローカルに持ってくる場合は、ローカルで以下のコマンドを実行して下さい。
scp -i /path/to/your/private_key -r azureuser@<VM_IP_ADDRESS>:/path/to/remote/directory /path/to/local/destination
-
-i /path/to/your/private_key: 使用するSSHキーを指定します。
-
azureuser@<VM_IP_ADDRESS>:/path/to/remote/file: 仮想マシン内のファイルのパスを指定します。(ここを変えることで、どの範囲の出力を保存するか選べます)
-
/path/to/local/destination: ローカルPCの保存先を指定します。
LoRAの活用
更に使いこなしたい方に向けて、LoRAという手法があります。LoRAは、より少ない計算資源でモデルを適応させることが出来る技術です.
checkpoint
モデルのトレーニングの途中で保存されたモデルの状態を表します。これには、モデルのすべてのパラメータ(重みなど)が含まれています。
LoRA
Stable Diffusionなどの画像生成モデルに対して、モデルの一部だけを効率的に調整するための手法です。
LoRAは、モデル全体を再トレーニングする代わりに、特定のパラメータ(例えば、特定の層)に対して低ランクの更新を適用します。
LoRAに関しては、以下の記事で詳しく解説しています
AIのLoRAとは?その仕組みや作り方、StableDiffusionでの導入方法を解説
Stable Diffusion WebUI Forge導入時のトラブルシューティング
Stable Diffusion WebUI Forgeの導入時には、いくつかの一般的な問題に遭遇することがあります。
ここでは、よくある問題とその解決方法について、具体的な対処法を紹介します。
「insightfaceがインストールされていない」という警告が表示される
「webui.sh」実行時に、「自動でinsightfaceがダウンロード出来ませんでした」という旨のエラーが発生する事があります。
その場合はVMに接続し直して、以下のコマンドを実行してからもう一度「webui.sh」を実行してみると上手く行く可能性があります。
cd stable-diffusion-webui-forge
cd venv
pip install insightface
VMのストレージが足りない
そもそもforgeを起動するためのストレージが足りない場合や、様々なモデルを試したい場合にストレージが足りないことがあります。ストレージが足りない場合は、VMのストレージサイズを大きくする必要があります。
筆者はモデルを追加する際に、OSディスクのストレージは足りないものの、データディスクのストレージに空きがあったので、モデル自体のインストールはデータディスクで行い、Stable diffusionが参照するモデルのファイルをデータディスクのファイルになるようにシンボリックリンクを作成する事で問題を解決しました。
下記の記事で、Azure仮想マシンのディスク拡張・変更方法に関して詳しく解説しています。
Azure仮想マシンのディスク拡張・変更方法をわかりやすく解説!
〇〇が認識できていない
正しくインストールしたのにも関わらず、ツールや環境が認識されずにforgeが起動できない場合は、パスの設定が誤っているか可能性が高いです。
正しいパスを設定したり、シンボリックリンクを作成してリンク先のファイルへアクセスするように設定すると上手く行く可能性があります。
まとめ
Azure仮想マシンを活用して、Stable Diffusion WebUI Forgeによる画像生成環境の構築方法と、導入後の活用について解説しました。
このシステムでは、リモート環境から高性能な画像生成が可能となり、生成したい内容やスタイルをプロンプトで細かく指示することで、柔軟かつ多様なクリエイティブ成果を得られます。
また、LoRAなどの手法により効率的なモデル調整も可能で、ユーザーの目的に応じたカスタマイズも簡単に行えます。
今後の展望としては、生成モデル技術のさらなる進化により、複雑なプロンプトや個別スタイルの精密な反映が期待され、クリエイティブ産業やデザイン分野でもこうしたAIツールが強力なサポートを提供する時代が訪れるでしょう。