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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67084.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

思科交換機telnet配置案例

目錄 1.telnet簡述2.網絡拓撲3.設備說明4.網絡配置4.1 電腦PC ip設置4.2 網絡交換機telnet配置 5.小結 1.telnet簡述 Telnet是遠程登錄服務的一個協議,該協議定義了遠程登錄用戶與服務器交互的方式。它允許用戶在一臺聯網的計算機上登錄到一個遠程分時系統中&#…

WPS數據分析000006

一、排序 開始→ 排序 同文件→選項→自定義序列→輸入序列 二、篩選 高級篩選 條件區域要與列表區域一樣。 三、條件格式

vofa++使用方法

控件區可以添加控件用來啊多樣顯示 點擊一個控件然后右鍵可以選擇要添加顯示的數據,點all表全部顯示, 點auto可以自動布局 要用控件需要選擇協議,不知道協議具體格式可以點擊問號看看,并且最好用printf重定義來實現 比如我要實現F…

達夢拷貝DM_HOME的復制安裝

近期一個項目需求,需要在沒有安裝包的情況下,將達夢數據庫安裝到虛機上(生產機上安裝了達夢),故采用直接打包生產機DM_HOME的方式拷貝至虛機,再依次執行達夢的部分指令完成安裝。以下為驗證的步驟&#xff…

tomcat的accept-count、max-connections、max-threads三個參數的含義

tomcat的accept-count、max-connections、max-threads三個參數的含義 tomcat的accept-count、max-connections、max-threads三個參數的含義 max-connections:最大連接數 最大連接數是指,同一時刻,能夠連接的最大請求數 需要注意的是&#x…

ui文件轉py程序的工具

源博客連接: PyCharm中利用外部工具uic轉成的py文件,里面全是C代碼,并非python類型的代碼,導致大量報錯。。。_pyside6-uic為什么把ui轉為了c-CSDN博客 如果想把ui文件轉為py文件,首先設置pycharm的外部工具&#xf…

hedfs和hive數據遷移后校驗腳本

先談論校驗方法,本人騰訊云大數據工程師。 1、hdfs的校驗 這個通常就是distcp校驗,hdfs通過distcp遷移到另一個集群,怎么校驗你的對不對。 有人會說,默認會有校驗CRC校驗。我們關閉了,為什么關閉?全量遷…

61,【1】BUUCTF WEB BUU XSS COURSE 11

進入靶場 左邊是吐槽,右邊是登錄,先登錄試試 admin 123456 admiin# 123456 admin"# 123456 不玩了,先去回顧下xss 回顧完就很尷尬了,我居然用SQL的知識去做xss的題 重來 吐槽這里有一個輸入框,容易出現存儲型…

海外問卷調查如何影響企業的經營?在品牌建設中有何指導意義?

市場調查的定義:通過科學的方法,有目的地、系統地搜集整理一些市場信息,其目的在于了解當下市場現狀和發展前景,為企業生產和品牌打造提供一些科學的指導意見,這是任何大企業、中小企業、初創企業都必須重視的一個重要…

STM32新建不同工程的方式

新建工程的方式 1. 安裝開發工具 MDK5 / keil52. CMSIS 標準3. 新建工程3.1 寄存器版工程3.2 標準庫版工程3.3 HAL/LL庫版工程3.4 HAL庫、LL庫、標準庫和寄存器對比3.5 庫開發和寄存器的關系 4. STM32CubeMX工具的作用 1. 安裝開發工具 MDK5 / keil5 MDK5 由兩個部分組成&#…

idea maven本地有jar包,但還要從遠程下載

idea 中,java 工程執行 maven reimport,報jar報無法下載。 我奇了個怪,我明明在本地倉庫有啊,你非得從遠程下載? 我從供應商那里拿來的,遠程當然沒有了。 這太奇葩了吧,折騰好久不行。 后來…

springboot 調用 c++生成的so庫文件

一、創建c文件 SoTest.h #pragma once class SoTest {int Add(int a,int b); };SoTest.cpp #include "SoTest.h"int SoTest::Add(int a, int b) {return a b; }二、創建so文件 /home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so 三、java代碼 Maven依…

Windows 靶機常見服務、端口及枚舉工具與方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS

在滲透測試中,Windows 靶機通常會運行多種服務,每種服務都有其默認端口和常見的枚舉工具及方法。以下是 Windows 靶機常見的服務、端口、枚舉工具和方法的詳細說明: 1. SMB(Server Message Block) 端口 445/TCP&…

250125-package

1. 定義 包就是文件夾,作用是在大型項目中,避免不同人的編寫的java文件出現同名進而導致報錯;想象一個場景,在一個根目錄中,每一個人都有自己的一個java文件夾,他可以將自己編寫的文件放在該文件夾里&…

系統思考—動態問題分析

“不是解決問題,而是根本改變它的方式,才能真正創造持久的成功。”——彼得德魯克 在很多情況下,企業面對問題時,總會急于尋找解決方案,但這些方案往往只是暫時的“應急措施”。它們看似有效,卻難以從根本…

ASP.NET Core WebAPI的異步及返回值

目錄 Action方法的異步 Action方法參數 捕捉URL占位符 捕捉QueryString的值 JSON報文體 其他方式 Action方法的異步 Action方法既可以同步也可以異步。異步Action方法的名字一般不需要以Async結尾。Web API中Action方法的返回值如果是普通數據類型,那么返回值…

系統架構設計師教材:信息系統及信息安全

信息系統 信息系統的5個基本功能:輸入、存儲、處理、輸出和控制。信息系統的生命周期分為4個階段,即產生階段、開發階段、運行階段和消亡階段。 信息系統建設原則 1. 高層管理人員介入原則:只有高層管理人員才能知道企業究竟需要什么樣的信…

Golang Gin系列-5:數據模型和數據庫

在這篇Gin教程的博客中,我們將探索如何將模型和數據庫與Gin框架無縫集成,使你能夠構建健壯且可擴展的web應用程序。通過利用流行的庫并遵循最佳實踐,你將學習如何定義模型、建立數據庫連接、執行CRUD操作以及確保基于gin的項目中的數據完整性…

Moretl FileSync增量文件采集工具

永久免費: <下載> <使用說明> 我們希望Moretl FileSync是一款通用性很好的文件日志采集工具,解決工廠環境下,通過共享目錄采集文件,SMB協議存在的安全性,兼容性的問題. 同時,我們發現工廠設備日志一般為增量,為方便MES,QMS等后端系統直接使用數據,我們推出了增量采…

SWPU 2022 新生賽--web題

奇妙的MD5 進入靶場 然我們輸入一個特殊的字符串&#xff0c;然后我到處翻了翻&#xff0c;發現有提示 在MD5中有兩個特殊的字符串 0e215962017 //MD5加密后弱比較等于自身 ffifdyop //MD5加密后變成萬能密碼 這里明顯就是萬能密碼了 輸入之后就來到了這個頁…