绿联 NAS + 雷电外接 RTX 4070 Ti SUPER 跑 ComfyUI:detect_k_anchor 报错排查全流程

ComfyUI detect_k_anchor 报错排查封面

我这台 NAS 的显卡是「外挂」的——主机是绿联 DXP6800 PRO,显卡通过雷电口外接一块 RTX 4070 Ti SUPER。这么用日常没毛病,但一跑视频生成 workflow 就翻车:每次都卡在同一个报错上。折腾了一晚上,最后发现修复方法简单到让人想拍大腿。整个过程记录如下,希望能帮到同样踩坑的人。

一、先交代环境

  • 主机:绿联 DXP6800 PRO NAS(UGOS 系统);

  • 显卡:雷电(Thunderbolt)外接的 NVIDIA RTX 4070 Ti SUPER(16GB GDDR6X);

  • 软件栈:Docker 部署 yanwk/comfyui-boot:cu126-slim 镜像(CUDA 12.6 + Python 3.12);

  • NVIDIA 驱动:570.181(驱动支持最高 CUDA 12.8);

  • 跑的活:视频生成 workflow(MiniMax-H3 + H3 SLA Attention)。

症状很固定:跑参考视频生成时,SamplerCustomAdvanced 节点每次都报错,错误核心就一句:

RuntimeError: detect_k_anchor kernel launch failed:
CUDA driver version is insufficient for CUDA runtime version
Docker 容器管理界面

二、错误现场

出问题的工作流标题长得离谱(看得出试了不少参数):

REFERENCE 2026-08-29: fused ref-delta bake + SLA 0.9/64, res_multistep/simple/4, shift 12/3, 1152x640, 243 f, seed 42

完整堆栈里有几个关键跳转,先记下来,后面全靠它:

File "/root/ComfyUI/comfy/k_diffusion/sampling.py", line 1486, in res_multistep
    denoised = model(x, sigmas[i] * s_in, **extra_args)

File "/root/ComfyUI/custom_nodes/plaguekind-nodes/ComfyUI-H3-SLA-Attention/sla/patch.py",
  line 652, in override
    return dense()

