彻底解决 ComfyUI Mixlab 插件 Whisper.available False 的报错

彻底解决 ComfyUI Mixlab 插件 Whisper.available False 的报错
https://github.com/MixLabPro/comfyui-mixlab-nodes

彻底解决 ComfyUI Mixlab 插件 Whisper.available False 的报错

在 ComfyUI 中安装 Mixlab Nodes 插件后,控制台显示其他节点正常,便 Whisper.available False。即使环境里安装了 openai-whisperfaster-whisper,问题依然可能存在。

Whisper.available False

本文将分享如何通过修改 __init__.py 进行深度 Debug,并修复 Whisper.py 中的路径逻辑漏洞。


1. 深度排查:让报错“开口说话”

Mixlab 的默认日志只提示 False,不显示原因。为了抓出真凶,我们需要修改插件的入口文件:

  • 文件路径custom_nodes\comfyui-mixlab-nodes\__init__.py
Win_ComfyUI\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] 系统找不到指定的路径。: '...\\models\\whisper'


2. 核心原因:路径初始化崩溃

排查发现,该问题并非依赖缺失,而是 nodes/Whisper.py 的代码健壮性不足

  1. 代码在初始化时会强制扫描 models/whisper 文件夹。
  2. 如果用户尚未创建该目录,os.listdir() 会直接抛出异常导致模块加载失败。

3. 终极解决方案

第一步:手动创建目录

在你的 ComfyUI 的 /models 目录下,手动新建文件夹:whisper


第二步:修复源码逻辑漏洞

打开 custom_nodes\comfyui-mixlab-nodes\nodes\Whisper.py,在 model_sizes 扫描逻辑前加入自动创建目录的判断。

Win_ComfyUI\custom_nodes\comfyui-mixlab-nodes\nodes\Whisper.py

# 确保目录存在,防止 os.listdir 报错抛出 WinError 3 if not os.path.exists(whisper_model_path): os.makedirs(whisper_model_path) # 此时再执行扫描逻辑,即使文件夹为空也只会返回空列表,不会导致加载失败 model_sizes = [ d for d in os.listdir(whisper_model_path) if os.path.isdir(os.path.join(whisper_model_path, d)) and os.path.isfile(os.path.join(os.path.join(whisper_model_path, d), "config.json")) ] 

第三步:正确放置 CTranslate2 模型

由于代码检查 config.json,我们需要下载 Faster-Whisper 格式的模型(如 Systran/faster-whisper-tiny)。

https://huggingface.co/collections/Systran/faster-whisper
https://huggingface.co/Systran/faster-whisper-tiny/tree/main
# Download the model hf download Systran/faster-whisper-tiny
  • 工具:可以使用 hf-mirror 镜像下载。
  • 存放:将模型文件(model.bin, config.json 等)放在 models/whisper/faster-whisper-tiny/ 下。

正确的文件结构应该是:

H:\PythonProjects1\Win_ComfyUI\models\whisper\faster-whisper-tiny\ ├── config.json ├── model.bin ├── tokenizer.json ├── vocabulary.txt └── README.md (可选)

Mixlab 的这个节点通常支持以下两类模型:
• Faster-Whisper 模型:例如 tiny, base, small, medium, large-v3 的 CTranslate2 格式文件夹。
• OpenAI 原版模型:.pt 格式的文件。
可以先尝试方案 A,重启后看看控制台是否变成了 Whisper.available True。


确保环境里已经安装了 faster-whisper,接下来最关键的一步就是放置模型文件。由于代码逻辑里有一个硬性条件:模型文件夹内必须包含 config.json,这意味着它需要 Faster-Whisper (CTranslate2) 格式的模型。

如何获取并放置模型?

    • faster-whisper-tiny (体积小,速度极快)
    • faster-whisper-base (平衡性好)
    • faster-whisper-large-v3 (精度最高,中文识别强)
  1. 刷新节点:放好之后,你可以在 ComfyUI 中添加 Load Whisper Model ♾️Mixlab 节点,在下拉菜单里就能看到你刚放进去的文件夹名字了。

正确的文件结构:需要将下载的文件夹解压到 H:\PythonProjects1\Win_ComfyUI\models\whisper 目录下。结构必须如下所示: 

H:\PythonProjects1\Win_ComfyUI\models\whisper\ └── large-v3/ <-- 文件夹名随意,但里面必须有 json ├── config.json <-- 必须存在,否则节点识别不到 ├── model.bin ├── tokenizer.json └── vocabulary.json 

下载模型:

https://huggingface.co/Systran

你可以从 Hugging Face 的 Systran 页面 下载。常用的模型包括:



