HiDT 快速入门:10 分钟用命令行把白天照片变成日落与夜景
【免费下载链接】HiDTOfficial repository for the paper "High-Resolution Daytime Translation Without Domain Labels" (CVPR2020, Oral)项目地址: https://gitcode.com/gh_mirrors/hi/HiDT
想不想把一张普普通通的白天照片,一键变成橙红夕阳、深邃夜景甚至璀璨星空?HiDT(High-Resolution Daytime Translation)正是为此而生的开源 AI 图像转换工具——它在不需要任何领域标签的前提下,就能把白天照片转成日落与夜景等风格,并输出高分辨率成品。本文是一份 HiDT 快速入门教程,手把手带你 10 分钟完成环境安装与命令行推理,把白天照片转夜景变成一行命令的事。
HiDT 是什么?为什么它能做出自然夜景
HiDT 是 CVPR 2020 Oral 论文《High-Resolution Daytime Translation Without Domain Labels》的官方 PyTorch 实现。它的核心思路是把图像解耦为“内容”与“风格”两部分:
- 内容编码器提取场景结构,风格编码器提取光线与色调;
- 解码器通过 AdaIN 把日落、夜晚的风格注入白天照片;
- 再配合一个轻量增强网络(G_enh)把 256px 结果升级到 1024×1024 高清画质。
正因为内容与风格分离,HiDT 才能做到“一张白天图 + 任意风格参考图 = 自然逼真的新照片”,而不是生硬的调色滤镜。推理核心类见 hidt/style_transformer.py,增强网络见 hidt/networks/enhancement/RRDBNet_arch.py。
第一步:环境安装(约 3 分钟)
HiDT 需要 Python 3.7 及以上,推荐使用 conda 创建独立环境,避免依赖冲突。复制下面这 4 条命令即可完成“克隆 + 安装”:
conda create -n hidt python=3.7 conda activate hidt git clone https://gitcode.com/gh_mirrors/hi/HiDT cd HiDT pip install -r requirements.txt依赖非常精简,完整清单见 requirements.txt,核心只有 PyTorch、torchvision、numpy、PyYAML、Pillow 与 tqdm。克隆下来的仓库已自带示例图片和全部预训练权重,无需再下载任何模型。
第二步:一行命令把白天照片转成日落夜景
仓库自带处理脚本infer_on_folders.py,只需指定“内容图文件夹”“风格图文件夹”和配置文件即可批量转换。直接复制下面的命令运行:
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd):${PYTHONPATH} \ python ./bin/infer_on_folders.py \ --content-dir ./images/daytime/content/ \ --style-dir ./images/daytime/styles/ \ --cfg-path ./configs/daytime.yaml \ --chk-path ./trained_models/generator/daytime.pt \ --enh-path ./trained_models/enhancer/enhancer.pth \ --enhancement generator几个关键参数的含义如下:
| 参数 | 作用 |
|---|---|
--content-dir | 白天照片所在文件夹,示例见 images/daytime/content/ |
--style-dir | 日落/夜景风格参考图文件夹,示例见 images/daytime/styles/ |
--cfg-path | 模型配置文件 configs/daytime.yaml |
--chk-path | 生成器权重 trained_models/generator/daytime.pt |
--enh-path | 高清增强权重 trained_models/enhancer/enhancer.pth |
--enhancement | generator启用高清增强,fullconv为纯卷积快速模式 |
运行结束后,输出目录里就是一张张从白天变身日落与夜景的高清照片。下面的对比图可以直观感受不同场景的转换效果:
第三步:风格插值,玩出日落→夜景的丝滑过渡
HiDT 最炫的功能之一就是风格插值:把两个风格向量(比如“日落”与“夜晚”)按不同比例混合,就能生成从黄昏一路渐变到深夜的连续画面,非常适合做延时摄影、短视频素材。
同样地,它还可以在“阴天”与“晴天”之间做光线插值,一键把灰蒙蒙的照片变得通透明亮:
想手动控制插值比例?可以用官方 Colab 版 Notebook 直接改参数试玩,入口见 notebooks/HighResolutionDaytimeTranslation.ipynb,无需配置本地环境。
第四步:换种玩法——把照片变成世界名画风格
除了日落夜景,HiDT 还附带了一个用 WikiArt 画作训练的模型,能让你的照片拥有油画、印象派等艺术风格。只需把命令中的配置与权重换成 wikiart 版本:
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd):${PYTHONPATH} \ python ./bin/infer_on_folders.py \ --content-dir ./images/wikiart/content/ \ --style-dir ./images/wikiart/styles/ \ --cfg-path ./configs/wikiart.yaml \ --chk-path ./trained_models/generator/wikiart.pt \ --enh-path ./trained_models/enhancer/enhancer.pth \ --enhancement generator对应的配置见 configs/wikiart.yaml,风格参考图见 images/wikiart/styles/。对比两个配置文件可以发现,wikiart 模型的风格编码维度更高(output_dim: 12),能承载更丰富的艺术风格信息。
进阶:高分辨率增强管线是怎么工作的
为什么 HiDT 能输出高清夜景而不糊?秘密在于它的分块增强管线:先把低分辨率结果切成若干重叠小块,逐块送入增强网络(G_enh)做超分,再由合并网络无缝拼回整图。示意图如下:
这也解释了为什么 trained_models/enhancer/enhancer.pth 是独立的一个权重文件——它是 HiDT 高清输出的关键一环。
常见问题速查
Q:没有 GPU 能跑吗?可以,但推理会很慢,且 1024×1024 高清增强建议至少 6GB 显存。
Q:自己的照片怎么用?把照片放进--content-dir指向的文件夹即可,风格图同理,格式支持常见的 jpg/png。
Q:输出效果有伪影怎么办?生成器训练时按 256px 推理,建议保持inference_size=256,更高分辨率反而可能出现伪影。
总结
从安装到出图,HiDT 的全流程不到 10 分钟:克隆仓库 → 装依赖 → 跑一条命令。无论是白天照片转日落夜景、风格插值,还是艺术风格迁移,它都能给出高分辨率、观感自然的结果。赶紧动手试试,用命令行把你的白天照片变成夜幕下的美景吧!
【免费下载链接】HiDTOfficial repository for the paper "High-Resolution Daytime Translation Without Domain Labels" (CVPR2020, Oral)项目地址: https://gitcode.com/gh_mirrors/hi/HiDT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考