本文主要介绍在AWS上使用NVIDIA GPU机型部署Stable Diffusion webui的全部过程;这个方式也非常适合大家自己购买消费级显卡后再自己的台式电脑上部署Stable Diffusion webui。
环境准备
| 名称 | 版本 |
|---|---|
| Ubuntu Server | 22.04 LTS |
| Python3 | 3.10.x |
| Stable Diffusion | 1.6.0 |
AI绘图必须有Nvidia GPU卡,所以我选择了加速型计算EC2中的G4dn.xlarge机型进行搭建,它有一张NVIDIA T4 Tensor Core GPU卡足够我们一般场景下的使用。此外我选的EC2设置了128G的SSD磁盘并有公网IP(方便远程SSH访问并直接对外提供Stable Diffusion服务 )
注意:建议选择AWS海外区域,因为安装过程中需要下载很多第三方的依赖或者github上的资源,在中国内地非常容易由于网络原因导致安装失败。
安装Stable Diffusion
检查安装环境
我使用的是Ubuntu Server 22.04 LTS,它默认安装的Python是Python 3.10。
安装基本组件
# 更新ubuntu apt repo
sudo apt update -y
# 安装基本组件
sudo apt install wget git python3 python3-venv
# 检查python版本
python --version
安装nvidia gpu驱动并安装cuda
目前(2023/09)推荐安装并使用cuda 11.7,nvidia gpu驱动版本为515。
#下载nvidia驱动repo
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
# 添加到ubuntu repo
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
# 下载cuda本地安装器deb包
wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
# 安装cuda本地安装器
sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
# 补充cuda密钥签名
sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
# 更新apt仓库
sudo apt update
# 安装cuda 11
sudo apt install cuda-11-7
检查nvidia gpu安装效果,首先我们执行nvidia-smi查看驱动是否正常安装,这里我们看到驱动正确的安装了并且显示了正确的cuda版本、driver版本和当前的GPU状态。
设置环境变量,方便后续正常的使用nvcc
export PATH=/usr/local/cuda-11/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
注意:建议将上述的环境变量写入到~/.bashrc里面长期生效
环境变量设置成功后,我们可以执行nvcc -V来检查nvcc是否被加入环境变量
下载并安装Stable Diffusion
继续安装依赖组件
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
下载stable-diffusion-webui安装脚本
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
启动webui,打开远程访问(接受0.0.0.0地址的访问)
./webui.sh --share --listen
注意:请检查下AWS安全组放行7860端口,但是只允许你的个人IP访问,用完后及时阻止7860的访问,因为webui默认没有安全机制,任何人都可以访问!!!
我们可以用浏览器访问webui(http://xx.xx.xx.xx:7860/),然后输入如下的提示词进行测试
提示词:Portrait of renaud sechan, pen and ink, intricate line drawings, by craig mullins, ruan jia, kentaro miura, greg rutkowski, loundraw
生成的效果图:
参考: