※お約束ですが、紹介した方法は自己責任で行ってください。
Stable Diffusion を Docker上で動かす方法を紹介します。OSがWindowsの場合を紹介しますが、Dockerを使う方法なので、LinuxやMacOSの方も参考になると思います。上級者向けの内容になるので、用語に馴染みのない方には「こんな方法もあるんだな」くらい参考になれば幸いです。
Dockerを使う人は、主にソフトの開発をしている人のようにパソコン内の環境を汚したくない人になると思います。一般の人はStability Matrixという簡単にStable Diffusionをセットアップしてくれるソフトの方をお勧めします。
Stable Diffusionは、生成AIと呼ばれ、入力した文字に応じてAIが画像を作ってくれます。Stable Diffusionの詳細は解説サイトが多数あるので、割愛します。
Dockerは仮想化のソフトですが、簡単に言うとアプリと、アプリの動作に必要なソフトをまとめる事ができる機能を持ちます。Stable DiffusionをDocker上で動作させる利点は、インストールし直しや、バージョンアップする際に過去にインストールしたソフトの影響を受けないようにする為です。
まず、Dockerをインストールしてない場合は、Docker Desktopをインストールします。
インストール方法はMicrosoftストアからインストール、または、Docker公式からインストーラーをダウンロードしてインストールします。Microsoftストアはアプリの審査を行っているので安心です。
続いて、Stable DiffusionをDockerで使えるようにしてくれているstable-diffusion-webui-dockerからソースをダウンロードします。説明はバージョン9.0.0で行います。バージョン9.0.0のダウンロードリンクはこちらです。
上記からダウンロードしたzipファイルを、フォルダ(例としてD:\sd-docker)に展開します。
Stable Diffusionは後から必要なファイルや画像の出力で容量が必要になるので少なくとも100GB以上は空いているドライブに展開した方が良いです。
以下の画像は、D:\sd-docker\stable-diffusion-webui-docker-9.0.0に展開した状態です。

テキストファイルに1行追加する必要があるので、展開したフォルダのservices\AUTOMATIC1111\Dockerfileをメモ帳で開き、以下の画像の通りになるように、34行目(青色でマーク)に「pip install -U typing_extensions && \」を挿入し、上書き保存します。

展開したフォルダD:\sd-docker\stable-diffusion-webui-docker-9.0.0に戻り、エクスプローラーの空白を右クリック、ターミナルを開くをクリックして、ターミナルを起動します。

ビルドします。ターミナルに「docker compose –profile download up –build」を入力して、Enterキーを押します。※「」かっこは入力不要です。
ネットワーク速度や、パソコンスペックによりますが、10分以上掛かる場合があります。
必要なファイルのダウンロード、ビルドが進行しますが、ダウンロードのエラーが出ることがあります。その際は、もう一度同じコマンド「docker compose –profile download up –build」を実行すると続きから始まります。
ビルドが正常に完了したら、download-1 exited with code 0 と表示されます。
続いて、起動するために「docker compose –profile auto up –build」を入力して、Enterキーを押します。

初回起動に3分ほど掛かります。Docker Desktopを起動すると、以下の画像のように、webui-dockerコンテナグループが表示されているはずです。auto-1がstable diffusionのコンテナです。download-1は、インストール時のみ作成されますが、以降は使用しません。

auto-1コンテナの、Port 7860:7860のリンクをクリックすると、ブラウザにStable Diffusionが表示されます。ブラウザで直接開く場合は、アドレス欄に「http://localhost:7860」を入力します。

以上、Stable DiffusionをDocker上で動かす方法の紹介でした。
追加で配置するモデルなどの置き場は、D:\sd-docker\stable-diffusion-webui-docker-9.0.0\data\models になります。
生成した画像の出力先は、D:\sd-docker\stable-diffusion-webui-docker-9.0.0\output になります。