
### 问题场景
用户在使用 ComfyUI 便携版(Python 3.12.10)运行 **AIO_Preprocessor** 节点(具体为 MediaPipe Face 检测子节点)时触发此错误。该节点属于 `comfyui_controlnet_aux` 自定义插件套件,通常在加载 ControlNet 预处理器(如面部特征点检测)时调用。
### 报错原文
“`
!!! Exception during processing !!! module ‘mediapipe’ has no attribute ‘solutions’
Traceback (most recent call last):
…
File “…/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` 库版本问题。**
`mediapipe` 在 0.10.10 至 0.10.20 版本间移除了 `solutions` API,导致旧代码(如 `mediapipe_face_common.py` 中 `mp.solutions.drawing_utils` 的调用)无法正常工作。该 API 在 0.10.21+ 中被临时恢复,但又在 0.10.31+ 中被**再次移除**。因此,用户安装的 `mediapipe` 版本要么低于 0.10.10,要么在 0.10.31 及以上(或恰好处于 0.10.10–0.10.20 区间)。
### 环境排查
– **Python 版本**:Python 3.12.x(用户系统为 3.12.10)
– **`mediapipe` 版本**:确认 `pip show mediapipe` 显示的版本号
– **`comfyui_controlnet_aux` 版本**:确认是否为最新版本(作者可能已适配新版 mediapipe)
– **ComfyUI 版本**:非关键,但建议保持更新
### 解决步骤
1. **先尝试升级 `mediapipe` 到兼容版本**(可优先尝试)
在 ComfyUI 的 Python 环境中执行:
“`bash
pip install mediapipe==0.10.19
“`
或通过 ComfyUI 管理器/终端手动指定版本。
2. **如果仍报错,升级到 0.10.21(已确认包含 `solutions` API)**
“`bash
pip install mediapipe==0.10.21
“`
3. **若用户安装的是 0.10.31+ 版本**(该版本再次移除了 `solutions` API)
**可优先尝试**回退到 0.10.21-0.10.30 之间的一个中间版本:
“`bash
pip install mediapipe==0.10.30
“`
4. **检查 `comfyui_controlnet_aux` 插件更新**
重新安装或拉取最新版插件,因为开发者可能已更新代码以兼容较新的 mediapipe:
“`bash
cd ComfyUI/custom_nodes/
git pull # 如果通过 git 安装
“`
或通过 ComfyUI 管理器更新。
### 验证方法
– 重启 ComfyUI 后,加载使用了 **AIO_Preprocessor** 或 **MediaPipe Face** 检测节点的工作流,确认不再弹出 `AttributeError: module ‘mediapipe’ has no attribute ‘solutions’` 错误。
– 在终端运行 `python -c “import mediapipe; print(mediapipe.__version__); print(hasattr(mediapipe, ‘solutions’))”`,如果输出 `True` 表示问题已解决。
### 参考来源



