当前位置:   article > 正文

容器化部署stable-diffusion-webui ( 无需外网)_stable-diffusion-webui docker

stable-diffusion-webui docker

环境 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]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/299760
推荐阅读
相关标签
  

闽ICP备14008679号