GPU云主机
微信客服
领取新人福利
进官方活动群
在服务器Ubuntu22.04系统下的
CodeFormer的部署
欢迎使用我们公司服务器来部署和使用CodeFormer大模型。通过本指南,您将学会如何在Ubuntu 22.04系统下安装和配置CodeFormer大模型,并使用webui进行交互。如果您对我们的服务器感兴趣,可以在官网处获取服务器资源,我们还提供详细的部署帮助文档,帮助您轻松上手。
CodeFormer 介绍

       CodeFormer是一款专业的AI图片修复软件工具包,由南洋理工大学和商汤科技联合研发推出 。它是一种AI深度学习模型,通过结合自动编码器(VQGAN)和注意力机制(Transformer)技术,能够实现将模糊或马赛克的人脸图片修复成清晰的原始人脸图片 。

      项目地址:https://github.com/sczhou/CodeFormer

部署框架

在这个框架中,每个组件都有其特定的角色和功能,它们通过Web UI这个桥梁相互连接,共同为用户提供服务。用户通过浏览器与Web服务器交互,而Web服务器则负责与后端的CodeFormer模型进行通信,以完成图片生成的任务。
•  用户(User):
用户是最终与系统交互的人,他们使用Web UI来生成图片。
• 浏览器(Browser):
用户通过浏览器访问Web服务器。浏览器充当客户端,发送HTTP请求并接收响应。
• Web服务器(Web Server):
运行Ubuntu服务器上的软件,通常是Web框架的一部分,比如Flask或Django。它处理来自浏览器的HTTP请求,提供Web UI,并与后端服务交互。
• CodeFormer模型(CodeFormer Model):
CodeFormer 是一种先进的图像超分辨率(Super-Resolution, SR)模型。
• Web UI(Web User Interface):
用户通过Web UI与系统交互。Web UI是Web服务器提供的前端界面,允许用户上传图片、设置生成参数等。


CodeFormer模型的优点和缺点
CodeFormer 模型具有以下一些优点和缺点:
• 优点:
面部图像修复和增强:CodeFormer利用深度学习技术,能够修复和增强面部图像,去除噪声、马赛克等损坏区域,恢复原始图像的细节和色彩 。
后处理需求:尽管 CodeFormer 能够恢复出大部分原始图像信息,但在某些情况下,恢复结果可能仍然存在一定的噪声或失真。
细节修复:通过自动编码器实现人脸的变换,包括色彩化、清晰化、去马赛克等功能,使得修复后的人脸更加真实 。

• 缺点:
复杂损伤的修复限制:可能无法完全修复。这意味着在处理极端退化或严重损坏的图像时,它的性能可能会受限。
数据集的选择:简单狭窄的数据集往往会产生更好的结果,但这也意味着模型可能无法很好地泛化到更多样化的图像上。
特定场景下的微调需求:在某些复杂场景下,CodeFormer 生成的代码可能需要人工进行微调,这意味着它可能不完全适合所有情况,尤其是在需要高度定制化解决方案的场景中。
部署流程解释介绍
1. 购买 GPU 服务器
• 在点动云官网购买并配置服务器:

• 操作系统选择:
     选择一个适合您需求的操作系统,通常推荐使用 Ubuntu 22.04 LTS,因为它提供了长期支持和稳定性。
• 购买和部署:
    完成购买流程,启动服务器,并进行初步配置。
    FinalShell是一款服务器管理工具,支持SSH和远程桌面,使用FinalShell远程连接配置服务器。


2. ubuntu 和 docker 基本环境配置
• 更新包列表
     确保系统获取到最新的可用软件包信息,以便能够安装最新或合适的版本。
• 安装 docker 依赖
     用于验证 Docker 软件源的合法性和安全性。
• 添加阿里云 docker 软件源
     为了提高下载速度或获取特定的优化配置。
• 安装 docker
     Docker是一个容器化平台,它允许您在隔离的环境中运行应用程序。在系统中安装 Docker 引擎,以便能够使用 Docker 相关功能。
• 安装完成 docker 测试
    验证 Docker 是否正确安装并且能够正常工作。
• docker 配置国内镜像源
    加速 Docker 镜像的下载速度,减少因网络原因导致的下载缓慢或失败。

3. 安装英伟达显卡驱动
• 使用 Apt 安装
     通过 Ubuntu 的包管理工具 Apt 来获取和安装适合系统的英伟达显卡驱动,使显卡能够正常工作并发挥最佳性能。


4. 使用 docker 安装 CodeFormer
• 使用 docker 拉取 CodeFormer 镜像
    从 Docker 仓库获取 CodeFormer 的镜像,为后续运行容器做准备。
• 使用 docker 运行以下命令来启动 CodeFormer 容器
     创建并启动一个基于 CodeFormer 镜像的容器,使其能够运行。
• 使用 CodeFormer 下载模型
     获取所需的模型,以便 CodeFormer 能够基于这些模型提供相应的服务。

5. 使用 docker 安装 open-webui
• docker 部署 CodeFormer web ui
    通过 Docker 来搭建 CodeFormer 的 Web 用户界面。
• 注册账号并成功进入:聊天界面
    用户可以通过该界面与 CodeFormer 进行交互和获取服务。
 
部署流程概述
• 环境配置:对 Ubuntu 和 Docker 进行基本环境配置,包括更新包列表、安装依赖、添加密钥和软件源来安装 Docker 并进行测试,还配置了国内镜
                   像源以优化 Docker 镜像的获取。
• 安装显卡驱动:通过 Apt 安装英伟达显卡驱动,为需要显卡支持的应用提供保障。
• 安装 open-webui:使用 Docker 安装 open-webui ,包括部署界面、注册账号,最终成功进入聊天界面以进行交互操作。

部署具体流程
一、FinalShell的下载及使用:

   FinalShell是一款服务器管理工具,支持SSH和远程桌面,提供多标签管理、命令自动提示、SFTP、性能监控等功能,适用于开发运维,界面友好,在很大程度上可以免费替代XShell。
   FinalShell的下载:https://www.hostbuf.com/t/988.html

   FinalShell的基本使用:

   连接Linux服务器

   进行如下设置:
    名称:  自定义
    主机:  填写你的服务器的公网IP
    端口:  填写服务器端口
    备注:  自定义
    方法:  密码
    用户名:默认是root
    密码:  填写服务器的登录密码

新建完后双击或者右键点击连接
二、ubuntu22.04与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配置国内镜像源
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.重新加载docker
sudo systemctl daemon-reload

8.重启docker

sudo systemctl restart docker

三、安装英伟达显卡驱动
•配置存储库
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

四、使用docker安装CodeFormer
•从 Docker CodeFormer 项目下载代码,并进入项目目录
git clone https://github.com/soulteary/docker-codeformer.git
cd docker-codeformer

•执行项目中的镜像构建工具
scripts/build.sh
因为项目锁定了 Python 3.8,所以我们暂时只能使用 nvidia/pytorch:23.04-py3 来作为基础镜像。

•在完成基础镜像构建之后
可以从网盘下载 weights.zip
模型应用运行需要的所有模型都在这里了
下载完毕后,解压缩模型压缩包,将 CodeFormer、facelib、realesrgan 三个目录放置到 weights 目录中

•完整的项目结构如下图


五、使用docker安装open-webui
•准备好模型文件之后,使用下面的命令启动模型应用
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()'.的日志

•执行安装命令
将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

启动成功后,访问http://主机IP:端口