【ComfyUI】TypeError: forward_orig() got an unexpected keyword argument 'attn_mask' 完美解决指南


问题描述

最近在使用 ComfyUI 进行工作时,遇到一个报错信息:“TypeError: forward_orig() got an unexpected keyword argument ‘attn_mask’”。这个问题会导致程序无法正常运行。本文将详细介绍该错误的原因及解决方案。

错误原因

这个错误通常发生在 ComfyUI 或相关库更新后,因为某些函数或方法的签名发生了变化。例如,如果在某个类的方法中意外地添加了新的参数(如 ‘attn_mask’),而没有相应地更新所有调用该方法的地方,则可能会引发此类型的异常。

解决方案

要解决这个问题,可以按照以下步骤操作:

  1. 检查 ComfyUI 库的版本
    请确保您使用的 ComfyUI 版本是最新的。可以通过 GitHub 发布页面来查看最新的发布信息。

  2. 回滚到旧版本 如果确认是由于更新导致的问题,则可以尝试回滚到出问题前的版本。执行以下命令安装之前的稳定版本:

    pip install comfyui==previous_version_number  # 替换 previous_version_number 为具体的版本号
  3. 修复代码中的错误 如果您有权限修改 ComfyUI 的源码,可以通过查看相关的 execution.py 文件来定位问题。具体来说,在文件的第328行和633行(根据 Debug Logs 提供的信息)可能需要做一些调整以适应新的 API 或移除多余的参数。

  4. 更新依赖库 如果错误是由其他相关库(如 torch、transformers 等)更新引发的,那么您也需要确保这些库与 ComfyUI 的当前版本兼容。可以尝试更新或回滚这些库到一个已知的工作状态:

    pip install -U torch==specific_version  # 或者安装特定版本的其他依赖
  5. 使用修复好的仓库 如果以上方法都未能解决问题,您可以考虑从一个已修复此问题的分支或提交(commit)进行拉取。这通常需要您在本地克隆 ComfyUI 的代码库,并执行相应的 git 命令来切换到正确的状态。

结论

遵循上述步骤应该可以解决遇到的问题。如果依旧无法解决问题,建议直接联系项目维护者获取进一步的帮助和支持。

通过这篇指南希望可以帮助大家更好地理解和处理此类错误问题!