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

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_subsettry:from timm import is_timm_available
except ImportError:def is_timm_available():return Falseif is_timm_available():# 如果timm可用,但没有这些具体函数,可以这样处理try:# 注释掉原来的导入# from timm.data import ImageNetInfo, infer_imagenet_subset# 直接定义一个空的类和函数class ImageNetInfo:def __init__(self):passdef infer_imagenet_subset():return Noneexcept ImportError:ImageNetInfo = Noneinfer_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速度太慢的多种解决方案

相关文章:

ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载

AI修复老照片,试试吧,不一定好~~哈哈 2023年4月曾用过ComfyUI,当时就感慨这个工具和虚幻的蓝图很像,以后肯定是专业人玩的。 2024年我写代码去了,AI做图没太关注,没想到,现在ComfyUI真的变成了工…...

OpenEuler学习笔记(十一):OpenEuler上搭建LAMP环境

LAMP环境指的是Linux、Apache、MySQL(或MariaDB)和PHP的组合,下面为你介绍在OpenEuler上搭建LAMP环境的详细步骤: 1. 系统更新 首先要更新系统中的软件包,保证系统处于最新状态。 sudo dnf update -y2. 安装Apache…...

Mongodb 慢查询日志分析 - 1

Mongodb 慢查询日志分析 使用 mloginfo 处理过的日志会在控制台输出, 显示还是比较友好的. 但是如果内容较大, 就不方便查看了, 如果可以导入到 excel 就比较方便筛选/排序. 但是 mloginfo 并没有提供生成到 excel 的功能. 可以通过一个 python 脚本辅助生成: import pandas…...

MySQL面试题2025 每日20道【其四】

1、你们生产环境的 MySQL 中使用了什么事务隔离级别?为什么? 中等 在生产环境中,MySQL数据库的事务隔离级别通常由开发团队或数据库管理员根据应用的需求来设定。MySQL支持四种标准的事务隔离级别: 读未提交(Read Unc…...

微服务学习-Nacos 注册中心实战

1. 注册中心的设计思路 1.1. 微服务为什么会用到注册中心? 服务与服务之间调用需要有服务发现功能;例如订单服务调用库存服务,库存服务如果有多个,订单服务到底调用那个库存服务呢(负载均衡器)&#xff0…...

k8s服务StatefulSet部署模板

java 服务StatefulSet部署模板 vim templates-test.yamlapiVersion: apps/v1 kind: StatefulSet metadata:labels:app: ${app_labels}name: ${app_name}namespace: ${app_namespace} spec:replicas: ${app_replicas_count}selector:matchLabels:app: ${app_labels}template:la…...

07 区块链安全技术

概述 区块链的安全特性 区块链解决了在不可靠网络上可靠地传输信息的难题,由于不依赖与中心节点的认证和管理,因此防止了中心节点被攻击造成的数据泄露和认证失败的风险。 区块链安全防护的三大特点 共识机制代替中心认证机制数据篡改“一发动全身”…...

Adobe的AI生成3D数字人框架:从自拍到生动的3D化身

一、引言 随着人工智能技术的发展,我们见证了越来越多创新工具的出现,这些工具使得图像处理和视频编辑变得更加智能与高效。Adobe作为全球领先的创意软件公司,最近推出了一项令人瞩目的新技术——一个能够将普通的二维自拍照转换成栩栩如生的三维(3D)数字人的框架。这项技…...

dfs专题四:综合练习

key:画出决策树(就是找个简单例子模拟一下的树状决策图) dfs传参 or 全局变量: int, double等常量/比较小的变量,可以dfs参数传递vector等线性O(N)变量,要用全局变量 回溯&#x…...

【线性代数】列主元法求矩阵的逆

列主元方法是一种用于求解矩阵逆的数值方法,特别适用于在计算机上实现。其基本思想是通过高斯消元法将矩阵转换为上三角矩阵,然后通过回代求解矩阵的逆。以下是列主元方法求解矩阵 A A A 的逆的步骤: [精确算法] 列主元高斯消元法 步骤 1&am…...

大写——蓝桥杯

1.题目描述 给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。 输入描述 输入一行包含一个字符串。 输出描述 输出转换成大写后的字符串。 输入输出样例 示例 输入 LanQiao输出 LANQIAO评测用例规模与约定 对…...

HTML `<head>` 元素详解

在 HTML 文档中&#xff0c;<head> 元素是一个非常重要的部分&#xff0c;它包含了文档的元数据&#xff08;metadata&#xff09;和其他与文档相关的信息。虽然 <head> 中的内容不会直接显示在网页上&#xff0c;但它对网页的行为、样式和搜索引擎优化&#xff08…...

一文速通stack和queue的理解与使用

CSTL之stack和queue 1.stack1.1.stack的基本概念1.2.stack的接口 2.queue2.1.queue的基本概念2.2.queue的接口 3.priority_queue3.1.priority_queue的基本概念3.2.priority_queue的接口3.3.仿函数 4.容器适配器5.deque5.1.deque的简单了解5.2.deque的优缺点 &#x1f31f;&…...

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理&#xff0c;需要多层嵌套和处理默认事件和冒泡&#xff0c;具体实现过程直接上代码。 实现效果布局如下图 代码 <Formname"basic"form{form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish{on…...

Vue - toRefs() 和 toRef() 的使用

一、toRefs() 在 Vue 3 中,toRefs()可以将响应式对象的属性转换为可响应的 refs。主要用于在解构响应式对象时&#xff0c;保持属性的响应性。 1. 导入 toRefs 函数 import { toRefs } from vue;2. 将响应式对象的属性转换为 ref const state reactive({count: 0,message:…...

Python3 OS模块中的文件/目录方法说明九

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法&#xff1a;os.pipe() 方法、os.popen() 方法。 二. Python3 OS模块中的文件/目录方法 1. os.pipe() 方法 os.pipe() 方法用于创建一个管道, 返回…...

OpenCV文字绘制支持中文显示

OpenCV版本&#xff1a;4.4 IDE&#xff1a;VS2019 功能描述 OpenCV绘制文本的函数putText()不支持中文的显示&#xff0c;网上很多方法推荐的都是使用FreeType来支持&#xff0c;FreeType是什么呢&#xff1f;FreeType的官网上有介绍 FreeType官网 https://www.freetype.or…...

opengrok_windows_多工程环境搭建

目录 多工程的目录 工程代码下载和log配置 工程的索引 工程部署 工程测试 参考列表 多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下&#xff0c;下载工程代码&#xff0c;以下载pulseaudio的代码为例。 git clone gitgithub.com…...

基于ollama,langchain,springboot从零搭建知识库三【解析文档并存储到向量数据库】

安装环境 安装pgvector&#xff0c;先设置docker镜像源&#xff1a; vim /etc/docker/daemon.json {"registry-mirrors": ["https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com","https://mirror.ccs.tencentyun.com",&…...

Elasticsearch 和arkime 安装

安装一定要注意版本号&#xff0c;不然使用不了 这里Ubuntu使用ubuntu-20.04.6-desktop-amd64.iso elasticsearch这里使用Elasticsearch 7.17.5 | Elastic arkime这里使用wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/arkime_3.4.2-1_amd64.deb 大家想…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...