如何在Linux上实现Stable Diffusion的高效部署
ubuntu-drivers devices
查询推荐版本(如535),执行sudo apt install nvidia-driver-535
;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
),执行sudo apt install cuda-12-2
;nvidia-smi
查看驱动版本,nvcc -V
确认CUDA编译器安装。lshqqytiger/stable-diffusion-webui
,包含ControlNet、PromptGen等常用插件),执行docker pull lshqqytiger/stable-diffusion-webui
;--gpus all
启用GPU加速,挂载模型目录(实现热更新,无需重建容器),命令示例:docker run -d \
--gpus all \
-p 7860:7860 \
-v ~/sd-models:/app/models \ # 本地模型目录挂载到容器
-v ~/sd-outputs:/outputs \ # 输出目录(存储生成的图像)
lshqqytiger/stable-diffusion-webui
http://localhost:7860
,进入WebUI即可开始生成图像。python3 -m venv sd_venv
,激活环境source sd_venv/bin/activate
;pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
,进入目录执行./webui.sh
;http://localhost:7860
访问。webui-user.sh
(手动安装)或Docker的COMMANDLINE_ARGS
中添加--xformers
(降低显存占用30%,提升推理速度);--medvram
(中等显存模式,适合8GB显卡)或--lowvram
(低显存模式,适合4GB显卡);v1-5-pruned-emaonly.safetensors
,比完整版小30%);PYTORCH_CUDA_ALLOC_CONF=backend:cudaMallocAsync
(减少显存碎片,提升多任务处理能力);--listen
参数允许远程访问(如./webui.sh --listen
)。--security-opt seccomp=unconfined
参数,解决容器内无法写入文件的错误;nvidia-smi
显示驱动版本);torch.cuda.is_available()
返回True
);--skip-torch-cuda-test
参数跳过CUDA测试(部分旧显卡兼容性问题);~/sd-models/Stable-diffusion
目录。-e ACCESS_TOKEN=your_password
设置访问密码(防止未授权使用);--restart unless-stopped
参数(Docker)或systemctl enable sd-service
(手动安装),确保服务重启后自动恢复;docker system prune
清理无用镜像、容器,释放磁盘空间。