
TypeError: AudioVAE.__init__() takes 2 positional arguments but 3 were given
快速结论:该报错通常发生在 ComfyUI 更新后,KJNodes 中的 AudioVAE 节点初始化参数发生变化导致的兼容性问题。优先更新 KJNodes 到最新版本即可解决。
问题场景
用户在 ComfyUI 中使用 KJNodes 自定义节点的 “Load AudioVAE” 或相关音频 VAE 加载节点时触发。涉及节点位于 comfyui-kjnodes/nodes/nodes.py 文件第 2455 行的 load_vae 函数中。
报错原文
!!! Exception during processing !!! AudioVAE.__init__() takes 2 positional arguments but 3 were given
Traceback (most recent call last):
File "D:\ComfyUI\execution.py", line 534, in execute
output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)
...
File "D:\ComfyUI\custom_nodes\comfyui-kjnodes\nodes\nodes.py", line 2455, in load_vae
vae = AudioVAE(sd, metadata)
^^^^^^^^^^^^^^^^^^^^^^
TypeError: AudioVAE.__init__() takes 2 positional arguments but 3 were given
原因分析
ComfyUI 的一次更新修改了 AudioVAE 类的构造函数签名,从原先接受 2 个参数变为只接受 1 个参数。KJNodes 中 load_vae 函数仍然以 AudioVAE(sd, metadata) 的形式传递 2 个位置参数,导致类型错误。KJNodes 作者已在更新中修复此问题,同时官方指出更新后的 ComfyUI 可直接使用标准 VAELoader 节点来加载音频 VAE。
环境排查
- 确认 ComfyUI 版本(建议更新到最新 commit)
- 确认 KJNodes 版本(需要更新到修复后的版本)
- 检查 custom_nodes/comfyui-kjnodes/nodes/nodes.py 中第 2455 行附近的 AudioVAE 调用方式
解决步骤
- 更新 KJNodes:进入 ComfyUI 的 custom_nodes/comfyui-kjnodes 目录,执行
git pull拉取最新代码。 - 更新 ComfyUI:回到 ComfyUI 根目录,同样执行
git pull确保 ComfyUI 本体最新。 - 重启 ComfyUI:更新完成后重启 ComfyUI 服务。
- 可选替代方案:根据 Issue 中的官方说明,更新后可以直接使用标准
VAELoader节点加载音频 VAE,不再需要特定于 KJNodes 的节点。
验证方法
重新运行之前触发报错的音频 VAE 加载工作流,观察是否正常执行且不再出现 “TypeError” 异常。如果使用标准 VAELoader 节点,确认音频模型能正常加载并参与处理。



