
UnboundLocalError: cannot access local variable ‘multitalk_audio_stride’ when using WanVideoSampler without multitalk
快速结论:当使用 WanVideoSampler 节点但不连接 multitalk_embeds 输入(即普通 I2V/T2V 工作流)时触发。优先在 nodes_sampler.py 中为 multitalk_audio_stride 添加默认初始化值。
问题场景
用户在使用 ComfyUI-WanVideoWrapper 的 WanVideoSampler 节点时,未连接 multitalk_embeds 输入(正常 I2V/T2V 工作流),运行后出现此报错。已确认影响的版本包括 ComfyUI-WanVideoWrapper(latest main)、ComfyUI v0.22.2,模型包括 Wan2.2 I2V 14B 及其他变体。
报错原文
UnboundLocalError: cannot access local variable 'multitalk_audio_stride' where it is not associated with a value
Stack trace 指向 nodes_sampler.py:822,位于 process 方法中。
原因分析
在 nodes_sampler.py 中,变量 multitalk_audio_stride 仅在 if multitalk_embeds is not None: 代码块内部被赋值(第 587 行):
if multitalk_embeds is not None:
...
multitalk_audio_stride = multitalk_embeds.get("audio_stride", None) # Line 587
但在后续第 822 行无条件引用了它:
if multitalk_audio_stride is not None: # Line 822
当 multitalk_embeds 为 None(默认情况,未连接 multitalk 输入时),该 if 块被跳过,multitalk_audio_stride 从未被初始化,导致 UnboundLocalError。
注意,其他相关变量(如 multitalk_audio_embeds、audio_scale、audio_emb_slice、audio_features_in)在 if 块之前都有默认初始化赋值,唯独 multitalk_audio_stride 缺少一个。
环境排查
- 工具版本:ComfyUI-WanVideoWrapper(latest main)
- ComfyUI 版本:v0.22.2
- 操作系统:Windows 10 / Windows 11
- Python 版本:3.13 或 3.12
- 模型:Wan2.2 I2V 14B(或其他变体)
解决步骤
- 打开
nodes_sampler.py文件:找到 ComfyUI-WanVideoWrapper 安装目录下的nodes_sampler.py,定位到第 566 行附近(或搜索multitalk_audio_embeds = audio_emb_slice = audio_features_in = None)。 - 添加
multitalk_audio_stride = None到默认初始化:将第 566 行的代码从:
multitalk_audio_embeds = audio_emb_slice = audio_features_in = None
改为:
multitalk_audio_embeds = audio_emb_slice = audio_features_in = multitalk_audio_stride = None - 备用方案(如果不想修改初始化行):另一种修复方法是修改第 822 行的条件判断:
从if multitalk_audio_stride is not None:
改为if 'multitalk_audio_stride' in locals() and multitalk_audio_stride is not None:
(该方法也在 Issue 评论中被验证有效,但建议优先采用步骤 2 的初始化方案,因为更符合代码规范。) - 保存文件并重启 ComfyUI。
验证方法
创建任意 I2V/T2V 工作流,使用 WanVideoSampler 节点但保持 multitalk_embeds 输入不连接,运行工作流。如果不再出现 UnboundLocalError,且采样器正常生成,则问题已解决。



