將Stable Diffusion WebUI程式容器化的話,在Linux伺服器部署Stable Diffusion WebUI就容易多了。
這裡採用 AbdBarho維護的docker-compose,內含AUTOMATIC1111、Invoke AI、ComfyUI三種界面,彼此的模型檔可以共享,節省儲存空間。
AbdBarho維護的docker-compose僅支援Nvidia顯示卡和純CPU模式。
1. 部署容器#
請在Ubuntu系統安裝 Git、 Docker,並安裝 Nvidia驅動和NVIDIA Container Toolkit套件
確認Docker認得到你的Nvidia顯示卡驅動版本:
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
- 複製AbdBarho的儲存庫:
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
cd stable-diffusion-webui-docker
- 下載必要Stable Diffusion模型
docker compose --profile download up --build
- 建立容器映像檔,選取
auto
代表啟動AUTOMATIC1111開發的WebUI。
docker compose --profile auto --build
註:Dockerfile所複製的不見得是最新版的Stable Diffusion WebUI,你可能需要手動修改services/AUTOMATIC1111/Dockerfile
的commit取得最新版軟體。
- 啟動容器
docker compose --profile auto up
- 等待容器啟動完成,用瀏覽器開啟
http://127.0.0.1:7860
進入WebUI。要停止執行就是在終端機按Ctrl+C。
2. 資料目錄#
此docker-compose啟動的Stable Diffusion WebUI,資料會掛載至同一目錄下的data
目錄。
自訂生圖模型放到data/Stable-diffusion
生圖的輸出目錄則是data/output
。
擴充功能請從網頁界面裝,或是在data
目錄下新建extensions
,再於該處放入擴充功能的目錄。
Docker是看不到Linux系統所有的目錄的,如果你要處理其他檔案,請將其放到Stable-diffusion
模型目錄下(在Docker容器內部,絕對路徑為/stable-diffusion-webui-docker/
)。或者編輯docker-compose.yml
,用docker volume掛載目錄。
3. 如何更新#
若要修改WebUI啟動時的
命令列引數,編輯此專案目錄下的docker-compose.yml
,修改CLI_ARGS
這一行:
auto: &automatic
<<: *base_service
profiles: ["auto"]
build: ./services/AUTOMATIC1111
image: sd-auto:51
environment:
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
日後更新請使用git pull
和docker compose pull
指令。