当前位置: 首页 > news >正文

jantic/DeOldify部署(图片上色)附带Dockerfile和镜像

1. 克隆代码到DeOldify

git clone https://github.com/jantic/DeOldify.git DeOldify

DeOldify源码

2. 安装依赖

这里会安装python以及创建deoldify环境

cd DeOldify
conda env create -f environment.yml
(base) root@DESKTOP-1FOD6A8:~/DeOldify# conda env create -f environment.yml
Retrieving notices: ...working... Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /pkgs/r/notices.jsonRetrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /pkgs/r/notices.jsondone
Channels:- fastai- conda-forge- defaults- pytorch
Platform: linux-64
Collecting package metadata (repodata.json): - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /pkgs/main/linux-64/repodata.json.zst| Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /fastai/linux-64/repodata.json.zst\ Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /fastai/linux-64/repodata.json.zstdone
Solving environment: doneDownloading and Extracting Packages:
pytorch-1.11.0       |Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /conda-forge/linux-64/mkl-2024.0.0-ha957f24_49657.conda2024.0.0         | 120.2 MB  |                                                                                                       |   0%
mysql-5.7.20         | 79.2 MB   |                                                                                                       |   0%
pytorch-1.11.0       | 1.20 GB   | 1                                                                                                     |   0%Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')': /conda-forge/linux-64/mkl-2024.0.0-ha957f24_49657.conda            |   0%
mysql-5.7.20         | 79.2 MB   | 4                                                                                                     |   0% pytorch-1.11.0       | 1.20 GB   | ####################################################################################################9 | 100% cudatoolkit-11.5.2   | 566.5 MB  | ##################################################################################################### | 100% mkl-2024.0.0         | 120.2 MB  | ##################################################################################################### | 100% mysql-5.7.20         | 79.2 MB   | ##################################################################################################### | 100% llvm-openmp-18.1.7   | 55.9 MB   | ##################################################################################################### | 100% libllvm14-14.0.6     | 30.0 MB   | ##################################################################################################### | 100% torchvision-0.12.0   | 27.6 MB   | ##################################################################################################### | 100% python-3.10.14       | 24.3 MB   | ##################################################################################################### | 100% scipy-1.14.1         | 16.1 MB   | ##################################################################################################### | 100% pandas-2.2.2         | 12.4 MB   | ##################################################################################################### | 100% icu-73.2             | 11.5 MB   | ##################################################################################################### | 100% libopenvino-intel-cp | 10.4 MB   | ##################################################################################################### | 100% ffmpeg-7.0.1         | 9.6 MB    | ##################################################################################################### | 100% libclang13-14.0.6    | 8.8 MB    | ##################################################################################################### | 100% libopenvino-intel-gp | 8.1 MB    | ##################################################################################################### | 100% cython-blis-0.7.10   | 7.4 MB    | ##################################################################################################### | 100% babel-2.14.0         | 7.3 MB    | ##################################################################################################### | 100% jupyterlab-4.2.5     | 7.0 MB    | ##################################################################################################### | 100% matplotlib-base-3.9. | 6.7 MB    | ##################################################################################################### | 100% numpy-1.26.4         | 6.7 MB    | ##################################################################################################### | 100% pyqt-5.15.4          | 6.1 MB    | ##################################################################################################### | 100% torchaudio-0.11.0    | 5.3 MB    | ##################################################################################################### | 100% spacy-3.7.5          | 5.2 MB    | ##################################################################################################### | 100% libopenvino-2024.1.0 | 4.9 MB    | ##################################################################################################### | 100% p11-kit-0.24.1       | 4.5 MB    | ##################################################################################################### | 100% libcups-2.3.3        | 4.3 MB    | ##################################################################################################### | 100% language-data-1.2.0  | 4.0 MB    | ##################################################################################################### | 100% libglib-2.80.2       | 3.7 MB    | ##################################################################################################### | 100% libstdcxx-14.1.0     | 3.7 MB    | ##################################################################################################### | 100% x265-3.5             | 3.2 MB    | ##################################################################################################### | 100% tk-8.6.13            | 3.2 MB    | ##################################################################################################### | 100%
openssl-3.3.2        | 2.8 MB    | ##################################################################################################### | 100% libprotobuf-4.25.3   | 2.7 MB    | ##################################################################################################### | 100% gettext-tools-0.22.5 | 2.6 MB    | ##################################################################################################### | 100% aom-3.9.1            | 2.6 MB    | ##################################################################################################### | 100%  ... (more hidden) ...

