Ubuntu22.04系统下,图像修复项目CodeFormer的部署——点动科技
- 一、前言:
- 二、开始
- 2.1 ubuntu和docker基本环境配置
- 1.更新包列表:
- 2. 安装docker依赖
- 3. 添加docker密钥
- 4.添加阿里云docker软件源
- 5.安装docker
- 6.安装完成docker测试
- 7. docker配置国内镜像源
- 2.2 安装英伟达显卡驱动
- 2.3 快速封装一个 CodeFormer Docker 容器应用
- 2.3.1 从 Docker CodeFormer 项目下载代码,并进入项目目录:
- 2.3.2 执行项目中的镜像构建工具:
- 2.3.3 在完成基础镜像构建之后
- 2.3.4 准备好模型文件之后,使用下面的命令启动模型应用:
- 2.3.5 我们点动云服务器端口需要改动
一、前言:
- 我们是使用docker环境进行部署的
- CodeFormer 是一个很棒的开源项目sczhou/CodeFormer,被应用在许多项目中,它的论文(arxiv.org/abs/2206.11253)在 2022 年被 “经信息处理系统大会”(NeurIPS)接收后,自 2022 年 6 月代码开始放出至今的一年出头的时间里,Star 数量迅速升到了接近万星的水平,足见开源社区的认可程度。
二、开始
2.1 ubuntu和docker基本环境配置
1.更新包列表:
- 打开终端,输入以下命令:
sudo apt-get update
sudo apt upgrade
更新时间较长,请耐心等待
2. 安装docker依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
3. 添加docker密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4.添加阿里云docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5.安装docker
apt-get install docker-ce docker-ce-cli containerd.i
6.安装完成docker测试
docker -v
7. docker配置国内镜像源
- 7.1 编辑配置文件
vi /etc/docker/daemon.json
按i进入编辑模式
加入以下内容:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://docker.m.daocloud.io",
"https://ghcr.io",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn"
]
}
按ESC键退出编辑模式,接着输入:wq,保存并退出
- 7.2 重新加载docker
sudo systemctl daemon-reload
- 7.3 重启docker
sudo systemctl restart docker
2.2 安装英伟达显卡驱动
- 配置存储库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 更新包列表
sudo apt-get update
- 安装 NVIDIA Container Toolkit 软件包
sudo apt-get install -y nvidia-container-toolkit
- 配置 Docker 以使用 Nvidia 驱动程序
sudo nvidia-ctk runtime configure --runtime=docker
- 重新启动docker
sudo systemctl restart docker
2.3 快速封装一个 CodeFormer Docker 容器应用
2.3.1 从 Docker CodeFormer 项目下载代码,并进入项目目录:
git clone https://github.com/soulteary/docker-codeformer.git
cd docker-codeformer
2.3.2 执行项目中的镜像构建工具:
scripts/build.sh
- 这里请耐心等待镜像构建完毕
- 因为项目锁定了 Python 3.8,所以我们暂时只能使用 nvidia/pytorch:23.04-py3 来作为基础镜像。
2.3.3 在完成基础镜像构建之后
- 可以从网盘下载 weights.zip (如果地址失效,请前往在评论区反馈)。
- 模型应用运行需要的所有模型都在这里了
- 下载完毕后,解压缩模型压缩包,将 CodeFormer、facelib、realesrgan 三个目录放置到 weights 目录中
完整的项目结构这样的:
.
├── LICENSE
├── README.md
├── assets
│ └── image
├── docker
│ └── Dockerfile
├── scripts
│ └── build.sh
├── src
│ ├── app.py
│ └── code-fix.py
└── weights
├── CodeFormer
├── facelib
└── realesrgan
2.3.4 准备好模型文件之后,使用下面的命令启动模型应用:
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --rm -it -v `pwd`/weights/:/app/CodeFormer/weights -p 7860:7860 soulteary/docker-codeformer
稍等片刻,我们将看到类似下面的日志:
Running on local URL: http://0.0.0.0:7860 To create a public link, set 'share=True' in 'launch()'.
2.3.5 我们点动云服务器端口需要改动
- 将7860改成业务端口
- 这里是30137
所以:
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --rm -it -v `pwd`/weights/:/app/CodeFormer/weights -p 30137:7860 soulteary/docker-codeformer