常见报错问题,定位报错原因,解决报错思路。
前言:
ComfyUI作为一个专业性很强的工具,在使用过程中不可避免地会出现特别多的报错,而没有编程经验会导致对错误的定位异常困难,如果不知道错误的原因那么根本没有办法去解决这个问题,所以我收集常见的各种错误以及使用过程中可能遇到的问题,进行问题的汇总和分类,一方面是在该错误出现的时候大家可以自己解决,另一方面也是最重要的一方面,是__建立遇到问题,定位问题,解决问题的思路__。
经过部分问题的总结,我将所有的问题分为以下五类,分别是__基础问题,工作流问题,网络问题,模型问题,环境问题__,下面将对着五个问题进行展开讲解,并给出部分示例,希望大家通过该文章的学习,能够建立起自己解决问题的思路。
一、基础问题
该问题没有报错,但是结果却非常不好,首先从宏观来看,工作流是简单的文生图工作流,使用到了CN来进行出图,工作流可以跑通那么就不存在模型不匹配的问题,那么问题就大概率出现在CN模型,而这里用到的CN模型是不是线稿的模型?通过该思考过程,就可以定位到问题。
关于CN模型的使用请参考该视频。
该错误为典型的工作流节点缺失错误,当工作流中出现节点缺失有两种情况,第一种:可以通过manager管理器进行安装的插件,第二种:manager管理器识别不到确实的插件。
第一种情况,通过manager管理器进行插件的安装,请保证自己的网络没问题!
第二种情况,找到你下载该工作流的地址,去通过预览工作流定位插件,或者去询问其他可能知道的人。
插件安装请参考该视频(近几期新手教程会出)
该问题为典型的内存、显存不足问题,在新手课有讲过关于内存,显存,磁盘的内容,这种报错并不是因为显存不足的问题,可以通过增加内存解决,而内存除了硬件增加内存条之外,可以通过增加虚拟内存解决,请参考该视频。
首先定位到array,一般情况下我们的图片输入之后会将它转换成矩阵(向量)来进行计算,所以说arry指的就是矩阵,那么zero就是0的意思,zero-size arry就是0尺寸的图片,那肯定有问题,就通过查看工作流到底是因为蒙版不存在还是图片裁剪后为0了,通过该方式解决问题。
这个错误首先可以看到是报错CPU和CUDA,我在新手课讲了cpu和cuda是什么,可以通过翻译知道“数据放到了两个位置,没有办法一起计算了”,所以!在工作流中大概率存在一个位置需要我们制定数据放到那里,而最典型的就是SAM节点的探测器,此时选择prefer GPU即可解决该问题。
二、工作流问题
首先看到Ksampler就应该知道是该节点出现的错误,可以看到有个missing,意思就是缺少 ,那么缺少就大概率该节点缺少必要的输入,所以将缺少的地方连就行了。
这个是你在manager管理器安装完缺失的插件之后,重新打开依然没有导入,那么就存在两种可能。
第一种:网络不行根本没下载好插件,但是!他会在你的custom_nodes文件夹创建一个同名的文件夹,导致你的manager管理器能够检索到这个文件夹,因为里面是空的,所以会报错没办法导入。删除该文件夹重新下载。
第二种:插件的源码都下载完了,但是你的环境不足以支撑这个插件运行,你需要安装缺失的环境,这个时候就需要在启动ComfyUI的时候,观察后台的命令行去定位到错误的原因,针对性解决。
该问题是因为你缺少节点,却点击了运行工作流,所以报错你缺少节点,通过manager管理器安装就行。
list就是列表的意思,比如在ksampler里面可以选择不同的采样器,那么能给你选择的哪些采样的就是以列表的形式存储的,假如出现了BUG,你选的是false,但是列表里没有这个采样器,他就会报出以下错误,你重新选择即可解决这个问题。
三、网络问题
这是典型的网络问题代表,看到http就定位为网络问题。从报错就可以看到无法连接,解决办法就是把网络调整好,如果自己不会就去淘宝找人给你解决一下。
报错翻译就是本地不存在文件,需要检查网络链接让它可以自动下载,看到connection就定位为网络问题,去解决就行了。
看到connection就想到是网络问题,具体原因是因为网络连接中断,导致下载的文件尺寸不匹配。
看最下面的,看到url就是网络问题,还是同样的去解决网络问题。
看到ssl,unable to access就定位为网络问题。
四、模型问题
首先看到报错为“No such file xx”就可以知道这个是缺少文件,后面给出的就是文件的路径,所以可以到huggingface去尝试查找这个模型,因为文件后缀是.pth所以说是模型文件,下载后放置到指定位置就行。
首先看到ckpt_name就要知道这个是checkpoint(大模型)的意思,那么not in list我在上面讲过了,就是你的列表里面不存在这个模型,解决办法就是要么换一个模型,要么去下载指定名称的模型,模型可以去civitai下载。
看到“NoneType”和“Checkpoint”就要联系到会不会是大模型的问题,从下面的报错可以看到是从模型中使用.lower()方法,但是不存在,所以说很有可能就是大模型的问题,宏观来说就是模型不匹配。
关于这个问题我在讲模型架构的时候讲过了,为什么mat尺寸不匹配是模型的问题了。
可以看到还是尺寸不匹配,但是这里写了是模型的参数不匹配,那么问题就是处在模型不匹配。
看到“MotionModelPatcher”这种指向性很强的名字,第一反就是插件或者模型,然后可以看到报错为这个类没提供“model_keys”,而插件只是拿来调用模型起作用的,并不会让插件提供什么其他的操作,所以说这个报错就可以定位到是模型的问题。
这个报错就很明显,翻译出来就是没有运动模型。那就按照操作去下载模型放到指定的位置就行。
报错除了红色框就是紫色框,紫色框基本就是缺少模型的问题。
五、环境问题
看到“No module”第一反应就是环境缺失,除此之外就是插件源码的问题,大部分情况就是你的python环境不全,缺少这个module,那么就通过pip install来安装缺失的环境。
这个问题很少见,但是比较难以解决,可以看到这安装的是dlib环境,在安装过程中buliding wheel的时候出现了错误,这是缺少python环境更底层的包编译工具导致的,具体可以看我在新手可讲的该视频,解决方法有两个。
第一个:去下载别人编译好的包,通过pip工具自己安装下载好的预编译文件
第二个(不推荐):安装缺少的编译工具,可能一个visual studio还不够,较稳困难
可以通过翻译知道,你已经安装torchaudio,但是他跟你现在安装的torch版本不匹配,那么你就卸载这个torchaudio重新再安装,这样就能够自动检索合适的版本进行安装。
这里可以看到是缺少一些东西,没有办法导入,定位到最后的报错为__init__.py,这个文件夹是插件作者写代码的时候会有一个常量的导入代码,所以这个是插件的根本文件,如果这个都缺少,那肯定是这个插件并没有下载成功。
重新安装这个插件即可。
从报错前可以发现,是module没有提供xxx,而这个module前面是comfy,记住这个comfy是comfyui官方源码提供的一个东西,所以第一反应应该是“是不是comfyui版本太低了,所以这东西还没更新进去”,那么你通过更新comfyui就可以解决这个问题。