ComfyUI Mixlab 插件 Whisper.available False 报错修复
在 ComfyUI 中安装 Mixlab Nodes 插件后,控制台显示其他节点正常,但 Whisper.available 为 False。即使环境里安装了 openai-whisper 和 faster-whisper,问题依然可能存在。
本文分享如何通过修改源码进行深度 Debug,并修复路径逻辑漏洞。
1. 深度排查:让报错'开口说话'
Mixlab 的默认日志只提示 False,不显示原因。为了抓出真凶,我们需要修改插件的入口文件:
- 文件路径:
custom_nodes\comfyui-mixlab-nodes\__init__.py - 修改位置:约第 1455-1456 行(Whisper 检测块)。
- 操作:将原本沉默的
except块改为打印完整堆栈。
# 修改前
except Exception as e:
logging.info('Whisper.available False')
# 修改后 (增加 Traceback 打印)
except Exception as e:
import traceback
logging.info(f'Whisper.available False. Reason: {e}')
traceback.print_exc()
修改后重启,控制台显露真凶:
FileNotFoundError: [WinError 3] 系统找不到指定的路径。
2. 核心原因:路径初始化崩溃
排查发现,该问题并非依赖缺失,而是 nodes/Whisper.py 的代码健壮性不足:
- 代码在初始化时会强制扫描
models/whisper文件夹。 - 如果用户尚未创建该目录,
os.listdir()会直接抛出异常导致模块加载失败。
3. 终极解决方案
第一步:手动创建目录
在你的 ComfyUI 的 /models 目录下,手动新建文件夹:whisper。
第二步:修复源码逻辑漏洞
打开 custom_nodes\comfyui-mixlab-nodes\nodes\Whisper.py,在 model_sizes 扫描逻辑前加入自动创建目录的判断。
# 确保目录存在,防止 os.listdir 报错抛出 WinError 3
if not os.path.exists(whisper_model_path):
os.makedirs(whisper_model_path)
model_sizes = [
d d os.listdir(whisper_model_path)
os.path.isdir(os.path.join(whisper_model_path, d)) os.path.isfile(os.path.join(os.path.join(whisper_model_path, d), ))
]


