资讯动态

WhatDreamsCost-ComfyUI Prompt Relay 完整指南:时间感知注意力掩码与高斯惩罚矩阵源码剖析

发布时间:2026/10/8 19:22:49 来源:尧图企业网站定制
WhatDreamsCost-ComfyUI Prompt Relay 完整指南时间感知注意力掩码与高斯惩罚矩阵源码剖析【免费下载链接】WhatDreamsCost-ComfyUILTX Director and a variety of other custom ComfyUI nodes and workflows项目地址: https://gitcode.com/gh_mirrors/wh/WhatDreamsCost-ComfyUIWhatDreamsCost-ComfyUI是一个 ComfyUI 自定义节点集核心亮点Prompt Relay让你用多段提示词分段控制 LTX / Wan 视频生成的每一幕。本文从源码层面拆解它的两大核心机制时间感知注意力掩码temporal attention mask与高斯惩罚矩阵Gaussian penalty matrix帮你理解为什么每段提示词只作用于对应画面并教你调参。 Prompt Relay 解决了什么问题普通文生视频只有一条提示词全片共用。想要前 2 秒是森林后 3 秒是海洋单条提示词做不到——所有帧会被同一组文本 token 平均条件化。Prompt Relay 的思路把一条提示词拆成全局段global 多个局部段local拼成一条完整提示词喂给 CLIP在扩散模型的交叉注意力阶段给每个视频 token 的注意力分数加上一张可学习的惩罚表视频 token 离某段提示词的目标帧越远惩罚越重结果每个片段只听自己那段提示词的话实现逐段分镜控制。核心实现都在两个文件里惩罚矩阵与掩码逻辑prompt_relay.py模型补丁把掩码注入注意力层patches.py 四步流水线从提示词到掩码调用入口在 ltx_director.py 的_encode_relay()整个流程四步走步骤函数作用1. 分词定位map_token_indices()把 global 各 local 提示词拼成一条完整提示词记录每段 token 的起止下标2. 分配帧数distribute_segment_lengths()把 latent 总帧数按比例分配给各段支持手动指定每段长度3. 构建惩罚参数build_segments()为每段计算中点帧、保护窗口、σ、强度输出q_token_idx参数表4. 生成掩码闭包create_mask_fn()返回一个mask_fn在注意力前向时按需构建并缓存惩罚矩阵一个贴心的细节如果时间轴上只有一段提示词节点会直接跳过注意力掩码、走原始速度见 ltx_director.py单段时零开销。 高斯惩罚矩阵核心公式真正的心脏是 build_temporal_cost()。它对每一帧的视频 tokenquery和每段提示词的 tokenkey计算惩罚cost strength × (relu(|query_frame − midpoint| − window)²) / (2σ²)翻译成白话每个惩罚值由四个旋钮决定参数含义直觉midpoint该段提示词负责的中心帧惩罚以它为圆心扩散window中心点周围免罚半径帧段内核心区域不受任何惩罚σsigma高斯衰减宽度σ 越小边界越锐利strength惩罚总强度越大跨段串味越少关键设计relu(距离 − window)意味着——在保护窗口内惩罚恒为 0一旦越界惩罚按距离的平方平滑上升。这就像高斯钟形曲线的外侧中心完全自由远处被强力压制交界处过渡柔和不生硬。σ 怎么定源码注释直接引用了 Prompt Relay 论文prompt_relay.pyσ 1 / ln(1/ε)其中ε就是节点上的epsilon参数默认 0.001。ε 越小 → σ 越小 → 惩罚越陡 → 分镜边界越硬。想要片段间柔和过渡把 epsilon 调到 0.5 以上即可节点工具提示ltx_director.py就是这么建议的。⏱️ 时间感知两种掩码模式视频 token 不一定整齐地每帧 N 个所以create_mask_fn()内置了两种模式prompt_relay.py① video 模式整帧索引适用LTX / Wan 视频 latenttoken 数恰好 帧数 × 每帧 token 数用token_idx // tokens_per_frame把每个 query 映射到整数帧号再套上面的高斯公式build_temporal_cost()。② scaled 模式比例索引适用LTX 音频 token——音频 token 数与视频帧数不成整数比没法映射到整帧改用query_i × latent_frames / Lq得到浮点等效帧公式相同但参数换成sigma_audio / window_audio / strength_audiobuild_temporal_cost_scaled()。build_segments()会为每段同时预计算视频和音频两套参数prompt_relay.py所以 LTX 音视频联合生成时两者都能被精确控制。此外还有三条跳过规则保证掩码不误伤Lq Lk自注意力 → 不掩码负提示词unconditional pass→ 不掩码只有正向条件被分段约束文本 key 长度短于视频 token 数即文本交叉注意力外的调用→ 不掩码。掩码构建后带缓存key 形状 模式 设备同一 shape 只算一次且返回前取负号-cost因为 ComfyUI 的注意力掩码是加性的惩罚值越大注意力权重被压低得越狠。 补丁注入如何把掩码塞进模型patterns 都在 patches.py按模型架构分两条路Wanapply_patches()整块替换各 transformer block 的cross_attn.forward。有掩码时走attention_pytorch并传入加性 mask无掩码时回落到optimized_attention不牺牲速度。LTXapply_patches()不替换 forward而是包装现有的attn2/audio_attn2前向_make_ltx_mask_wrapper()把 PromptRelay 掩码与可能存在的其他节点掩码如 KJNodes NAG相加叠加兼容性更强。一个值得注意的工程细节_masked_attention()SageAttention 等加速后端会忽略任意 mask所以带掩码的调用被强制路由到attention_pytorch并临时挂上optimized_attention_override确保不被其他加速层截胡——正确性优先于速度。⚙️ 实操参数速查参数位置建议epsilonLTXDirector 节点默认 0.001论文值边界锐利软过渡试 0.5segment_lengths时间轴编辑器自动填充各段像素帧数内部自动换算为 latent 帧除以时间压缩率global_promptLTXDirector 节点放全片不变的内容角色、画风、光照本地图片工作流example_workflows/提供首尾帧、I2V 等完整工作流参考调参口诀提示词串味上一幕内容渗进下一幕→ 调小epsilon或加大各段长度交界处有硬切感 → 调大epsilon获得平滑渐变单段生成时节点自动绕过掩码无需担心额外耗时。 延伸阅读节点实现与 UIltx_director.py前端时间轴编辑器逻辑js/ltx_director.js补丁/注入层patches.py节点注册入口init.py更多节点Sequencer、Keyframer、多图画加载README.mdPrompt Relay 的精髓一句话总结把谁在什么时候说话编进注意力分数里——免罚窗口保证段内自由高斯惩罚压制段外干扰ε 一个旋钮控制边界软硬。理解了这个矩阵你就能按画面分镜精确执导 LTX 视频了。【免费下载链接】WhatDreamsCost-ComfyUILTX Director and a variety of other custom ComfyUI nodes and workflows项目地址: https://gitcode.com/gh_mirrors/wh/WhatDreamsCost-ComfyUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