☰
DeOldify 权重配置完整指南:从零跑通老照片着色
2026/10/31 1:56:54 网站建设 项目流程

DeOldify 权重配置完整指南:从零跑通老照片着色

【免费下载链接】DeOldifyA Deep Learning based project for colorizing and restoring old images (and video!)项目地址: https://gitcode.com/gh_mirrors/de/DeOldify

DeOldify 是基于深度学习的老照片、老视频智能着色与修复项目,能自动推断黑白影像中人物、服饰、景物的合理色彩。这篇教程带你完成 DeOldify 环境搭建、预训练权重下载与放置、Artistic / Stable / Video 三种模型的选择,以及首次运行演示和 DeOldify CUDA 报错等高频问题,目标是让第一张上色照片尽快出现在你的屏幕上。

从一张抽屉里的老照片说起

从故纸堆里翻出一张 1980 年代的黑白家庭合影,人物和场景都清晰,唯独少了颜色。DeOldify 做的事,就是用训练好的生成器网络为这类黑白图像(乃至视频)推断出贴近真实质感的色彩,输出图保持与输入相同的分辨率,人物皮肤、旧时服饰、天空与建筑都会被赋上合理的颜色。它基于 NoGAN 训练方式,生成质量明显好于早期版本。

下面是配置环节。先确认系统环境:官方只支持 Linux,着色推理对显卡要求不高,约 4GB 显存即可,没有独立显卡的机器用 CPU 也能跑,只是会慢一个量级。

30 分钟搭好环境并放好权重

整条链路四步:克隆仓库、建环境、建目录、下权重。

Step 1:克隆仓库

git clone https://gitcode.com/gh_mirrors/de/DeOldify cd DeOldify

Step 2:用 conda 创建并激活运行环境

环境定义写在 environment.yml,包含 Python 3.10、PyTorch 1.11、fastai 1.0.60 和 Jupyter Lab,一键装齐:

conda env create -f environment.yml conda activate deoldify

Step 3:准备权重目录

仓库自带models/文件夹(当前是空的),预训练权重就放这里:

ls models

Step 4:下载权重放进 models/

各权重的下载地址以仓库 README.md 的 "Pretrained Weights" 一节为准。只做推理,下载"Completed Generator Weights"(生成器权重)就够了;要微调或继续训练,才需要对应的评论器权重(crit)文件。文件名和模型对应关系如下:

模型生成器权重(推理必需)评论器权重(微调才需要)
ArtisticColorizeArtistic_gen.pthColorizeArtistic_crit.pth
StableColorizeStable_gen.pthColorizeStable_crit.pth
VideoColorizeVideo_gen.pthColorizeVideo_crit.pth

放好后,项目结构应该是这样:

DeOldify/ ├── models/ │ ├── ColorizeArtistic_gen.pth │ ├── ColorizeStable_gen.pth │ └── ColorizeVideo_gen.pth ├── deoldify/ └── test_images/

三种模型怎么选

代码里通过权重文件区分三种模型(见 deoldify/visualize.py),横向对比如下:

模型视觉风格关键词推荐场景网络骨架训练策略
Artistic色彩浓烈、细节生动追求艺术感的单张照片resnet34 + UNet,解码器偏深层NoGAN,5 轮 critic 预训练/GAN 循环
Stable自然克制、瑕疵少人像、风景等常见照片resnet101 + UNet,解码器偏宽NoGAN,3 轮 critic 预训练/GAN 循环
Video平滑一致、无闪烁老影片逐帧着色与 Stable 相同NoGAN,仅完成基础训练

结论很短:拿不准就先跑 Stable,人像和风景出片最稳;想要更浓烈的色彩再切 Artistic,注意它要配合 render_factor 调参;只要是视频,就用 Video 模型。

跑通你的第一张图

这一步只改 notebook 里现成的变量,不写新代码。

jupyter lab

打开 ImageColorizer.ipynb(同一份 notebook 兼顾两种图像模型,视频用 VideoColorizer.ipynb)。按顺序运行各单元格:第一格指定设备,有显卡填DeviceId.GPU0,没有就填CPU0;然后调用get_image_colorizer(artistic=True)初始化着色器,artistic参数决定用哪个模型。

输入来源二选一:在source_url里填一个直链图片地址,或者把它设为None,在 Jupyter 里把一张黑白照片上传到test_images/目录,再让source_path指向它。render_factor保持默认 35 即可。

跑完后 notebook 会在下方并排显示原图和着色图,成品存进result_images/文件夹。GPU 上一般几秒到十几秒出一张;色调上,Artistic 偏浓郁、细节多,Stable 更保守自然。如果某张图渲出来不对劲,第一反应不是换模型,而是先调render_factor。

按报错症状排查

现象一:提示找不到权重文件。定位:报错信息里带ColorizeArtistic_gen之类的权重名,说明它按"项目根目录下的models/+ 默认文件名"去找文件。修复:确认.pth文件就在DeOldify/models/里,不是多套了一层子目录,文件名和上表完全一致(大小写敏感)。

现象二:CUDA out of memory。定位:显存溢出发生在色彩渲染阶段,render_factor直接决定渲染分辨率(16 × render_factor 的正方形)。修复:图像任务把render_factor从默认 35 降到 15~20,视频从 21 降到 10 附近再重试;11GB 显卡图像上限约 45,再往上必爆。连续多次运行后报错,先重启 kernel 释放显存。

现象三:输出偏色、脏污或整片发黑。定位:多半是render_factor与这张图的质量不匹配——旧照片和扫描模糊图偏高会脏,高清图偏低会糊。修复:用 notebook 底部"See how well render_factor values perform"单元格的现成循环,批量试 10~45 的不同取值,选观感最好的一档;若同一档位下仍有大块错位色块,把artistic改为False切 Stable 模型重出一版。

现象四:跑得极慢但没有报错。定位:代码实际跑在 CPU 上(设备选成了CPU0,或 GPU 版 PyTorch 没装成功)。修复:确认设备单元格填的是GPU0且能识别到显卡;纯 CPU 环境下建议同时把render_factor调低,缩短等待时间。

参数调优速查

参数影响
render_factor(图像默认 35,视频默认 21)决定色彩渲染分辨率。调大 → 细节更细腻、视频更稳,但显存翻倍、速度变慢;调小 → 更快、颜色更浓,画质差的老照片反而受益
artistic(True/False)True 用 Artistic,False 用 Stable;出图怪异时先切 False 再看
输入图像分辨率决定最终输出分辨率,输出与输入同尺寸,不改变渲染耗时
设备(GPU0/CPU0)决定速度量级;GPU 显存低于 4GB 时应调低render_factor

同一张图换不同render_factor的观感差异比换设备更大,拿不准时就用现成的对比单元格扫一遍数值。

收个尾

权重放对位置、环境装好之后,剩下的只是选模型和调render_factor:Artistic 负责好看,Stable 负责稳,Video 负责不闪。找两三张不同年代的照片,把三种模型各跑一遍对比出片,你会很快知道哪种风格适合自己那叠老照片。

【免费下载链接】DeOldifyA Deep Learning based project for colorizing and restoring old images (and video!)项目地址: https://gitcode.com/gh_mirrors/de/DeOldify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询