赞
踩
环境 1 阿里云的香港机器
2 GPU服务器配置 4 vCPU 15 GiB (I/O优化)GPU:NVIDIA T4 ecs.gn6i-c4g1.xlarge
3 OS ubuntu_22_04_x64 (系统自动安装需要的驱动)
1 安装docker (支持英伟达驱动的镜像)
apt-get update
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get update
apt-get install -y nvidia-docker2
systemctl restart docker
2 导入镜像(不同的应用对CUDA的需求不同)
docker pull nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
docker pull nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
3 创建一组目录(存储下载的数据默认下载到容器内的root下的隐藏目录 为了方便数据迁移存储在机器上)
mkdir -p /app/face/home
mkdir -p /app/ss/home
mkdir -p /app/sd/home
#运行容器
docker run --gpus 1 -p 7860:7860 -v /app/sd/home/:/root --name sd -itd nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
# 进入容器内部
docker exec -it sd bash
# 运行下面的命令
cd /root
apt update && apt install python3-venv -y && apt install python3-pip -y && apt install git -y && apt-get install ffmpeg libsm6 libxext6 -y && apt-get install libgl1 -y && cp /usr/bin/python3 /usr/bin/python
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui && cd stable-diffusion-webui && python3 -m venv venv && apt-get install -y vim
# 删除内容 vi webui.sh
# Do not run as root
if [[ $(id -u) -eq 0 && can_run_as_root -eq 0 ]]
then
printf "\n%s\n" "${delimiter}"
printf "\e[1m\e[31mERROR: This script must not be launched as root, aborting...\e[0m"
printf "\n%s\n" "${delimiter}"
exit 1
else
printf "\n%s\n" "${delimiter}"
printf "Running on \e[1m\e[32m%s\e[0m user" "$(whoami)"
printf "\n%s\n" "${delimiter}"
fi
# 运行安装命令 (开始安装需要的包默认安装在root目录下 主要是因为上外网不方便 有时候部分源有问题 香港这边下载东西都没问题)
./webui.sh
# 远程访问一下http://8.218.114.171:7860/ 生产一个图片(解决一下模块的下载问题)
# 创建新的docker (安装需要的插件)Dockerfile 文件如下
FROM nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/London
RUN apt update && apt install python3-venv -y && apt install python3-pip -y && apt install git -y && apt-get install ffmpeg libsm6 libxext6 -y && apt-get install libgl1 -y && cp /usr/bin/python3 /usr/bin/python
CMD sleep 1111111111
# 运行构建的命令
docker build -t nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04-sd .
# 重新启动
docker run --gpus 1 -p 7860:7860 -p 7861:7861 -v /app/sd/home/:/root --name sd -itd nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04-sd
# 进入容器
cd stable-diffusion-webui/
./webui.sh --listrn
####################
新的镜像( nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04-sd)和目录( /app/sd/home) 打包下载到公司的内网机器
导入新的镜像
公司内网 SD 使用单卡 第四块显卡4
docker run --gpus '"device=3"' -p 8860:7860 -v /data1/newimg/sd/home/:/root --name sd -itd nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04-sd
此时直接访问不需要使用外网
如果可以直接使用外网就不需要这样复杂直接安装即可
加载新的模型后后台自动下载一些新的应用
Downloading VAEApprox model to: /root/stable-diffusion-webui/models/VAE-approx/vaeapprox-sdxl.pt
100%|██████████| 209k/209k [00:58<00:00, 3.63kB/s]
100%|██████████| 20/20 [00:08<00:00, 2.30it/s]
==========================================================================================
A tensor with all NaNs was produced in VAE.
Web UI will now convert VAE into 32-bit float and retry.
To disable this behavior, disable the 'Automatically revert VAE to 32-bit floats' setting.
To always start with 32-bit VAE, use --no-half-vae commandline flag.
==========================================================================================
Total progress: 100%|██████████| 20/20 [00:07<00:00, 2.62it/s]
Total progress: 100%|██████████| 20/20 [00:07<00:00, 3.06it/s]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。