借助deepseek完成python的Deoldfiy黑白照着色工具

news/2025/2/6 10:56:57/文章来源:https://www.cnblogs.com/songsongman/p/18700696

最近deepseek火热,试试看能否协助完成制作一款工具,用于给黑白照片着色。

 

打开deepseek,注册完后,输入需求,给我推荐了deoldify,制作过程总结为以下几步:

1. Python环境搭建直接忽略

2.Deoldfiy依赖库下载安装,训练模型models下载(需要梯子)

 

 

3. 运行查看效果

 

 

 

代码执行会报错,只需要根据报错提示修改即可:

大概意思就是torch.load会有安全问题,需要把默认的权重值改为false

 

 

 

运行效果:

 

 

 

 4. windows界面代码

使用tkinter,只需要一个滑动条用于调整渲染因子,一个按钮用于获取输入图片的路径,运行后在图片路径生成着色好的图片,界面是这个样子:

 

 

 5. 打包成windows可执行工具

刚开始使用Pyinstller,但是执行后运行出错,不想去检查,直接更换为Nuitka,虽然打包时间耗时,但是最终的exe可以执行,需要注意的是,models文件夹也要一同加入到exe的同一个路径下。

 执行命令:nuitka --standalone --onefile --enable-plugin=tk-inter C:\Users\6855ufs\Desktop\deepseek\transfer_photo. py

 

6. 源码展示

import os
from deoldify import device
from deoldify.device_id import DeviceId
# from deoldify.visualize import get_image_colorizer
from deoldify.visualize import *import tkinter  # 用于绘图
from tkinter.filedialog import askdirectory, askopenfilename  # 获取文件目录,文件夹目录

render_factor = 35def run_main():print("get_argument")input_file_path = askopenfilename()print(input_file_path)output_file_path = input_file_path.replace('.jpg', '-fix.jpg')print(output_file_path)print("songsong ready 1111")# 设置设备(GPU 或 CPU)device.set(device=DeviceId.CPU)  # 如果有 GPU,使用 GPU0;否则使用 CPU# torch.serialization.add_safe_globals([partial])print("songsong ready 2222")# 初始化 DeOldify 模型colorizer = get_image_colorizer(artistic=True)print("songsong ready 3333")# 输入和输出路径input_image_path = input_file_path  # 'C:\\Users\\6855ufs\\Desktop\\deepseek\\1.jpg'  # 替换为你的老照片路径output_image_path = output_file_path  # 'C:\\Users\\6855ufs\\Desktop\\deepseek\\2.jpg'  # 替换为输出路径# 为照片上色try:# 渲染因子(render_factor)控制上色的细节程度,值越大细节越多# render_factor = 35  # 可以尝试调整这个值(范围 10-40)print("factor is ")print(type(render_factor))print(render_factor)result = colorizer.get_transformed_image(path=input_image_path,render_factor=render_factor,watermarked=False)# 保存上色后的照片
        result.save(output_image_path)print(f"上色完成!结果已保存到: {output_image_path}")except Exception as e:print(f"上色失败: {str(e)}")l1 = tkinter.Label(window, text=output_file_path + ' is generate')l1.pack()def on_scale_change(value):print(f"渲染因子:{value}")global render_factorrender_factor = int(value)window = tkinter.Tk()
window.title('photo-add-color')
window.geometry('500x360')scale = tkinter.Scale(window, from_=10, to=40, orient=tkinter.HORIZONTAL, label="渲染因子", command=on_scale_change)
scale.pack()b1 = tkinter.Button(window, text="打开图片并运行", command=run_main)
b1.pack()window.mainloop()

 

 

 

 

欢迎加好友打赏

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手搓指数函数实现

1.概况 最近博主有使用指数函数的需求,需要一条在第一象限、底数为10的曲线。但是由于芯片资源有限,所以无法使用数学库。不能调用数学库里面的指数函数。于是就在网上找了一圈,发现毫无质量。 1.只考虑到了整数次幂的简单情况。 2.要么就是调用数学库,没有一个有用的。 于…

淘宝详情页批量抓取组合商品价格

