UnboundLocalError: cannot access local variable ‘multitalk_audio_stride’ when using WanVideoSampler without multitalk

用户在使用 ComfyUI-WanVideoWrapper 的 WanVideoSampler 节点时,未连接 multitalk_embeds 输入(正常 I2V/T2V 工作流),运行后出现此报错。已确认影响的版本包括 ComfyUI-WanVideoWrapper(latest main)、C

UnboundLocalError: cannot access local variable 'multitalk_audio_stride' when using WanVideoSampler without multitalk

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_embedsNone(默认情况,未连接 multitalk 输入时),该 if 块被跳过,multitalk_audio_stride 从未被初始化,导致 UnboundLocalError

注意,其他相关变量(如 multitalk_audio_embedsaudio_scaleaudio_emb_sliceaudio_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(或其他变体)

解决步骤

  1. 打开 nodes_sampler.py 文件:找到 ComfyUI-WanVideoWrapper 安装目录下的 nodes_sampler.py,定位到第 566 行附近(或搜索 multitalk_audio_embeds = audio_emb_slice = audio_features_in = None)。
  2. 添加 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
  3. 备用方案(如果不想修改初始化行):另一种修复方法是修改第 822 行的条件判断:
    if multitalk_audio_stride is not None:
    改为 if 'multitalk_audio_stride' in locals() and multitalk_audio_stride is not None:
    (该方法也在 Issue 评论中被验证有效,但建议优先采用步骤 2 的初始化方案,因为更符合代码规范。)
  4. 保存文件并重启 ComfyUI。

验证方法

创建任意 I2V/T2V 工作流,使用 WanVideoSampler 节点但保持 multitalk_embeds 输入不连接,运行工作流。如果不再出现 UnboundLocalError,且采样器正常生成,则问题已解决。

参考来源

kijai/ComfyUI-WanVideoWrapper #2019

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 7559

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注