更新 2025.3.30 15:16閲覧 390ロースペPCでStable Diffusionを諦めた話
i7-3770+VRAM2GBのビデオカードに、もう一つ余っていたVRAM2GBのカードを積んでオンボードも含めれば、LMDE 6のDockerでStable Diffusionが動くかもと思って挑んだ失敗録。
環境
Docker version 20.10.24
準備
DockerコンテナでVRAMを扱えるようにするため、端末で下記を実行してNVIDIA Container Toolkitをインストールし、daemon.jsonを作成した。
sudo curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install nvidia-container-toolkit
/etc/docker/daemon.json
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
再度、端末でsudo systemctl restart dockerを実行して反映させた。
Dockerfile
FROM continuumio/miniconda3:latest
# 作業ディレクトリを作成
WORKDIR /app
# 必要なファイルをコピー
COPY environment.yaml /app/environment.yaml
COPY . /app/
# Conda環境を作成し、アクティブ化
RUN conda env create -f environment.yaml \
&& echo "source activate ldm" > ~/.bashrc \
&& /bin/bash -c "source activate ldm"
# 実行に必要な追加ライブラリをインストール
RUN /bin/bash -c "source activate ldm && pip install -e ."
# XFormersライブラリをインストール
# Controlnetを使うときは controlnet_aux を追記?
RUN /bin/bash -c "source activate ldm && pip install xformers"
# 必要なパッケージを追加
# libgl1-mesa-glxが必要かは不明
RUN apt-get update && apt-get install -y \
libgl1-mesa-glx \
libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
# コンテナ起動時のデフォルトコマンド
CMD ["/bin/bash"]
Dockerfileがある場所で端末を開いて以下を実行した。
docker build -t stable-diffusion .
起動
ビルドに成功したので、端末で以下を実行した。
docker run --gpus all --tmpfs /tmp --tmpfs /var/lib/apt --tmpfs /var/log --tmpfs /var/run --tmpfs /var/spool --name test-project -it -v "/home/YourUserName/models:/app/models" -v "/var/tmp:/var/tmp" stable-diffusion
立ち上がった/bin/bashで以下を実行したら、終わる気配がなかった。
python scripts/txt2img.py --precision autocast --prompt "A fantasy landscape, intricate line art, trending on artstation" --scale 7.5 --ddim_steps 50 --n_iter 1 --outdir "/var/tmp/"
どうやらGPUとVRAMを使用せずCPUとRAMで動作したらしい。
因みに、--ddim_steps 50を小さくしたら、ゴッホとムンクを足したような怪しい画像ができた。
終了
CTRL+D
docker stop test-project
再度起動
docker start test-project
docker exec -it test-project /bin/bash
再度終了
exit
docker stop test-project
他にも
nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu22.04+AUTOMATIC1111とかubuntu:24.04+fastsdcpuなどのGUIも何通りか試してみたが、バージョン齟齬で動作しない機能が多く、ムンクっぽい猫が作れただけだった。
![image.png]()