需求:客户需要抓取淘宝商品的不同组合价格,步骤如下图通过切换分类获取相应的价格 客户需求我们可以这样实现:循环点击产品分类,点击一次相应获取一次商品价格 1、首先商品价格,我们发现不同的商品参加活动不一,导致商品价格样式有多种如下2、商品价格样式的多样性使得价…

EvalPlanner:基于“计划-执行”双阶段的大语言模型评估框架

大语言模型(LLM)评估系统在生成思维链(Chain-of-Thought, CoT)序列时,需要系统地捕捉评估过程中的推理步骤。但是由于缺乏人工标注的CoT训练数据,以及预定义评估提示在复杂任务中的局限性,构建高质量的LLM评估模型面临重大挑战。另外手动调整评估指令的方法在面对多样化和复…

[网摘实践]基于本地部署DeepSeek+VSCode+Cline编写代码

前面的本地部署部分,我已经搭建好了。可以参考:https://www.cnblogs.com/haochuang/p/18700495 这里只是在本地基于模型搭建代码编写相关组件 使用deepseek-r1 + Vscode + Cline/Continue 构建本地代码编辑器 这个落地方案是实现本地代码编辑器,但是具体的效果见仁见智,pro…

docker compose搭建immich开源免费相册管理工具

一、immich介绍 1.1 immich简介直接从您的手机自托管照片和视频备份解决方案。1.2 immich注意事项该项目正在非常积极的开发中。⚠️预计会出现错误和重大更改。 ⚠️ 请勿将该应用程序用作存储照片和视频的唯一方式。 ⚠️始终遵循 3-2-1 备份计划,为您珍贵的照片和视频! 1.…

vue3支持低版本浏览器

安装包 npm install @vitejs/plugin-legacy -D #如果打包不了,安装terser包,如果能正常打包,不安装这个包也可以 npm install terser -D在vite.config.ts文件中添加如下配置 import legacy from @vitejs/plugin-legacy export default defineConfig({plugins: [vue(), legac…

【运维自动化-作业平台】如何使用全局变量之数组类型?

数组类型的全局变量也是作业平台里常用的,支持关联数组和索引数组,目前仅支持shell,语法跟shell一致。索引数组 语法 arry=(1 2 3 a b c) ---定义一个数组arry ${arry[*]} ---获取所有数组元素 ${arry[@]} ---获取所有数组元素 ${arry[0]} --获取第一个数组元素实操演示 1、…

用 DeepSeek 分析,SaaS 多租户的3种隔离模式,结果。。。

大家好,我是汤师爷~ 在SaaS模式下,多租户之间的资源隔离是基础且关键的一环。 SaaS服务商需要在确保运营效率和控制成本的前提下,搭建一个让多个租户能够同时访问的共享环境。 虽然大家都在用同一套SaaS产品服务,但资源访问必须严格隔离,确保租户之间互不干扰。 下面,介绍…

HTTP和HTTPS的区别和作用

HTTP和HTTPS的区别和作用:一、核心区别(分点清晰)协议安全性HTTP:明文传输,数据无加密,易被窃听(如登录密码、用户隐私泄露)。 HTTPS:HTTP + TLS/SSL加密层,数据在传输前加密(使用对称加密传输数据 + 非对称加密交换密钥),防止中间人攻击。默认端口HTTP默认80端口…

DeepSeek-R1真算得上开源吗?

1 啥是 DeepSeek-R1? 如你曾为一道棘手数学题绞尽脑汁,就明白多花时间仔细思考多重要。OpenAI o1 模型证明,当 LLM 在推理时,通过增加计算量进行类似训练后,它们在数学、编程和逻辑等推理任务上的表现显著提升。 然而,OpenAI 推理模型的训练方法一直是秘密。直到DeepSee…

WPS:如何创建序号列表:一、1.1、1.1.1

目标:生成如下图所示的多级标题序号 步骤: 1)修改样式标题1 2)格式→编号在多级编号中选择如下编号序列点击右下角的自定义,修改编号样式为一,二,三……(如果该项为灰色,无法修改,请取消勾选右下角的正规形式编号) 此时在右边的预览中可以看到一级序号已经变为汉字…