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)



问题分析

这个问题的根本原因是:

  1. ComfyUI 架构变更:在 2026 年 1 月 5 日的更新中,ComfyUI 对模块结构进行了重构
  2. 函数位置变更:precompute_freqs_cis 函数从 comfy.ldm.lightricks.model 迁移到了 comfy.ldm.modules.attention
  3. 类方法化:在最新版本中,该函数成为了 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 相关的节点。

注意事项

  1. 备份文件:在修改任何文件之前,建议先备份原始文件
  2. 版本兼容性:这个解决方案适用于 ComfyUI 0.8.2 版本
  3. 其他插件:类似的问题也可能出现在 ComfyUI-MagCache 等其他插件中
  4. 官方修复:等待插件作者发布官方更新后,建议使用官方版本

总结

这个问题是由于 ComfyUI 的架构变更导致的插件兼容性问题。通过简单的代码修改,我们可以快速解决这个问题,让 ComfyUI-TeaCache 插件重新正常工作。希望这个解决方案对遇到同样问题的用户有所帮助。

如果您在操作过程中遇到任何问题,欢迎在评论区留言讨论。

参考资料

新的ComfyUI更新导致仓库失效 - 导入错误:无法从“comfy.ldm.lightricks.model”导入名字“precompute_freqs_cis”·第#178期 ·welltop-cn/ComfyUI-TeaCache

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