借助deepseek完成python的Deoldfiy黑白照着色工具
最近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 = 35 def 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_factor render_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()
exe工具和源码下载链接:
通过网盘分享的文件:deoldify-tool.zip
链接: https://pan.baidu.com/s/1QLnxS4KRiGNuUw2JEAoKFg?pwd=cjpf 提取码: cjpf
欢迎加v好友(zsy551864489)打赏

浙公网安备 33010602011771号