当前位置: 首页 > article >正文

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如果已经安装可以不必考虑,但必须要存在depthlineartopenpose模型。

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速度太慢的多种解决方案


http://www.kler.cn/a/517260.html

相关文章:

  • 红黑树实现
  • SkyWalking介绍
  • 二叉树(了解)c++
  • Spring 源码学习(七)——注解后处理器-2
  • Jetson nano 安装 PCL 指南
  • 基于Python机器学习的双色球数据分析与预测
  • LangChain + llamaFactory + Qwen2-7b-VL 构建本地RAG问答系统
  • 利用Python爬虫与1688 API接口:高效获取商品搜索数据
  • Docker 实现MySQL 主从复制
  • 搭建CANN开发+运行环境实验报告
  • SpringBoot篇 单元测试 理论篇
  • DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)
  • Vue3 30天精进之旅:Day01 - 初识Vue.js的奇妙世界
  • 豆瓣API-我在IDE上标记想看的电影(低配版API文档)
  • 第6章 数据结构—列表与列表项讲解--总结
  • Android Studio安装配置
  • pyserial和pymodbus
  • HBase基础shell命令
  • 【深度学习】常见模型-卷积神经网络(Convolutional Neural Networks, CNN)
  • 最新! 在 Linux上搭建Jenkins环境!
  • SQL注入漏洞之基础数据类型注入 字符 数字 搜索 XX 以及靶场实例哟
  • 信创产品测试包括哪些内容?有哪些常用的信创测试工具?
  • 校验收货地址是否超出配送范围实战3(day09)
  • C# volatile 使用详解
  • 如何解压rar格式文件?8种方法(Win/Mac/手机/网页端)
  • DBO朴素贝叶斯分类预测matlab代码