ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载
AI修复老照片,试试吧,不一定好~~哈哈
2023年4月曾用过ComfyUI,当时就感慨这个工具和虚幻的蓝图很像,以后肯定是专业人玩的。
2024年我写代码去了,AI做图没太关注,没想到,现在ComfyUI真的变成了工作室必备之物。
comfyui的安装方法当年就写在这里了,不再赘述。
《Windows安装Stable Diffusion ComfyUI及问题解决记录(注意不是Stable Diffusion WebUI)》
如果你要学习的话,建议先用WebUI,然后再学ComfyUI,这样会比较容易理解流程和节点。
本文作业流参考:https://openart.ai/workflows/whale_harmful_43/old-photo-reimagine—restoration/zCDY2MxghuM1ZZp1wx6M
网上盛传的ComfyUI Reactor Node
的下载地址已经停用了,本文使用官方当前最新版本~~~~坑很多。
1. 下载
常用的节点和模型太多,不在此处记录。需要你根据错误提示自行寻找所需内容。
天坑极多,慎入慎入啊。
-
节点:
- https://github.com/Gourieff/ComfyUI-ReActor
- https://github.com/somanchiu/ReSwapper
-
模型:
-
https://huggingface.co/datasets/Gourieff/ReActor/tree/main/models
最重要的是facerestore_models
目录下模型和inswapper_128.onnx
-
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
ControlNet
如果已经安装可以不必考虑,但必须要存在depth
、lineart
和openpose
模型。
-
2. 解压
-
节点:
-
custom_nodes/ComfyUI-ReActor
-
custom_nodes/ReSwapper
-
-
模型:
-
models\reswapper
-
models\facerestore_models
-
models\ControlNet
我的ComfyUI中的ControlNet引用到了WebUI中,你在配置时也需注意这一点。
-
3. 工作流
根据需要拖出节点
4. 配置
注意在与prompt中需要针对图片内容进行描述,比如这里提示原照片是军装 Military uniform
5. 出图
单个人物准确率较高,但一个画面出现多个人物就可能会失真。
6. 问题及补充
1. 问题一:在timm
中找不到ImageNetInfo
等函数
如果出现这个错误提示,那么问题出在 transformers.models.timm_wrapper
模块中,该模块依赖了 timm 库,但当前版本的 timm 中似乎缺少 ImageNetInfo
,导致导入失败。
试试用命令升级或安装缺失的timm
pip install --upgrade transformers
pip install --upgrade timm
生图时依旧错,卡在Reactor Fast Face Swap
节点,尝试去掉错误的语句
# 原句是这句,无论安装什么都无法使用
#if is_timm_available():
# from timm.data import ImageNetInfo, infer_imagenet_subset
try:
from timm import is_timm_available
except ImportError:
def is_timm_available():
return False
if is_timm_available():
# 如果timm可用,但没有这些具体函数,可以这样处理
try:
# 注释掉原来的导入
# from timm.data import ImageNetInfo, infer_imagenet_subset
# 直接定义一个空的类和函数
class ImageNetInfo:
def __init__(self):
pass
def infer_imagenet_subset():
return None
except ImportError:
ImageNetInfo = None
infer_imagenet_subset = None
这么写就可以跳过这一步了,可实际上后面还有几个天坑等着,而且这一步中如果仅有Reactor Fast Face Swap
节点,且该节点的属性face_restore_modle
有值,那么极可能出错,这时候可增加一个节点ReActor Face Booster
,由其属性boost model
选择codeformer
来让图像变高清且不出错。
可能是因为当前
reactor
所需的timm
版本较低,应该是个bug,未来会解决。
2. 问题二:提示找不到buffalo_l
此处 https://github.com/deepinsight/insightface/releases 选择 buffalo_l.zip
下载
之前下载reswapper
模型时就有个压缩包buffalo_l.zip
,解压到下面的目录即可,你能想象是这个目录?官网可没给任何提示。
models/
└── insightface/
└── models/
└── buffalo_l/ # 解压到这个文件夹
3. 问题三:提示找不到inswapper_128.onnx
等文件
把models\reswapper
中的内容复制到models\insightface
,注意是复制,因为reswapper
中的模型是提供给前端节点选择的,而执行时需要调用insightface
里的,我验证这个情况的过程是:
- 当我去掉
reswapper
中的模型文件,在节点里选择的时候该模型也就消失了, - 当我保留
reswapper
中的模型文件,去掉insightface
目录中的文件,则在节点选择时正常,而在生图时会提示不存在该模型。 - 我想未来版本会解决这个问题的,或者在哪里可以配置一下路径。
4. 问题四:提示找不到vit-base-nsfw-detector
模块
下载模型:https://huggingface.co/AdamCodd/vit-base-nsfw-detector/tree/main
放入models\nsfw_detector\vit-base-nsfw-detector
目录下~~,这么深层真是无语~~ 。好像不下载onnx中的内容也没出错。
5. 问题五:GFPGAN
出错
具体情况不记得了,反正如果遇到问题就去GFPGAN官网 https://github.com/TencentARC/GFPGAN 找答案。
我应该就执行了这两句:
pip install basicsr
pip install facexlib
6. 问题六:CodeFormer
出现问题
官网:https://github.com/sczhou/CodeFormer
我就执行了这句,之前遇到的codeformer
相关错误就没了。
pip3 install -r requirements.txt
7. 问题七:其它情况检查一遍
8. 问题八:pip
下载速度太慢
为了加速pip的下载,请用国内镜像的方式
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
# 永久配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
最后生图是成功了,但安装过程让我深深崩溃,现在学会遇到什么model出错,就去该model的github上去找答案,该安装安装。
总结一句话:多国混战,调这调那,尚未成熟,任重道远。
参考:
ComfyUI Reactor Node 安装和配置指南
人脸修复哪家强?GPEN,GFPGAN和CodeFormer三大神器对比
pip install速度太慢的多种解决方案