最近很多手机厂商都在系统中内置了拍照后AI自动提高清晰度的功能,我也在准备搭建自己的一个图片修复优化工具。前几天刚好看到 SURIR 模型感觉效果不错,于是用熟悉的 ComfyUI 搭建了一个图像放大修复工作流。
ComfyUI 是一个基于节点流程式的stable diffusion AI 绘图工具WebUI, 你可以把它想象成集成了stable diffusion功能的substance designer, 通过将stable diffusion的流程拆分成节点,实现了更加精准的工作流定制和完善的可复现性。但节点式的工作流也提高了一部分使用门槛。如果你玩过类似虚幻引擎之类地蓝图系统,相信你对这样的工作流程一定不会陌生。
目前主流的 upscale 的方法有两种:
区别在于,Upscale pixel 不会改变原图信息,而Upscale latent可以更加清晰,但是是对部分区域进行重绘做到的。
前几天刚好看到一个 SURIR 模型, 它利用了生成先验和模型放大的力量。利用多模态技术和先进的生成先验,SUPIR标志着智能和逼真的图像恢复的重大进步。
官方的效果
其他博主的测试结果,最右为 SUPIR 的效果
有人基于SUPIR封装了ComfyUI的节点,可以让我们更方便地使用模型
https://github.com/kijai/ComfyUI-SUPIR
ComfyUI 提供了 portable 和 正常版本。portable 自带了一个 python 运行器。我这里选择了 portable 版本
https://link.zhihu.com/?target=https%3A//github.com/comfyanonymous/ComfyUI
这一步只需要用git clone 到 custom_nodes目录即可。如果不会使用git,直接下载到该目录下也可。
如果你安装的是便携版本,在ComfyUI_windows_portable目录下
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-SUPIR\requirements.txt
python_embeded\python.exe -m pip install -U xformers --no-dependencies
如果你依赖本机的 python 环境,在
\ComfyUI\custom_nodes\ComfyUI-SUPIR目录中,执行
pip install -r requirements.txt
pip install -U xformers --no-dependencies
放置模型在 ComfyUI/models/checkpoints
SUPIR提供了两个模型,SUPIR-v0Q和SUPIR-v0F。
SUPIR-v0Q:论文提供的默认训练设置, 大多数情况下,高泛化和高图像质量。
SUPIR-v0F:使用光退化设置进行训练。Stage1 编码器 SUPIR-v0F 在面对光线退化时仍保留更多细节。
选择哪个模型取决于你的应用场景,在大多数情况下,SUPIR-v0Q已经够用。
除此之外,你还需要一个 SDXL模型。 SDXL 是 Stable Diffusion XL 的簡稱,顧名思義它的模型更肥一些,但相對的繪圖的能力也更好。。目前 ComfyUI-SUPIR 节点只支持 基本模型。
浏览器打开本地 8188 端口即可看到 ComfyUI 的界面
右键可以看到 SURIR 的节点,说明已经安装成功。
选择 image 节点,搭建一个基本的工作流。
模型的测试效果,大体上还是不错的,在保持原图特征的情况下,清晰度提高了不少。
torch.cuda.OutOfMemoryError: Allocation on device 0 would exceed allowed memory. (out of memory)
Currently allocated : 11.31 GiB
Requested : 6.25 MiB
Device limit : 12.00 GiB
Free (according to CUDA): 0 bytes
PyTorch limit (set by user-supplied memory fraction)
: 17179869184.00 GiB
这种情况下需要禁止系统的 Sysmem Fallback Policy.