Error occurred when executing InstantIDFaceAnalysis:

这个报错通常出现在 ComfyUI 使用 InstantID 节点执行 InstantIDFaceAnalysis 时,insightface 的 antelopev2 模型目录层级不对或文件未正确解压,导致 assert 'detection' in self.models 失败。优先检查 Com

快速结论:这个报错通常出现在 ComfyUI 使用 InstantID 节点执行 InstantIDFaceAnalysis 时,insightface 的 antelopev2 模型目录层级不对或文件未正确解压,导致 assert 'detection' in self.models 失败。优先检查 ComfyUI/models/insightface/models/antelopev2 下的实际文件结构。

适用环境:Issue 中确认的环境为 Windows ComfyUI portable(nightly pytorch)、Linux ComfyUI(venv,Python 3.11),涉及 ComfyUI_InstantID 自定义节点与 insightface,报错日志显示使用 CPUExecutionProvider。

最快修复方案:确认 antelopev2 模型已解压,并把 ONNX 文件放在正确目录中,避免出现多一层 antelopev2 嵌套目录;Issue 中多位用户通过修正该目录层级解决。

注意事项:Issue 中反馈安装节点后 models/insightface 和 models/instantid 目录可能不会自动创建,需要手动建目录;如果只看到外层目录没有实际 ONNX 文件,仍然会报同样的错。

问题场景

用户在 ComfyUI 中运行 InstantID 相关流程,执行到 InstantIDFaceAnalysis 节点或加载 insightface 的 FaceAnalysis(name="antelopev2", ...) 阶段时失败。报错发生在自定义节点 ComfyUI_InstantID/InstantID.py 调用 insightface 初始化时,截图和日志都指向模型检测模块未被识别。

报错原文

Error occurred when executing InstantIDFaceAnalysis:

ERROR:root:Traceback (most recent call last):
  File "...\ComfyUI\custom_nodes\ComfyUI_InstantID\InstantID.py", line 359, in load_insight_face
    model = FaceAnalysis(name="antelopev2", root=INSIGHTFACE_DIR, providers=[provider + 'ExecutionProvider',]) # buffalo_l
  File "...\python_embeded\Lib\site-packages\insightface\app\face_analysis.py", line 43, in __init__
    assert 'detection' in self.models
AssertionError

Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: ...\ComfyUI\models\insightface\models\antelopev2\1k3d68.onnx landmark_3d_68 ['None', 3, 192, 192] 0.0 1.0
find model: ...\ComfyUI\models\insightface\models\antelopev2\2d106det.onnx landmark_2d_106 ['None', 3, 192, 192] 0.0 1.0
AssertionError

原因分析

根据 Issue 讨论,最可能的原因是 antelopev2 模型放置位置或解压方式不正确,使 insightface 在初始化时没有检测到所需的 detection 模型。已确认的典型情况包括:放入 ComfyUI/models/insightface/models/antelopev2 时忘记解压 antelopev2.zip;或者目录多了一层,变成 ./models/antelopev2/antelopev2/...。日志中虽然能找到部分 ONNX 模型,但 insightface 的 FaceAnalysis 仍然断言失败,说明其期望的模型集合结构没有匹配上。

环境排查

  • 确认 ComfyUI 根目录下是否存在 models/insightface,若不存在可手动创建。
  • 确认 antelopev2 模型目录的实际路径是否为目标路径 ComfyUI/models/insightface/models/antelopev2。
  • 确认该目录下直接包含 ONNX 模型文件,而不是再套一层 antelopev2 目录。
  • 确认 antelopev2.zip 是否已经解压,而不是只把压缩包放进目录。
  • 确认 ComfyUI_InstantID 节点和 insightface 依赖已正确安装;Issue 中未给出固定版本号。
  • Windows 与 Linux 用户都出现过该问题,排查重点应放在文件结构而非单一操作系统。

解决步骤

  1. 打开 ComfyUI 的 models 目录,检查是否存在 models/insightface。如果不存在,手动创建该目录。
  2. 进入 ComfyUI/models/insightface/models/,确认存在 antelopev2 目录。
  3. 检查 antelopev2 目录内部:里面应直接是 antelopev2 解压后的 ONNX 等模型文件,不应出现 antelopev2/antelopev2/... 这种重复嵌套。
  4. 如果发现路径是 ./models/antelopev2/antelopev2/...,把内层 antelopev2 目录中的内容移动到外层 antelopev2 目录,或删除多余的一层目录。
  5. 如果 antelopev2.zip 尚未解压,先解压,再把解压后的模型文件放到正确目录层级中。
  6. 重启 ComfyUI,重新运行含 InstantIDFaceAnalysis 的工作流。

验证方法

重新执行工作流后,InstantIDFaceAnalysis 不再抛出 AssertionError,并且日志中不再出现 assert 'detection' in self.models 失败。若节点能继续进入后续 InstantID 流程,说明模型目录问题已解决。

参考来源

cubiq/ComfyUI_IPAdapter_plus #263

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25767

发表回复

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