Ubuntu22.04系统下,图像修复项目CodeFormer的部署——点动科技

news2024/12/27 20:15:39

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows11远程桌面如何打开

随着远程办公的普及,选择合适的远程桌面工具变得尤为重要。在Windows 11上,用户可以利用系统自带的远程桌面功能,或选择更专业的第三方解决方案,如Splashtop。本文将详细介绍如何在Windows 11上启用远程桌面,并对比Win…

C语言——位运算

一、位运算符和位运算 C语言提供如下表所列出的位运算符: 说明: (1)位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量。 (2)运算量只能是整型或字符型的数据,不能为实型数…

简单的docker学习 第4章 docker容器

第4章 Docker容器 4.1 容器基础 4.1.1 容器启动流程 通过 docker run 命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像,如果找到了,则直接启动,否则会到镜像中心查找。如果镜像中心存在该镜像,则会下载到…

读零信任网络:在不可信网络中构建安全系统10认证身份

1. 用户所知道的信息 1.1. 只有用户本人知道的信息 1.2. 密码 1.2.1. 密码是常用的认证机制 1.2.2. 密码验证就是确认用户“所知”性的较好途径 1.2.3. 用户可以利用密码管理器来便捷地管理多个高强度密码,从而有效降低数据泄露风险 1.2.4. 长度足够长 1.2.4.1…

Docker数据管理,数据卷,容器服务器数据卷

一、容器的数据管理介绍 1.1 Docker容器分层 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。 如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到…

GroupMamba实战:使用GroupMamba实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图,完工时间:,延期,机器负载,机器能耗。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 &a…

Stack Overflow2024年度调查:76%的程序员正在或计划使用AI工具!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工具测评,AI效率提升,AI行业洞察。关注我,AI之路不迷路,2024我们一起变强。 1. 最受…

零售EDI:OBI欧倍德EDI项目案例

OBI欧倍德公司是德国建材和家居装饰零售连锁店,在德国以及其他欧洲国家拥有众多分店,是欧洲领先的DIY(Do It Yourself)零售商之一。为了更好地处理与全球供应商之间的业务数据往来,OBI采用EDI提高其供应链的自动化水平…

继承(一)

概念:继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构&#xff0c…

基于Verilog HDL的FPGA开发入门

在电子设计自动化领域,FPGA(现场可编程门阵列)是一种强大的工具,它允许设计者在硬件层面上实现自定义的逻辑电路。Verilog HDL(硬件描述语言)是描述FPGA设计的主要语言之一,以其简洁性和强大的功…

工具收集 - tinytask(相当于迷你的按键精灵)

工具收集 - tinytask(相当于迷你的按键精灵) 简介首页 简介 TinyTask 是一款极简主义的 PC 自动化应用程序,您可以用它来记录和重复操作。顾名思义,它小得令人难以置信(仅 36KB!),极…

调度系统之Oozie

Apache Oozie 是一个工作流调度系统,专门设计用于管理在 Apache Hadoop 平台上运行的工作流。Oozie 提供了丰富的功能,使得大规模数据处理任务的调度和管理变得更加高效和灵活。以下是对 Oozie 的详细介绍: 核心功能 1. 工作流管理 Oozie 允…

营养学基础

目录 一,指标概念 二,中国居民膳食矿物质 三,婴儿奶粉矿物质计算 1,冲奶粉 2,奶粉营养表 3,计算示例 一,指标概念 简单来说,UL是上限,其他3个是推荐值。 RNI的可信…

牛客JS题(二十四)验证是否是身份证

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 正则表达式一代与二代身份证判断 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><style>/* 填写样式 */</style></head><…

【旧数字组合新数字】有1,2,3,4个数字,求能组成多少个互不相同且无重复数字的三位数,都是多少

有1&#xff0c;2&#xff0c;3&#xff0c;4个数字&#xff0c;求能组成多少个互不相同且无重复数字的三位数&#xff0c;都是多少&#xff0c;使用C语言实现 具体代码&#xff1a; #include<stdio.h>int main(){int i,j,n;for(i1;i<5;i){for(j1;j<5;j){for(n1;…

消灭星星游戏程序设计【连载十】——小星星的残影轨迹

消灭星星游戏程序设计【连载十】——小星星的残影轨迹 大家每次都可以在页面中下载本节内容的实现代码&#xff0c;一步一步从简单开始&#xff0c;逐步完成游戏的各种功能&#xff0c;如果大家有任何问题也欢迎留言交流。 游戏整体效果展示&#xff1a; 1、本节要达到的效果 …

【Mind+】掌控板入门教程05 心情灯

大自然的各种色彩使人产生各种感觉&#xff0c;心理学家认为&#xff0c;不同的颜色会让人产生不同的情绪。比如&#xff0c;红色通常给人刺激、热情和幸福的感觉&#xff0c;而绿色作为自然界中草原和森林的颜色&#xff0c;给人以理想、年轻、新鲜的感觉&#xff0c;蓝色则让…

MediaHub中的卡片实现进展汇报

今天刚从家赶到北京&#xff0c;北京和内蒙的温度差别真的太大了。给大家简单汇报一下目前MediaHub的进展&#xff1a; 上节卡片需求我们分析了gamma中卡片的设计&#xff0c;经过几天的开发以及前期的积累&#xff0c;开发进度超预期&#xff0c;功能基本上已经开发完成&#…

认识Mybatis和搭建Mybatis初始环境(Java)

首先我们需要知道在Java中连接数据库的底层就是JDBC&#xff0c;但是JDBC存在诸多弊端&#xff0c;如硬编码&#xff0c;代码重复度高&#xff0c;SQL参数固定&#xff0c;属于底层技术&#xff0c;结果集映射麻烦等。为了解决这些弊端&#xff0c;官方为我们提供了一些ORM模型…