stable diffusion web uiをインストールします

スポンサーリンク

画像生成AIのstable diffusionをインストールします。Windows10にインストールしますがLinuxの環境を用意します。Linuxの導入方法にWSLというものがありますが、他のソフトと競合するのでVirtualBoxを使用します。

Ubuntu
Ubuntuは、デスクトップPCやクラウド、インターネットに接続されたあらゆる機器まで、すべての環境において動作可能なオープンソースのソフトウェアオペレーティングシステムです。

まずはLinux環境を構築したいので、ubuntuの公式サイトでISOファイルをダウンロードします。desktopではなくubuntu serverを選択します。こちらの方が動作が軽いですが、コマンド入力のみのcui環境になります。stable diffusion web uiのインストールはコピペするだけの作業なので、こちらを選択します。

ダウンロードしたISOファイルを使用して、VirtualBoxにubuntu Serverをインストールします。新規に仮想マシンを作成します。ISO Imageの項目に、先ほどダウンロードしたISOファイルを読み込んでおきます。

メモリサイズを8GBに変更しただけで、他は特に変更していません。ディスク容量はデフォルトの25GB、ネットワークの設定もそのままにしておきました。この設定で起動します。
しばらくするとubuntuのセットアップウィザードが別画面で立ち上がります。
キーボードレイアウトは日本語を選択できます。

インストールタイプは最小にします。デフォルトではこちらが選択されていないので、スペースキーをおしてこちらにしておきます。


ネットワーク接続、proxy、ミラーアドレス、ストレージ設定はそのままにして次に進みます。

ユーザー情報は重要ですので忘れずにしましょう。OpenSSH、他の人気のあるソフトについてはデフォルトのまま進みます。インストールにはしばらく時間がかかります。

ここで問題なのは、VirtualBoxのCUIな画面ではコピー貼り付けができません。それを可能にします。
VirtualBoxではポートフォワーディングの設定があります。ホストマシンとゲストマシン間の通信を可能にできます。これにより、特定のホストマシンのポートから受け取ったデータを、特定のゲストマシンのポートに転送することができます。この機能は主に、ホストマシンからゲストマシン内のアプリケーションへの直接的な接続を必要とする場合に使われます。例えば、ゲストマシン内にWebサーバーを立てて、ホストマシンからそのWebサーバーにアクセスしたいときなどに利用できます。ポート転送を設定することで、ホストマシンの特定のポートへのアクセスが、ゲストマシンのWebサーバーへと自動的に転送されます。

設定からネットワークと進み、ポートフォワーディングの規則を入力します。
ホストIPにWindowsPCのIPアドレスを入力します。

不明な場合は下記のコマンドをコマンドプロンプトに入力して確認できます。

ipconfig

現在のシステムのIPアドレス、サブネットマスク、デフォルトゲートウェイなどの情報を表示できます。

ipconfigはいくつかのオプションを持っており、それぞれが異なる情報を表示するために使用されます。たとえば、以下にいくつかの一般的なオプションを挙げてみましょう:

  • ipconfig /all: ネットワークインターフェースの全ての詳細な情報を表示します。これにはMACアドレス(物理アドレス)、DHCPとDNSサーバーの情報などが含まれます。
  • ipconfig /release: DHCPを使用してアドレスを取得するネットワークインターフェースの現在のIPアドレスを解放します。
  • ipconfig /renew: DHCPを使用してアドレスを取得するネットワークインターフェースのIPアドレスを新たに取得または更新します。

ゲストIPには仮想マシン(ubuntu)のIPアドレスを入力します。IPアドレスが不明な場合、下記のコマンドで確認します。

ip a

システム上のネットワークインターフェースの情報を表示するために使われます。ipiproute2パッケージの一部で、ifconfigコマンドのより現代的な代替手段として使われています。
ip aコマンドは、各ネットワークインターフェースのIPアドレス(IPv4とIPv6の両方)、ブロードキャストアドレス、MACアドレス(リンクレベルアドレス)などの情報を表示します。これはネットワークトラブルシューティングやシステムの設定情報を調べる際に非常に便利です。
コマンド全体としては ip address show の略で、通常は ip a と短縮して使われます。ネットワークインターフェースの状態(upまたはdown)、MTU(Maximum Transmission Unit)などの詳細な情報も表示します。
なお、ipコマンドはその他にも多くのサブコマンドを持っており、ip route(ルーティングテーブルの表示や変更)、ip link(ネットワークデバイスの表示や設定)など、ネットワーク関連の様々な作業に使用することができます。

ホストポートにはWindowsPCで使用していないポート番号を入力します。ゲストポートにはlinuxで実際に使用されているSSH接続に必要な22を入力します。VirtualBoxへのubuntuのインストール時に、OpenSSH Serverのインストールをしないことにしたのですが、接続できます。

ポートフォワーディングで「Windows セキュリティの重要な警告」が表示されたら許可しておきます。