4. 验证修复

重启 ComfyUI 后查看控制台日志输出以验证修复:

Whisper.available

可以看到控制台显示 Whisper.available 后面没有 False(或者显示了 True),就说明模块已经绕过了路径检查,成功加载到了 ComfyUI 中。


5. 经验总结

在开发 ComfyUI 插件或维护 Python 环境(如 EPGF 框架)时:

  1. Debug 优先:修改 __init__.py 打印 traceback 是定位插件加载问题的万能钥匙。
  2. 路径防御性编程:使用 os.listdir 前必做 os.path.existsos.makedirs

博主: AITechLab

时间: 2026年1月16日


Read more

easyplayer 前端播放器

easyplayer 前端播放器

文章目录 * 概要 * 整体架构流程 * 技术名词解释 * 技术细节 * 小结 概要 需求是对接flv视频流,本来打算用b站的flv去做,做出来以后发现延迟高,加载慢,然后查找了一下,找到了这个。  EasyPlayer.js集播放http-flv, hls, websocket 于一身的H5视频直播/视频点播播放器, 使用简单, 功能强大。 功能说明 *  支持 MSE H264和H265硬解码; *  支持 WebCodec H264和H265硬解码; *  支持 WASM H264和H265硬解码/软解码; *  支持 m3u8/HLS (H265/H265)播放; *  支持 Mpeg4格式(H264)播放; *  支持 HTTP-FLV/WS-FLV (H265/H265)播放; *  支持 HTTP-FMP4/

前端学习日记 - 前端函数防抖详解

前端学习日记 - 前端函数防抖详解

前端函数防抖详解 * 为什么使用防抖 * 函数防抖的应用场景 * 函数防抖原理与手写实现 * 原理 * 手写实现 * 使用 Lodash 的 \_.debounce * 完整示例:防抖搜索组件 * 结语 在现代 Web 应用中,函数防抖(debounce)是一种常见且高效的性能优化手段,用于限制高频事件触发下的函数调用次数,从而减少不必要的计算、网络请求或 DOM 操作。本文将从“为什么使用防抖”切入,介绍典型的应用场景,深入解析防抖原理,并给出从零实现到在实际项目中使用 Lodash 的完整代码示例,帮助你快速掌握前端防抖技术。 为什么使用防抖 函数防抖的核心思想是在连续触发的事件停止后,仅执行最后一次调用,以避免频繁触发带来的性能问题 ([MDN Web Docs][1])。 在不使用防抖的情况下,例如在 input 输入事件或 window.resize 事件中直接调用逻辑,页面可能会因短时间内大量调用而出现卡顿或请求风暴 ([GeeksforGeeks]

一文了解Blob文件格式,前端必备技能之一

一文了解Blob文件格式,前端必备技能之一

文章目录 * 前言 * 一、什么是Blob? * 二、Blob的基本特性 * 三、Blob的构造函数 * 四、常见使用场景 * 1. 文件下载 * 2. 图片预览 * 3. 大文件分片上传 * 四、Blob与其他API的关系 * 1. File API * 2. FileReader * 3. URL.createObjectURL() * 4. Response * 五、性能与内存管理 * 六、实际案例:导出Word文档 * 七、浏览器兼容性 * 八、总结 前言 最近在项目中需要导出文档时,我首次接触到了 Blob 文件格式。作为一个前端开发者,虽然经常听到 "Blob" 这个术语,但对其具体原理和应用场景并不十分了解。经过一番研究和实践,

FRCRN语音降噪工具效果验证:不同网络传输丢包率下语音前端降噪鲁棒性测试

FRCRN语音降噪工具效果验证:不同网络传输丢包率下语音前端降噪鲁棒性测试 1. 测试背景与目的 语音通信质量直接影响用户体验,但在实际网络环境中,语音数据包在传输过程中难免会出现丢包,导致音频质量下降。传统的网络丢包补偿技术往往效果有限,而前端语音增强技术能在音频解码前就进行降噪处理,从源头上提升语音质量。 本次测试旨在验证FRCRN语音降噪工具在不同网络传输丢包率下的鲁棒性表现。通过模拟0%、5%、10%、15%和20%五种典型网络丢包场景,评估该工具在实际应用中的稳定性和有效性。 2. 测试环境与方法 2.1 测试环境配置 测试环境采用标准的语音处理实验配置: * 硬件环境:Intel Core i7-12700K处理器,32GB内存,NVIDIA RTX 3080显卡 * 软件环境:Ubuntu 20.04 LTS,Python 3.8,PyTorch 1.12,ModelScope 1.0 * 测试工具:FRCRN语音降噪工具(damo/