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. 下载

常用的节点和模型太多,不在此处记录。需要你根据错误提示自行寻找所需内容。

天坑极多,慎入慎入啊。

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

python 复制代码
pip install --upgrade transformers
pip install --upgrade timm

生图时依旧错,卡在Reactor Fast Face Swap节点,尝试去掉错误的语句

python 复制代码
# 原句是这句,无论安装什么都无法使用
#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,解压到下面的目录即可,你能想象是这个目录?官网可没给任何提示。

python 复制代码
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 找答案。

我应该就执行了这两句:

python 复制代码
pip install basicsr
pip install facexlib

6. 问题六:CodeFormer 出现问题

官网:https://github.com/sczhou/CodeFormer

我就执行了这句,之前遇到的codeformer相关错误就没了。

python 复制代码
pip3 install -r requirements.txt

7. 问题七:其它情况检查一遍

8. 问题八:pip 下载速度太慢

为了加速pip的下载,请用国内镜像的方式

python 复制代码
# 临时使用
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速度太慢的多种解决方案

相关推荐
果冻人工智能2 分钟前
再谈AI与程序员: AI 写的代码越来越多,那我们还需要开发者吗?
人工智能
大脑探路者6 分钟前
【PyTorch】继承 nn.Module 创建简单神经网络
人工智能·pytorch·神经网络
无代码Dev27 分钟前
如何使用AI去水印(ChatGPT去除图片水印)
人工智能·ai·ai-native
达柳斯·绍达华·宁1 小时前
自动驾驶04:点云预处理03
人工智能·机器学习·自动驾驶
wgc2k1 小时前
吴恩达深度学习复盘(4)神经网络的前向传播
人工智能·深度学习
屎派克1 小时前
神经网络知识
人工智能·深度学习·神经网络
补三补四1 小时前
k近邻算法K-Nearest Neighbors(KNN)
人工智能·机器学习
AI绘画月月1 小时前
AI绘画 | Stable Diffusion 图片背景完美替换
图像处理·人工智能·计算机视觉·ai作画·stable diffusion·midjourney·sd
阿里云大数据AI技术1 小时前
阿里云 AI 搜索开放平台新发布:增加 QwQ 模型
人工智能·云计算
Toky丶1 小时前
【文献阅读】Vision-Language Models for Vision Tasks: A Survey
人工智能·语言模型·自然语言处理