ComfyUI-TeaCache 插件导入失败 (IMPORT FAILED) 解决方案:ImportError: cannot import name 'precompute_freqs_cis'
ComfyUI-TeaCache 插件地址:
welltop-cn/ComfyUI-TeaCache
ComfyUI v0.8.2 源代码地址:
Releases · Comfy-Org/ComfyUI v.0.8.2
问题背景
最近在把 ComfyUI 更新到最新版时,遇到了一个常见的插件兼容性问题。
当启动 ComfyUI 时,ComfyUI-TeaCache 插件无法正常加载,无论是旧的名为 teacache 的插件还是最新的 ComfyUI-TeaCache 插件均无法正常导入。
环境信息
- Python 版本: 3.12.11
- ComfyUI 版本: 0.8.2
- 插件版本: ComfyUI-TeaCache(git 拉取的最新版)
- 操作系统: Windows 11
错误信息
启动 ComfyUI 时,日志输出中出现以下错误信息:
Traceback (most recent call last):
File "H:\PythonProjects1\Win_ComfyUI\nodes.py", line 2155, in load_custom_node
module_spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "H:\PythonProjects1\Win_ComfyUI\custom_nodes\ComfyUI-TeaCache\__init__.py", line 1, in <module>
from .nodes import NODE_CLASS_MAPPINGS as NODES_CLASS, NODE_DISPLAY_NAME_MAPPINGS as NODES_DISPLAY
File "H:\PythonProjects1\Win_ComfyUI\custom_nodes\ComfyUI-TeaCache\nodes.py", line 12, in <module>
from comfy.ldm.lightricks.model import precompute_freqs_cis
ImportError: cannot import name 'precompute_freqs_cis' from 'comfy.ldm.lightricks.model' (H:\PythonProjects1\Win_ComfyUI\comfy\ldm\lightricks\model.py)
Cannot import H:\PythonProjects1\Win_ComfyUI\custom_nodes\ComfyUI-TeaCache module for custom nodes: cannot import name 'precompute_freqs_cis' from 'comfy.ldm.lightricks.model' (H:\PythonProjects1\Win_ComfyUI\comfy\ldm\lightricks\model.py)
问题分析
这个问题的根本原因是:
- ComfyUI 架构变更:在 2026 年 1 月 5 日的更新中,ComfyUI 对模块结构进行了重构
- 函数位置变更:precompute_freqs_cis 函数从 comfy.ldm.lightricks.model 迁移到了 comfy.ldm.modules.attention
- 类方法化:在最新版本中,该函数成为了 LTXBaseModel 类的一个静态方法
解决方案
方法一:修改插件文件(推荐)
这是最干净的解决方案,不会修改 ComfyUI 核心文件。
步骤 1:定位文件
打开以下文件:
H:\PythonProjects1\Win_ComfyUI\custom_nodes\ComfyUI-TeaCache\nodes.py
步骤 2:修改导入语句(第 12 行)
# 原代码 from comfy.ldm.lightricks.model import precompute_freqs_cis # 修改为 from comfy.ldm.lightricks.model import LTXBaseModel步骤 3:修改函数调用(第 631 行)
# 原代码 pe = precompute_freqs_cis(fractional_cords, dim=self.inner_dim, out_dtype=x.dtype) # 修改为 pe = LTXBaseModel.precompute_freqs_cis(fractional_cords, dim=self.inner_dim, out_dtype=x.dtype)步骤 4:保存并重启
保存文件后,重启 ComfyUI 即可。
方法二:添加兼容性补丁
如果您不想修改插件文件,可以在 ComfyUI 核心文件中添加兼容代码。
步骤 1:打开核心文件
H:\PythonProjects1\Win_ComfyUI\comfy\ldm\lightricks\model.py
步骤 2:添加兼容代码
在文件开头,导入语句之后,添加以下代码:
try: from comfy.ldm.modules.attention import precompute_freqs_cis except ImportError: # 备用实现(防止极端情况) import torch def precompute_freqs_cis(dim: int, end: int, theta: float = 10000.0): freqs = 1.0 / (theta ** (torch.arange(0, dim, 2)[:(dim // 2)].float() / dim)) t = torch.arange(end, device=freqs.device) freqs = torch.outer(t, freqs).float() freqs_cis = torch.polar(torch.ones_like(freqs), freqs) return freqs_cis步骤 3:保存并重启
保存文件后,重启 ComfyUI。
验证结果
修改完成后,ComfyUI 同一位置处的报错输出应该消失,并且 ComfyUI-TeaCache 插件会成功加载。您可以在 ComfyUI 的节点面板中看到 TeaCache 相关的节点。
注意事项
- 备份文件:在修改任何文件之前,建议先备份原始文件
- 版本兼容性:这个解决方案适用于 ComfyUI 0.8.2 版本
- 其他插件:类似的问题也可能出现在 ComfyUI-MagCache 等其他插件中
- 官方修复:等待插件作者发布官方更新后,建议使用官方版本
总结
这个问题是由于 ComfyUI 的架构变更导致的插件兼容性问题。通过简单的代码修改,我们可以快速解决这个问题,让 ComfyUI-TeaCache 插件重新正常工作。希望这个解决方案对遇到同样问题的用户有所帮助。
如果您在操作过程中遇到任何问题,欢迎在评论区留言讨论。
参考资料
新的ComfyUI更新导致仓库失效 - 导入错误:无法从“comfy.ldm.lightricks.model”导入名字“precompute_freqs_cis”·第#178期 ·welltop-cn/ComfyUI-TeaCache