这里可能会有几个依赖会失败

失败了再次执行

直到全部依赖下载完成

3. conda 激活deoldify

conda activate deoldify

4. 下载模型

https://github.com/jantic/DeOldify

放在DeOldify/models目录下

5. 启动脚本

想要cpu执行可以修改下图位置为CPU,就算是GPU,没有GPU的情况下也会使用CPU执行,所以我没有修改

import argparse
from deoldify import device
from deoldify.device_id import DeviceId
from deoldify.visualize import *
import matplotlib.pyplot as plt
import torch
import warnings
import os# 设置命令行参数
parser = argparse.ArgumentParser(description="DeOldify Image Colorization")
parser.add_argument('--source_path', type=str, required=True, help="Path to the input image")
parser.add_argument('--render_factor', type=int, default=35, help="Render factor for the image colorizer (default: 35)")args = parser.parse_args()# 设置设备 (CPU 或 GPU0)
device.set(device=DeviceId.GPU0)# 设置样式和性能优化
plt.style.use('dark_background')
torch.backends.cudnn.benchmark = True# 忽略某些警告
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")# 初始化颜色化工具
colorizer = get_image_colorizer(artistic=True)# 获取运行时参数
render_factor = args.render_factor
source_path = args.source_path# 动态设置 result_path,例如保存到 'output_images' 目录中
result_dir = 'output_images'
if not os.path.exists(result_dir):os.makedirs(result_dir)# 自动根据 source_path 生成输出文件路径
file_name = os.path.basename(source_path)
result_path = os.path.join(result_dir, file_name)# 显示颜色化处理后的图像并进行对比
colorizer.plot_transformed_image(path=source_path, render_factor=render_factor, compare=True)
  • –source_path /mnt/c/Users/admin/Pictures/202003091903023858a.jpg
    • 需要上色的图片路径
  • –render_factor 35
    • render_factor 决定了输入图像被缩小多少来处理颜色化,影响图像处理速度和生成的质量。
    • 较低的 render_factor 速度快,但细节少;较高的 render_factor 细节更多,但可能速度慢且颜色可能不够自然。
    • 可以不传,默认35
python start.py --source_path /mnt/c/Users/admin/Pictures/202003091903023858a.jpg  --render_factor 35

6. 启动问题

python start.py --source_path /mnt/c/Users/admin/Pictures/202003091903023858a.jpg  --render_factor 35

需要安装libtiff5

sudo apt-get update
sudo apt-get install libtiff5

如果apt-get update如下

换源

cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo bash -c 'cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu/ jammy main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main universe restricted multiverse
EOF'
sudo apt-get update
sudo apt-get upgrade

7. 启动

第一次启动会下载这个预处理模型,启动的时候下载失败,可以手动下载,然后放在对应文件目录下

Downloading: "https://download.pytorch.org/models/resnet34-b627a593.pth" to /root/.cache/torch/hub/checkpoints/resnet34-b627a593.pth

之后启动就不会再下载了

效果

8. docker 部署

8.1 已经部署好的镜像

bash版本: 启动后会直接进入容器,然后执行目录下的python start.py即可

此版本为deoldify:v1.0

docker run -it registry.cn-hangzhou.aliyuncs.com/zr-dev/deoldify:v1.0

容器启动时就会自动启动脚本,但是需要传入参数

  • 此版本为deoldify:v2.0
  • –source_path /workspace/DeOldify/test_images/202003091903023858a.jpg \
    • 需要上色的图片路径
    • 此文件的路径必须在输入目录下
  • –render_factor 35
    • render_factor 决定了输入图像被缩小多少来处理颜色化,影响图像处理速度和生成的质量。
    • 较低的 render_factor 速度快,但细节少;较高的 render_factor 细节更多,但可能速度慢且颜色可能不够自然。
    • 可以不传,默认35
  • -v $(pwd)/input_images:/workspace/DeOldify/test_images
    • 输入目录挂载
  • -v $(pwd)/output_images:/workspace/DeOldify/result_images
    • 输出目录挂载
docker run registry.cn-hangzhou.aliyuncs.com/zr-dev/deoldify:v2.0 --source_path /workspace/DeOldify/resource_images/watermark.png --render_factor 35 -v $(pwd)/input_images:/workspace/DeOldify/test_images -v $(pwd)/output_images:/workspace/DeOldify/result_images

9. 自己构建镜像

如果我构建的镜像不符合读者的需求,可以改动Dockerfile自行构建

