この記事を作った動機

 なんか最近 AUR に Stable Diffusion WebUIが出現していて気軽に試せそうだったのでインストールして使ってみたということがあった。

 その過程で記録しておきたいことがあったので、Stable Diffusion WebUI の導入過程とともに記事を書こうと思った。

AURの様子

環境

System Details Report


Report details

  • Date generated: 2025-07-13 20:41:10

Hardware Information:

  • Hardware Model: HP ProLiant DL60 Gen9
  • Memory: 32.0 GiB
  • Processor: Intel® Xeon® E5-2620 v4 × 16
  • Graphics: Unknown ※ GTX1080ti
  • Disk Capacity: 30.0 TB

Software Information:

  • Firmware Version: U15
  • OS Name: Arch Linux
  • OS Build: rolling
  • OS Type: 64-bit
  • GNOME Version: 48
  • Windowing System: X11
  • Kernel Version: Linux 6.15.5-arch1-1

導入

yay コマンドでインストール

yay -Sy stable-diffusion-webui

コンフィグの場所

/etc/stable-diffusion-webui/webui.conf

コンフィグの設定例(webui.conf)

 DATA_DIR は専用にディレクトリを作り、変更した方がいいかもしれない。デフォルトの場所だと、モデルを配置したり出力された画像などにアクセスしずらい。

 デフォルトだと、"/var/opt/stable-diffusion-webui/data"配下にモデルを配置する場所や、生成した画像が置かれてしまう。都合に合わせてユーザのホームディレクトリとか、適当な場所に専用のフォルダを設けた方が便利ではある。

# Flags to pass to the `accelerate launch` command
# See: https://huggingface.co/docs/accelerate/package_reference/cli#accelerate-launch
ACCELERATE_FLAGS="--num_cpu_threads_per_process=6"

# Flags for stable-diffusion-webui
# See: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings
#
# Example: WEBUI_FLAGS="--listen"
WEBUI_FLAGS="--listen --api --api-log --xformers --lowvram --disable-safe-unpickle --enable-insecure-extension-access"

# Path to save model files and outputs
DATA_DIR="/var/opt/stable-diffusion-webui/data" 

サービスを設定し起動

sudo systemctl enable --now stable-diffusion-webui # 起動と有効化の両方
# sudo systemctl enable stable-diffusion-webui // PC が起動したときに立ち上がるようにするだけの時
# sudo systemctl start stable-diffusion-webui   // 単に webui を起動するだけ

 この時点で、localhost:7860からは、webui にchromeなどからアクセスできると思われる。正しく起動していれば、とりあえず何か生成できるか試すこともできる。

httpd のプロキシ設定

 私の場合はデータサーバとして専用に設けているPCに、今回 stable diffusion webui をインストールしたので、localhostだけで動かれるといちいちリモートデスクトップか何かで、直接サーバ内部の GUI 環境に入る必要があり不便であった。

 なので、httpd のプロキシ機能を使って、プライベートなLAN内だけで運用している専用のドメイン名でアクセスされると、localhost:7860として転送するように設定した。

 この方法であれば、firewalld などの設定をわざわざ変えなくて済むという点からも管理的な意味合いでは都合がいい。

 注意点としては、httpの設定だけでなく、websocket も localhost:7860 に転送する設定が必要であるというところがある。また、httpd 側の専用のモジュールも有効化が必要である。また今回は SSL の設定も混じっているが、そこについては大変すぎるので説明は省くことにする。

  • /etc/httpd/conf/httpd.conf (モジュール周りの設定)
# 設定項目自体はすでに "#" でコメントアウトされて存在するので、必要な項目の行の "#" を消すだけでよい。
...
# 必要なモジュールの有効化
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule rewrite_module modules/mod_rewrite.so

# 必要な設定の書いてあるコンフィグファイルの有効化
Include conf/vhost/service.conf

# オプション
LoadModule ssl_module modules/mod_ssl.so # SSL の設定。一応ここは載せておく
...
  • /etc/httpd/conf/extra/httpd-vhosts.conf (プロキシ設定本体)
...
<VirtualHost *:80>
        # SSL (HTTPS) の設定なので今回はあまり関係がない
        ServerName stable.internal.domain.name
        Redirect permanent / https://stable.internal.domain.name/
</VirtualHost>

<VirtualHost *:443>
        ServerName stable.internal.domain.name

        # SSL (HTTPS) の設定なので今回の設定とはこの 3行はあまり関係ない
        SSLEngine on
        SSLCertificateFile "/etc/httpd/conf/ssl/stable.internal.domain.name.pem"
        SSLCertificateKeyFile "/etc/httpd/conf/ssl/stable.internal.domain.name-key.pem"

        # websocket 転送設定
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteCond %{HTTP:Connection} upgrade [NC]
        RewriteRule ^/(.*) "ws://localhost:7860/$1" [P,L]

        # HTTP 転送設定
        ProxyPreserveHost on
        ProxyRequests off
        ProxyPass / http://localhost:7860/
        ProxyPassReverse / http://localhost:7860/
</VirtualHost>
...

モデルや生成画像の場所

# DATA_DIR="/home/username/Documents/AI" の場合
/home/username/Documents/AI/models/Stable-diffusion # モデルを配置する場所
/home/username/Documents/AI/outputs                 # 生成された画像の場所

# デフォルト設定の場合
/var/opt/stable-diffusion-webui/data/models/Stable-diffusion # モデルを配置する場所
/var/opt/stable-diffusion-webui/data/outputs                  # 生成された画像の場所

## hint
# @ /etc/stable-diffusion-webui/webui.conf
# Path to save model files and outputs
# DATA_DIR="/var/opt/stable-diffusion-webui/data"

# @ /usr/lib/systemd/system/stable-diffusion-webui.service
# destdir="${DATA_DIR}/models/Stable-diffusion"; \

/usr/share/stable-diffusion-webui/models/Stable-diffusion
/opt/stable-diffusion-webui/models/Stable-diffusion

関係のありそうなページ

参考にしたサイトとか