File "/root/ComfyUI/comfy/ldm/modules/attention.py", line 611,
  in attention_comfy_kitchen_int8
    out = comfy_kitchen.int8_attention(

File "/usr/local/lib64/python3.12/site-packages/comfy_kitchen/sage_attention.py",
  line 219, in _int8_attention_cuda
    _cuda_backend._C.sage_sdpa(

报错时的版本:ComfyUI v0.34.2,PyTorch 2.13.0+cu126。

三、排查过程

阶段 1:先把基础环境摘干净

SSH 进 NAS,确认显卡和驱动状态:

$ nvidia-smi
| NVIDIA-SMI 570.181   Driver Version: 570.181   CUDA Version: 12.8    |
| 0  NVIDIA GeForce RTX 4070 Ti SUPER ... 16376MiB                      |

再看容器里的 PyTorch:

$ sudo docker exec 2comfyui python3 -c "import torch; \
    print ('torch:', torch.__version__); \
    print ('cuda:', torch.version.cuda); \
    print ('available:', torch.cuda.is_available())"
torch: 2.13.0+cu126
cuda: 12.6
available: True

驱动 570.181、PyTorch 2.13+cu126、CUDA 12.6、GPU 透传,全都正常。容器内的 nvidia-smi 输出和宿主机一模一样,说明 NVIDIA Container Toolkit 这边没问题。

💡 这一步的结论很重要:驱动和 PyTorch 其实是兼容的,错误不在基础环境。别急着去升级驱动,方向错了会浪费一晚上。

阶段 2:进自定义节点的深水区

从堆栈里能看到两个关键角色:

  • comfy_kitchen.sol_attn —— KJNodes 依赖的模块;

  • plaguekind-nodes/ComfyUI-H3-SLA-Attention —— 视频生成 workflow 用的注意力加速节点。

步骤 A:先通过 ComfyUI Manager 把所有自定义节点更新一遍

进 ComfyUI 网页 → Manager → Update ComfyUI(v0.34.2 → v0.35.1)。

Manager 正在更新

更新成功的节点:

  • ComfyUI-Easy-Use

  • ComfyUI-KJNodes(关键,修掉了 sol_attn 模块缺失的问题)

更新失败的两个先忽略:

  • ComfyUI-ALLinONE-MinimaxH3

  • h3seg_prompt_gen

重启容器让更新生效:

sudo docker restart 2comfyui

更新完 ComfyUI + KJNodes 之后,comfy_kitchen.sol_attn 的报错消失了,但 detect_k_anchor 依然在报

步骤 B:抓一次新堆栈,找到真正的元凶

再跑一次,新的堆栈显示错误来自 SLA 节点的 patched attention:

File "/root/ComfyUI/custom_nodes/plaguekind-nodes/ComfyUI-H3-SLA-Attention/sla/patch.py",
  line 493, in dense
    return call(q, k, v, heads, mask=mask, attn_precision=attn_precision, ...)

File "/root/ComfyUI/comfy/ldm/modules/attention.py", line 611,
  in attention_comfy_kitchen_int8
    out = comfy_kitchen.int8_attention(

File "/usr/local/lib64/python3.12/site-packages/comfy_kitchen/sage_attention.py",
  line 219, in _int8_attention_cuda
    _cuda_backend._C.sage_sdpa(

说人话就是:

  • SLA 节点把全局的 attention 函数 patch 成了 comfy_kitchen.int8_attention(Sage Attention int8);

  • 而 Sage Attention 的 detect_k_anchor 内核(一个预编译的 CUDA kernel binary)在我这套环境(PyTorch 2.13 + 驱动 570)下 launch 失败。

步骤 C:确认 comfy-kitchen 版本

$ sudo docker exec 2comfyui pip show comfy-kitchen
Name: comfy-kitchen
Version: 0.2.33

已经是最新版了,重装也没用:

$ sudo docker exec 2comfyui pip install --upgrade --force-reinstall --no-cache-dir comfy-kitchen
Found existing installation: comfy-kitchen 0.2.33
Successfully installed comfy-kitchen 0.2.33

结论:0.2.33 这个 wheel 里的预编译 binary,本身就跟「PyTorch 2.13 + 驱动 570」这个组合不兼容。也就是说,这不是配置问题,是二进制层面的不匹配。

四、我试过的四条路

方案 A:源码编译 comfy-kitchen(理论上最完美)

编译需要容器里有 nvcc,先看看有没有:

$ sudo docker exec 2comfyui bash -c "which nvcc"
which: no nvcc in (...)

走不通:yanwk/comfyui-boot:cu126-slim 这个镜像不含 CUDA toolkit,没法编译。

方案 B:把 PyTorch 降到 2.12.x

理论上 PyTorch 2.12 加载的 CUDA runtime 可能和 0.2.33 的 wheel 匹配。

没试:怕影响其他 workflow,风险不值当。

方案 C:给 comfy-kitchen 加 fallback

思路是给 int8_attention 包一层 try/except,失败时回退到 PyTorch SDPA:

# 修改 /usr/local/lib64/python3.12/site-packages/comfy_kitchen/sage_attention.py
if attn_mask is None:
    try:
        return torch.ops.comfy_kitchen.int8_attention(q, k, v, scale)
    except RuntimeError as e:
        if "kernel launch failed" in str(e) or "CUDA driver" in str(e):
            # fallback 到 PyTorch SDPA
            import torch.nn.functional as F
            _q = q.transpose(1, 2) if q.dim() == 4 else q
            _k = k.transpose(1, 2) if k.dim() == 4 else k
            _v = v.transpose(1, 2) if v.dim() == 4 else v
            return F.scaled_dot_product_attention(_q, _k, _v, scale=scale.item())
        raise

能跑通:workflow 不再报错。但是——画面几乎没法看,基本是一团噪点。原因也简单:fallback 用的是裸 PyTorch SDPA,SLA 节点的 sparse / block / tail_correction 这些优化全都没了。

修复前(走 fallback,画面全是噪点):

修复前:画面为噪点,无法辨识内容

(说明:上图不是图片加载失败,而是修复前生成出来的画面本身就只有噪点,主体完全没法辨认。)

方案 D(最终方案):直接在 SLA 节点里换 engine ✅

盯着 workflow 看了半天,才发现 H3 SLA Attention 节点自己就带 engine 切换参数,白折腾了前三条路。

点开 engine 下拉框,只有两个选项:

选项

说明

comfy_kitchen

Sage Attention(带 int8 kernel,当前环境不兼容)

triton

Triton Attention(PyTorch 2.0+ 内置,完全兼容)

于是把三个参数一起改了:

  1. engine:comfy_kitchentriton

  2. dense_backend:comfy_kitchenpytorch

  3. use_int8_gk:on (experimental)off

重跑 workflow,高清视频立刻出来了:

修复后(SLA + Triton,毛发、眼神、水花都清楚):

修复后:画面清晰,细节丰富

说明:上面两张对比图是从原始录屏(before-fix.mp4 / after-fix.mp4)里截取的画面。视频文件比较大,没有一并传到站点附件里,需要的话可以自己上传到媒体库再替换。

五、最终解法:改三个参数,30 秒搞定

以后再遇到这个错误,不需要改一行代码,直接在 workflow 里改 SLA 节点的三个参数:

参数

修改前

修改后

engine

comfy_kitchen

triton

dense_backend

comfy_kitchen

pytorch

use_int8_gk

on (experimental)

off

保存 workflow,重跑即可。如果之前跟我一样打过 monkey patch,记得回滚一下,保持环境干净:

sudo docker exec 2comfyui bash -c \
  "cp /tmp/sage_attention.py.bak \
   /usr/local/lib64/python3.12/site-packages/comfy_kitchen/sage_attention.py && echo RESTORED"
sudo docker restart 2comfyui

六、修复前后对比

项目

修复前

修复后

工作流能否跑通

❌ / ✅(仅靠 fallback,满屏噪点)

✅ 完全正常

视频质量

马赛克噪点,认不出主体

清晰流畅,毛发、眼神、岩石、水花都清楚

加速引擎

Sage Attention int8(失败)→ 裸 PyTorch SDPA

SLA + Triton Attention

对其他 workflow 的影响

打 monkey patch 时会影响全局

只改 SLA 节点参数,零影响

七、几条经验

1. 看到「CUDA driver version is insufficient」,先别急着怪驱动

这句话很容易让人第一反应去升级驱动,但实际上:驱动 570.181 已经相当新;真正的错误源是第三方 CUDA kernel 库的预编译 binary 和当前 PyTorch / CUDA 组合不匹配。下次遇到类似报错,先顺着堆栈找到具体的 kernel 来自哪里,比升级驱动有用得多。

2. 改代码之前,先翻一遍节点的参数面板

自定义节点通常自带 backend / engine 切换开关。这次 SLA 节点的 engine 选项,直接绕开了所有代码层面的修改。

3. 雷电外接显卡的几个注意点

  • eGPU 在容器里的 nvidia-smi 输出和宿主机完全一致,驱动兼容性检查照常做就行;

  • 雷电 4 的带宽限制(约 32Gbps)会让单图生成略慢,但不会引发 CUDA 兼容性问题——别把它和这类报错混为一谈;

  • 启动 ComfyUI 时建议带上 CUDA_VISIBLE_DEVICES=0,确保用的是外接显卡。

4. 调试流程本身也值得复盘

这次走了几段弯路(升级 comfy-kitchen、想源码编译、写 monkey patch),最后的答案却是改三个参数。如果一开始就仔细看 SLA 节点的参数面板,能省下一两个小时。

八、附录:常用排查命令

# 查看驱动支持的 CUDA 版本
nvidia-smi | head -10

# 查看 PyTorch 版本(容器内)
sudo docker exec 2comfyui python3 -c \
  "import torch; print (torch.__version__, torch.version.cuda, torch.cuda.is_available())"

# 查看运行中的 ComfyUI 进程
sudo docker exec 2comfyui ps -ef | grep main.py | grep -v grep

# 找 ComfyUI Python 解释器路径
sudo docker exec 2comfyui ls -l /proc/<PID>/exe 2>/dev/null

# 抓关键错误日志
sudo docker logs 2comfyui --tail 200 2>&1 | grep -iE \
  "error|k_anchor|gguf|fp8|kitchen|sage"

# 自定义节点更新失败时手动 git pull(先加大缓冲区)
sudo docker exec 2comfyui bash -c "cd /root/ComfyUI/custom_nodes/<node> && \
  git config http.postBuffer 524288000 && git pull"

# GitHub SSL 失败时改用 zip 下载
sudo docker exec 2comfyui bash -c "cd /root/ComfyUI/custom_nodes && \
  curl -L -o /tmp/sla.zip https://github.com/<user>/<repo>/archive/refs/heads/main.zip && \
  unzip /tmp/sla.zip && cp -r <repo>-main <node>"

# 重装 comfy-kitchen(一般没用,但有时候是 cache 坏了)
sudo docker exec 2comfyui pip install --upgrade --force-reinstall --no-cache-dir comfy-kitchen

九、参考信息

项目

版本 / 型号

主机

绿联 DXP6800 PRO(UGOS)

显卡

RTX 4070 Ti SUPER 16GB(雷电外接)

NVIDIA 驱动

570.181(CUDA 12.8)

Docker 镜像

yanwk/comfyui-boot:cu126-slim

ComfyUI

v0.35.1

PyTorch

2.13.0+cu126

关键节点

ComfyUI-KJNodes、plaguekind-nodes/ComfyUI-H3-SLA-Attention

报错的库

comfy-kitchen 0.2.33(comfy_kitchen.sage_attention)

十、一句话总结

detect_k_anchor kernel launch failed 最快的修法不是改代码,而是在 workflow 的 SLA 节点里把 engine 改成 tritonuse_int8_gk 改成 off

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息