9.1 部署模型以及脚本

下载地址:链接:https://share.weiyun.com/lpsjQ5Pc 密码:7rfys7

9.2 Dockerfile

# 使用 Miniconda 基础镜像
FROM registry.cn-hangzhou.aliyuncs.com/zr-dev/miniconda3:v1.0# 设置工作目录
WORKDIR /home/ai# 将本地的 GFPGAN 文件夹复制到容器中
COPY ./DeOldify /workspace/DeOldify# 设置工作目录为 GFPGAN 文件夹
WORKDIR /workspace/DeOldify# 安装和相关依赖(CPU 版本)
RUN conda env update -n base -f environment.yml
# 将启动脚本复制到容器内
COPY ./start.py /workspace/DeOldify/start.py# 将预训练模型从本地复制到容器中
COPY ./ColorizeArtistic_gen.pth /workspace/DeOldify/models/ColorizeArtistic_gen.pth# 安装 libGL 和其他 OpenCV 所需的依赖
RUN apt-get update && apt-get install -y \libgl1-mesa-glx \libglib2.0-0 \libsm6 \libxrender1 \libxext6# 将本地下载的 resnet34 预训练模型复制到容器中
COPY ./resnet34-b627a593.pth /root/.cache/torch/hub/checkpoints/resnet34-b627a593.pth# 执行 Python 脚本
# ENTRYPOINT ["python", "start.py"]
# 使用 bash 作为容器的入口
ENTRYPOINT ["/bin/bash"]

注意处理完成的图片是result_images不在output_images

相关文章:

jantic/DeOldify部署(图片上色)附带Dockerfile和镜像

1. 克隆代码到DeOldify git clone https://github.com/jantic/DeOldify.git DeOldifyDeOldify源码 2. 安装依赖 这里会安装python以及创建deoldify环境 cd DeOldify conda env create -f environment.yml(base) rootDESKTOP-1FOD6A8:~/DeOldify# conda env create -f environm…...

2024年9月9日--9月15日(freex源码抄写+ue5肉鸽视频一节调节)

现在以工作为中心&#xff0c;其他可以不做硬性要求。周一到周四&#xff0c;晚上每天300行freex源码抄写&#xff0c;周六日每天1000行。每周3200行&#xff0c;每天完成该完成的即可&#xff0c;早上有时间时进行一小节独立游戏相关的视频教程作为调节即可&#xff0c;不影响…...

CLIP官方github代码详解

系列文章目录 文章目录 系列文章目录一、Usage1、conda install --yes -c pytorch pytorch1.7.1 torchvision cudatoolkit11.02、代码3、 二、1、2、3、 三、1、2、3、 四、1、2、3、 五、1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 一、Usage 1、conda install --…...

ElementUI 布局——行与列的灵活运用

ElementUI 布局——行与列的灵活运用 一 . 使用 Layout 组件1.1 注册路由1.2 使用 Layout 组件 二 . 行属性2.1 栅格的间隔2.2 自定义元素标签 三 . 列属性3.1 列的偏移3.2 列的移动 在现代网页设计中&#xff0c;布局是构建用户界面的基石。Element UI 框架通过其强大的 <e…...

Docker快速部署Apache Guacamole

Docker快速部署Apache Guacamole ,实现远程访问 git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git" cd guacamole-docker-compose ./prepare.sh docker-compose up -dhttps://IP地址:8443/ 用户名:guacadmin 密码:guacadmin docker …...

C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(1)

1、表格处理程序示例 表格处理程序是一个二维的“细胞”网格&#xff0c;每个格子包含了一个数字或者字符串。专业的表格处理程序比如微软的Excel提供了执行数学运算的能力&#xff0c;比如计算格子中的值的和。表格处理程序示例无意挑战微软的市场地位&#xff0c;但是对于演示…...

es6中set和map的区别

在ES6&#xff08;ECMAScript 2015&#xff09;中&#xff0c;Set 和 Map 是两种新的集合类型&#xff0c;它们提供了更高级的数据结构来存储唯一值或键值对集合。尽管它们在功能上有些相似&#xff0c;但它们在用途和内部机制上存在一些关键区别。 1. 基本概念 Set&#xff1…...

高级实时通信:基于 Python 的 WebSocket 实现与异步推送解决方案

高级实时通信&#xff1a;基于 Python 的 WebSocket 实现与异步推送解决方案 目录 &#x1f7e2; WebSocket 协议概述&#x1f535; 在 FastAPI 中实现 WebSocket&#x1f7e3; Django Channels 实现异步实时通信&#x1f534; 使用 Redis 实现实时推送 &#x1f7e2; 1. WebS…...