ポート転送の設定が完了したので、TeraTermを起動して仮想マシンに接続します。ホストにWindowsPCのIPアドレスを、TCPポートに2222と入力します。

ユーザー名とパスフレーズには、ubuntuインストール時に作成したものを入力します。

これでコピペが出来るので、docker及びdocker composeをインストールします。

Ubuntu 用 Docker CE の入手 — Docker-docs-ja 19.03 ドキュメント

rootに切り替えて作業します。

sudo su -

aptがHTTPSを通してリポジトリを使えるように、パッケージをインストールします。

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Dockerの公式GPG鍵を追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

安定版のリポジトリをセットアップします。

add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

更新してインストールします。

apt-get update
apt-get install docker-ce

続いてDocker composeもインストールします。こちらのインストールは公式サイトとそこにあるリンク(github)を参考にします。

Docker Compose のインストール — Docker-docs-ja 1.12.RC2 ドキュメント
Releases · docker/compose
Define and run multi-container applications with Docker - docker/compose

リリースページの指示に従い、ターミナル上でcurlコマンドを実行します。githubでは現時点の最新バージョンはv2.18.1であるため、コマンドを少し書き換えます。この例は、v2.18.1と書き換えることで最新版をインストールすることができます。

curl -L https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

バイナリに対して実行権限を追加します。その後バージョン確認をします。

chmod +x /usr/local/bin/docker-compose
docker-compose --version

stable diffusion web uiのGitHubに準備しておくようにと記載がされていることは完了しました。インストール作業に移ります。AMD GPUはサポート対象外です。

GitHub - AbdBarho/stable-diffusion-webui-docker: Easy Docker setup for Stable Diffusion with user-friendly UI
Easy Docker setup for Stable Diffusion with user-friendly UI - AbdBarho/stable-diffusion-webui-docker

リポジトリのクローンを作成します。その後、ディレクトリが作成されているので、そこへ移動します。

git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
cd stable-diffusion-webui-docker

移動先でコマンドを実行すると、必要なモデルファイルをすべてダウンロードして、それらの整合性を検証してくれます。データをダウンロードする必要があるのは 1 回だけです 。ダウンロードするデータは約12GB あります。

docker compose --profile download up --build

実行するUIはauto-cpuにしました。virtualboxで動作するのでCPU向けにこのUIにしました。

docker compose --profile auto-cpu up --build

しかし、エラーが発生しました。

=> ERROR [auto-cpu internal] load build definition from Dockerfile 0.0s
=> ERROR [auto-cpu internal] load .dockerignore 0.0s
[auto-cpu internal] load build definition from Dockerfile:
[auto-cpu internal] load .dockerignore:
failed to solve: failed to read dockerfile: failed to prepare as qtnl1bob5ac4n92psrozckpy4: write /var/lib/docker/overlay2/qtnl1bob5ac4n92psrozckpy4/link: no space left on device

このエラーを調査していると、どうやらディスク容量に問題があるようです。ファイルシステムのディスクの使用状況を表示します。

df -h

root@ubuntu:~/stable-diffusion-webui-docker# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 796M 788K 795M 1% /run
/dev/mapper/ubuntu–vg-ubuntu–lv 12G 12G 0 100% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 130M 1.7G 8% /boot
tmpfs 796M 4.0K 796M 1% /run/user/1000

ディスクの容量がすべて使用されており、特に/dev/mapper/ubuntu--vg-ubuntu--lvが100%使用されているようです。VirtualBoxの設定でディスク容量を25GBにしたはずですが、12GBしかありません。実はubuntuインストール時にLVM(論理ボリュームマネージャー)を選択しなければこの問題は回避できます。これにより全容量を割り当てることが可能です。インストーラは、一つの大きなパーティションを作成してディスク全体を使用することができます。
Set up this disk as an LVM group

使用可能な未割り当ての物理ボリュームがあるかどうかを確認します。

pvs

root@ubuntu:~/stable-diffusion-webui-docker# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a– <23.00g 11.50g

/dev/sda3という物理ボリュームがubuntu-vgというボリュームグループに存在し、その容量は約23GBで、そのうち約11.5GBが未割り当てであることがわかります。

その前に使用していないDockerの全てのオブジェクトを削除します。

docker system prune

未割り当てのスペースを論理ボリュームに追加します。

lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

ファイルシステムを新しく割り当てたスペースに合わせてリサイズします。

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

linuxではwindowsのDドライブに直接相当するものはありません。しかし、追加のディスクやパーティションを任意の位置にマウントすることで、Dドライブと同様の目的を達成することができます。

再度、未割り当ての物理ボリュームがなくなったか確認します。

pvs

PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a– <23.00g 0

空き容量を確保したので、stable diffusion web uiのインストールはうまくいくはずです。
ブラウザで確認する前に、こちらもポート転送の設定をします。使用するポート番号は7860ですが、VirtualBox内でのことですので、設定する必要があります。

この場合、次のアドレスを入力します。
http://192.168.26.105:5555/

タイトルとURLをコピーしました