AttributeError: module ‘mediapipe’ has no attribute ‘solutions’

该报错通常出现在 ComfyUI ControlNet Aux 的 AIO_Preprocessor 节点(特别是 MediaPipe Face 相关预处理)执行阶段,说明当前安装的 mediapipe 版本里 solutions 子模块不可用,优先排查依赖包版本。

快速结论:该报错通常出现在 ComfyUI ControlNet Aux 的 AIO_Preprocessor 节点(特别是 MediaPipe Face 相关预处理)执行阶段,说明当前安装的 mediapipe 版本里 solutions 子模块不可用,优先排查依赖包版本。

适用环境:Issue 中已确认的环境包括 Windows 版 ComfyUI Portable(Easy-Install / windows_portable)与 Python 3.12.10;另有用户报告 Ubuntu 24.x、Python 3.13.11、PyTorch 2.8.0+cu128、ComfyUI 0.8.3 出现同样报错。其余工具、CUDA、显卡信息未在 Issue 中给出。

最快修复方案:暂无确认的一步修复方案。Issue 讨论给出的方向是确认 mediapipe 版本:solutions API 在 0.10.10–0.10.20 被移除,在 0.10.21+ 恢复,但 0.10.31+ 又再次被移除。

注意事项:不要盲目安装最新版或过旧版 mediapipe;Issue 中给出的版本区间存在反复变化,具体可用范围需要在你的 Python 版本与 ComfyUI 环境中实测验证。

问题场景

用户在 ComfyUI 中运行 ControlNet Aux 插件的 AIO_Preprocessor 节点时触发异常。从堆栈看,节点调用链进入 comfyui_controlnet_aux/node_wrappers/mediapipe_face.py,随后加载 src/custom_controlnet_aux/mediapipe_face/mediapipe_face_common.py,在其中访问 mp.solutions.drawing_utils 时失败。Windows Portable 与 Ubuntu + Python 3.13 的用户均复现了同类报错。

报错原文

!!! Exception during processing !!! module 'mediapipe' has no attribute 'solutions'
Traceback (most recent call last):
  File "...\ComfyUI\execution.py", line 516, in execute
    ...
  File "...\ComfyUI\custom_nodes\comfyui_controlnet_aux\node_wrappers\mediapipe_face.py", line 30, in detect
    from custom_controlnet_aux.mediapipe_face import MediapipeFaceDetector
  File "...\comfyui_controlnet_aux\src\custom_controlnet_aux\mediapipe_face\__init__.py", line 9, in 
    from .mediapipe_face_common import generate_annotation
  File "...\comfyui_controlnet_aux\src\custom_controlnet_aux\mediapipe_face\mediapipe_face_common.py", line 8, in 
    mp_drawing = mp.solutions.drawing_utils
                 ^^^^^^^^^^^^
AttributeError: module 'mediapipe' has no attribute 'solutions'

原因分析

问题根源指向 mediapipe 的版本不匹配。Issue 讨论明确指出:mediapipe 0.10.10–0.10.20 移除了 solutions API,之后在 0.10.21+ 恢复,但在 0.10.31+ 又被移除。因此当环境中装到的 mediapipe 版本恰好处于“无 solutions”区间时,ControlNet Aux 的 MediaPipe Face 代码在导入阶段就会抛出该 AttributeError。

环境排查

  • 确认 ComfyUI 版本与安装方式(Windows Portable / Easy-Install / 源码安装)。
  • 确认 Python 版本:Issue 中已出现 Python 3.12.10 与 Python 3.13.11。
  • 确认 PyTorch 与 CUDA 版本:Issue 中提到 PyTorch 2.8.0+cu128、ComfyUI 0.8.3。
  • 确认 comfyui_controlnet_aux 插件版本是否与当前 ComfyUI 兼容。
  • 重点确认当前环境中 mediapipe 的实际安装版本,判断是否落在 0.10.10–0.10.20 或 0.10.31+ 的无 solutions 区间。

解决步骤

  1. 先检查当前 mediapipe 版本,确认它处于哪个 API 区间。
  2. 如果版本落在 0.10.10–0.10.20,可优先尝试将 mediapipe 调整到 0.10.21+(但需同时避开 0.10.31+,因为该区间再次移除 solutions)。
  3. 对于 Python 3.12,Issue 讨论中提到至少需要 mediapipe 0.10.21;Python 3.13 环境下的可用版本需自行实测。
  4. 调整依赖后重启 ComfyUI,再重新运行 AIO_Preprocessor 节点。
  5. 若问题仍然存在,请补充 mediapipe 版本、Python 版本与完整堆栈到原 Issue。

验证方法

重新运行包含 AIO_Preprocessor(MediaPipe Face 预处理)的工作流,确认不再出现 AttributeError: module 'mediapipe' has no attribute 'solutions',且节点能正常输出预处理结果。

参考来源

Fannovel16/comfyui_controlnet_aux #604

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25664

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注