AttributeError: ‘DifferentialDiffusion’ object has no attribute ‘apply’ in FaceDetailer

用户在 ComfyUI 最新版(通过 git pull 更新)及 ComfyUI-Impact-Pack 最新版下,运行 FaceDetailer 节点工作流时触发 AttributeError。报错定位在 impact_pack.py 第 304 行,同时也可能在 segs_nodes.py 第

AttributeError: 'DifferentialDiffusion' object has no attribute 'apply' in FaceDetailer

AttributeError: ‘DifferentialDiffusion’ object has no attribute ‘apply’ in FaceDetailer

快速结论:此报错通常发生在使用 ComfyUI Impact Pack 中的 FaceDetailer 节点时,因 ComfyUI 核心更新导致 DifferentialDiffusion API 变更(apply 方法改为 execute)。优先排查 Impact Pack 中的 impact_pack.pysegs_nodes.py 是否仍使用旧 API。

问题场景

用户在 ComfyUI 最新版(通过 git pull 更新)及 ComfyUI-Impact-Pack 最新版下,运行 FaceDetailer 节点工作流时触发 AttributeError。报错定位在 impact_pack.py 第 304 行,同时也可能在 segs_nodes.py 第 89 行出现类似问题。

报错原文

AttributeError: 'DifferentialDiffusion' object has no attribute 'apply' in FaceDetailer
'NodeOutput' object has no attribute 'model_options'(用户尝试不完整修复后出现的继发报错)

原因分析

ComfyUI 核心在提交 e0210ce(约 Issue 创建前 17 小时)中,将 DifferentialDiffusion 类的 apply 方法重命名为 execute,并改变了返回值结构。Impact Pack 仍调用旧 API:DifferentialDiffusion().apply(model)[0],导致属性查找失败。

环境排查

  • ComfyUI 版本:是否为最新(通过 git pull 更新)。
  • ComfyUI-Impact-Pack 版本:是否为最新。
  • 操作系统:Windows(用户报告环境中)或其他平台。
  • 关键文件custom_nodes\comfyui-impact-pack\modules\impact\impact_pack.py 第 304 行、第 521 行;modules\impact\segs_nodes.py 第 89 行。

解决步骤

  1. 打开 custom_nodes\comfyui-impact-pack\modules\impact\impact_pack.py,定位第 304 行(和可能相似的第 521 行)。
  2. 将旧代码:
    model = nodes_differential_diffusion.DifferentialDiffusion().apply(model)[0]

    替换为:

    result = nodes_differential_diffusion.DifferentialDiffusion.execute(model, 1.0)
    model = result.model if hasattr(result, 'model') else result[0]

    注意:execute 为类方法而非实例方法,因此直接调用类,无需实例化。

  3. (可选)检查 custom_nodes\comfyui-impact-pack\modules\impact\segs_nodes.py 第 89 行,是否有类似调用:
    if not (isinstance(model, str) and model == "DUMMY") and noise_mask_feather > 0 and 'denoise_mask_function' not in model.model_options:
        model = nodes_differential_diffusion.DifferentialDiffusion().execute(model)[0]

    若存在,将该行中的 .apply 改为 .execute(无需增加 1.0 参数,因为已有默认值)。

  4. 保存文件,重启 ComfyUI。
  5. 注意:用户曾尝试不完整的修复导致 'NodeOutput' object has no attribute 'model_options' 错误。请严格使用上述推荐代码,确保返回值处理兼容新旧格式。

验证方法

再次运行包含 FaceDetailer 节点(或其他使用 DifferentialDiffusion 的节点)的工作流,确认不再出现 AttributeError,且节点正常输出结果。

参考来源

ltdrdata/ComfyUI-Impact-Pack #1113

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 8111

发表回复

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