大二上学期详细学习计划

本学习完成目标&#xff1a; 项目&#xff1a; 书籍&#xff1a;《mysql必知必会》《java核心技术卷》&#xff08;暂时&#xff09;加强JavaSE的学习&#xff0c;掌握Java核心Mysqlsql&#xff08;把牛客上的那50道sql语句题写完&#xff09;gitmaven完成springboot项目&…...

Kafka【十四】生产者发送消息时的消息分区策略

【1】分区策略 Kafka中Topic是对数据逻辑上的分类&#xff0c;而Partition才是数据真正存储的物理位置。所以在生产数据时&#xff0c;如果只是指定Topic的名称&#xff0c;其实Kafka是不知道将数据发送到哪一个Broker节点的。我们可以在构建数据传递Topic参数的同时&#xff…...

SQL优化:执行计划详细分析

视频讲解&#xff1a;SQL优化&#xff1a;SQL执行计划详细分析_哔哩哔哩_bilibili 1.1 执行计划详解 id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1.1.1 ID 【概…...

Android Studio -> Android Studio 获取release模式和debug模式的APK

Android Studio上鼠标修改构建类型 Release版本 激活路径&#xff1a;More tool windows->Build Variants->Active Build Variant->releaseAPK路径&#xff1a;Project\app\build\intermediates\apk\app-release.apk Debug版本 激活路径&#xff1a;More tool w…...

基于 SpringBoot 的实习管理系统

专业团队&#xff0c;咨询送免费开题报告&#xff0c;大家可以来留言。 摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;实习管理也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越…...

vmware workstation 17 linux版

链接: https://pan.baidu.com/s/1F3kpNEi_2GZW0FHUO-8p-g?pwd6666 提取码: 6666 1 先安装虚拟机 不管什么错误 先安装vmware workstation 17 2 编译 覆盖安装vmware-host-modules-workstation-17.5.1 只需这样就可以 # sudo apt install dkms build-essential bc iw…...

Windows环境本地部署Oracle 19c及卸载实操手册

前言: 一直在做其他测试,貌似都忘了Windows环境oracle 19c的部署,这是一个很早很早的安装记录了,放上来做个备录给到大家参考。 Oracle 19c‌:进一步增强了自动化功能,并提供了更好的性能和安全性。这个版本在自动化、性能和安全性方面进行了重大改进,以满足现代企业对数…...

MapStruct介绍

一、MapStruct 1.1何为MapStruct 要说这个东西&#xff0c;其实和我们刚刚讲到的Lombok相类似。其是由我们的源代码加上MapStruct经过编译后得到.class文件&#xff0c;文件中自动补全了代码。那么补全了什么代码&#xff1f;实现了什么功能&#xff1f; MapStruct的产生&…...

35天学习小结

距离上次纪念日&#xff0c;已经过去了35天咯 算算也有5周了&#xff0c;在这一个月里&#xff0c;收获的也挺多&#xff0c;在这个过程中认识的大佬也是越来越多了hh 学到的东西&#xff0c;其实也没有很多&#xff0c;这个暑假多多少少还是有遗憾的~ 第一周 学习了一些有…...

【iOS】UIViewController的生命周期

UIViewController的生命周期 文章目录 UIViewController的生命周期前言UIViewController的一个结构UIViewController的函数的执行顺序运行代码viewWillAppear && viewDidAppear多个视图控制器跳转时的生命周期pushpresent 小结 前言 之前对于有关于UIViewControlller的…...

ELK在Linux服务器下使用docker快速部署(超详细)

ELK是什么&#xff1f; 首先说说什么是ELK ELK 是一个开源的日志管理和分析平台&#xff0c;由三个主要组件组成&#xff1a; Elasticsearch&#xff1a;一个分布式搜索和分析引擎&#xff0c;能够快速存储、搜索和分析大量数据。它是 ELK 堆栈的核心&#xff0c;负责数据的…...

unity导入半透明webm + AE合成半透明视频

有些webm的文件导入unity后无法正常播报&#xff0c;踩坑好久才知道需要webm中的&#xff1a;VP8 标准 现在手上有几条mp4双通道的视频&#xff0c;当然unity中有插件是可以支持这种视频的&#xff0c;为了省事和代码洁癖&#xff0c;毅然决然要webm走到黑。 mp4导入AE合成半透…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...