ComfyUI-Dials:MiniMax H3 免训练引导向量滑块,一对提示词生成 Dial,可堆叠调节运动、情绪风格

插件33分钟前发布 小马良
2 0

ComfyUI-Dials 是一款专为 MiniMax H3 及 Pika H3 Flex 模型设计的免训练引导工具。其核心机制是通过分析仅在一个品质上存在差异的提示对(例如“完全静止”与“奔跑穿过场景”),将这种差异转化为约 14 KB 的轻量级向量文件。在推理阶段,该文件如同强度滑块:负强度将生成结果导向第一个提示的特征,正强度则导向第二个提示的特征。

  • GitHub:https://github.com/matlowai/ComfyUI-Dials

该工具的研发背景源于对图像 LoRA 影响视频生成的观察:研究发现,仅针对图像“细节”训练的 LoKr 会消耗约 20% 的主题运动特征,且事后的权重调整无法将外观与静止状态有效分离。Dials 正是通过提取提示空间中的共享差异向量,在不引入新概念的前提下,精准调节视频中特定品质(如运动幅度、情绪氛围)的强度。

ComfyUI-Dials:MiniMax H3 免训练引导向量滑块,一对提示词生成 Dial,可堆叠调节运动、情绪风格

核心机制与工作原理

Dials 的本质是“模型已理解概念的增量或减量”,它作用于用户编写的每一个提示。与传统的微调或提示词加权技术相比,其工程特性如下:

  • 轻量与免训练:每个 Dial 文件仅约 14 KB,构建过程仅需约一分钟(每个提示执行一次文本编码器传递),无需训练数据、无需参考图像、无需渲染。相比之下,典型的视频 LoRA 大小为 80–160 MB。
  • 向量计算与平均化:Make Dial 节点对提示对 (A, B) 进行编码并在 Token 级别取平均,计算 B – A 的差异。跨对变化的主题和具体措辞会相互抵消,仅保留共享的 A→B 概念差异。
  • 双模式注入机制:
    1. post_refiner (Hook,默认模式):向量在 token refiner 之后添加,即 DiT (Diffusion Transformer) 读取提示的确切位置。这是最干净、最忠实的模式。Apply Dial 会将其作为 ModelPatcher 对象补丁安装,模块树和权重路径保持不变,因此可与 LoRA 及其他 Dials 正常堆叠。
    2. pre_refiner (LoRA 文件模式):向量作为标准的 diff_b LoRA 键进入 condition_proj 的偏置项。这使得原生的“Load LoRA (model only)”节点也能应用它。由于 refiner 会重塑该向量,其每单位强度的效果更温和。
  • 内置校正机制:
    • Debias (去偏):在 refiner 之前,Token 平均值易受提示模板主导。Make Dial 会投影出内置滋扰对(无关措辞变化)的顶部方向并将其移除。在 pre_refiner 模式下,这能消除原始 Dials 中 76–99% 的通用偏移;在 refiner 之后,也能移除 2–5% 的残留偏移。
    • Calibrate (校准,仅限 pre_refiner):Make Dial 会运行 refiner 并重新缩放向量,确保强度 1 精确对应 DiT 读取提示处的一个平均对差异。

环境配置与安装部署(核心重点)

正确的环境配置是工作流正常运行的前提。Dials 节点设计轻量,无额外的 Python 依赖包。

1. 节点安装

打开终端或命令行工具,导航至 ComfyUI 的 custom_nodes 目录,执行以下 Git 克隆命令:

cd ComfyUI/custom_nodes
git clone https://github.com/matlowai/ComfyUI-Dials

验证安装:安装完成后重启 ComfyUI。控制台应无额外依赖报错,节点将自动注册至“Dials”分类下。

2. 预设文件部署

将仓库中 dials/ 目录下的 .safetensors 文件复制到 ComfyUI 的以下路径中:
ComfyUI/models/loras/dials/

注意:如果该目录不存在,请手动创建。

3. 工作流加载

安装完成后,可加载仓库提供的示例工作流进行验证:

  • workflows/dials_studio_h3.json:H3 文本到视频的运动滑块及一个反派槽位(含音频支持)。
  • workflows/dial_maker_h3.json:用于制作和预览自定义 Dial 的工作流。
  • workflows/dials_pika_h3_flex*.json:针对 Pika H3 Flex (6步) 的运动 Dial 工作流,包含带与不带 de-rope(去拖影)的版本。
  • 注:仓库同时提供了 API 格式的孪生文件(*_api.json)。

4. 编写高质量提示对的工程建议

  • 保持提示 A 和 B 完全相同,仅改变你想要调节的那一个品质。
  • 使用 {subject} 模板,并提供 4–8 个多样化的主题进行计算。
  • 描述你实际期望的视觉效果。例如,若希望控制整个场景的运动,需明确描述相机和环境也在移动;若写“runs past the camera”(跑过镜头),模型会字面理解为主体退出画面。
  • Make Dial 节点生成的报告会提供两个关键指标:对一致性(高于 0.6 表示方向干净)和 Debias 移除率(显示原始差异中有多少是通用措辞偏移)。

官方预设 Dials 库说明

仓库提供了经过验证的预设 Dial 文件,主要分为运动控制与氛围调整两类:

1. 运动控制 (Motion)

  • 文件:h3_motion.safetensors (Hook 模式) / h3_motion_lora.safetensors (LoRA 模式)
  • 提示对:静止/摆姿势/冻结 ↔ 奔跑/跳跃/充满活力地移动
  • 数据表现:基于 24 对(8 个主题 × 3 种变体)计算,一致性达 0.78。
  • 强度效果:
    • -2:近乎冻结、电影照片般的场景(0.05× 基础运动)。
    • 0:模型按默认行为生成。
    • +2:人物冲刺而非行走、交通奔涌、相机摆动(约 2.5–3× 基础运动)。
    • 注:LoRA 文件模式每单位强度约为 Hook 模式的 0.6 倍,因此使用时需将强度乘以约 1.6 倍以达到同等效果。

2. 反派氛围包 (Evil Flavors)

包含 8 种独特的氛围引导方向(均采用 Hook 模式并开启 Debias)。运动特征与这些氛围方向正交(余弦相似度 ≈ 0)。建议强度范围为 +1 到 +2;+4 为极端效果。

  • h3_evil_sinister (阴险):昏暗房间、逼近的前景剪影。⚠️ 注意:在 +2 强度下倾向于破坏音频,语音会被压碎(两行对话测试中,Whisper 词错误率从基础的 0.00 升至 0.84)。适合纯氛围场景,清晰对话场景需保持低强度。
  • h3_evil_creepy (诡异):无菌、过度照明的空间、人物僵硬凝视。
  • h3_evil_cold (冷酷):平淡、算计、无感情的企业反派解读。
  • h3_evil_unhinged (疯狂):⚠️ 注意:效果极端,即使在 +2 强度下也可能出现尖叫或猛扑恐吓动作,需谨慎使用。
  • h3_evil_seductive (诱惑):隐藏黑暗意图的魅力微笑。测试表明其在 +2 强度下仍能保持语音清晰(词错误率 0.00)。
  • h3_evil_corrupted (腐化):黑暗奇幻风格的衰败与腐烂蔓延。
  • h3_evil_dread (恐惧):无角色参与的纯粹不祥氛围。
  • h3_evil_impish (顽皮):较轻的诡计者一端,调皮、策划恶作剧。

高级应用:Pika H3 Flex 与 De-rope 工作流

Pika H3 Flex 是 MiniMax H3 的 6 步、无 CFG 的 LoRA 加速方案。Dials 可无缝接入该工作流,位于 Pika LoRA 和采样器之间。

ComfyUI-Dials:MiniMax H3 免训练引导向量滑块,一对提示词生成 Dial,可堆叠调节运动、情绪风格

1. De-rope (去拖影/运动平滑) 机制

在高强度运动下,6 步采样容易产生运动模糊或拖影。De-rope 工作流通过以下逻辑修复:

  • 第一遍:正常渲染 6 步。
  • 第二遍:系统检测对当前帧率而言移动过快的段落,保留这些关键帧,从 inject 0.48 的步数重新进入,渲染减慢的片段并映射回实时时间轴。
  • 结果:保留第一遍的原始音频,输出普通片段与 de-roped 片段。

2. 工作流选择与性能开销

在 1280×704 分辨率、141 帧的测试条件下(基于 RTX PRO 6000 Max-Q):

  • Pika 6 步基础渲染:约 1.5 分钟。
  • Pika 6 步 + De-rope:约 5.5–6 分钟。
  • MiniMax H3 25 步 (无 de-rope):约 5.5 分钟。
  • 结论:一个经过 de-rope 处理的 Pika 片段,其时间成本约等于基础模型进行一次常规的 25 步渲染,但能产出更多运动细节和更清晰的帧。

3. De-rope 强度与画质权衡 (PSNR 对比)

De-rope 传递会改变片段,PSNR(峰值信噪比)越高表示越接近原始普通片段:

  • Pika 最后 3 步(在约 inject 0.25 重新进入):22.5 dB
  • inject 0.48,遵循 Pika 的步骤(工作流默认):18.2 dB
  • 实验性 6+6 低于 0.48:17.3 dB

4. Pika 环境下的强度建议

  • 运动 Dial:在 Pika 上,+0.5 到 +1.0 是有用范围(相对运动增加 20%-23%)。达到 +1.5 或以上时,场景可能重新布置或角色变形;+3.0 会导致提示词失效。
  • 邪恶 Dial (如 Dread):在 motion +0.5 的基础上,+0.5 会使大厅变暗、出现黑色盔甲;+1.0 会呈现哥特式大厅、厚重深色板甲及腐朽的王冠,同时保持提示、角色和故事节拍不变。
  • 音频提示:若不需要背景音乐,请在提示词中明确写入 non_diegetic_music: N/A。

工程验证数据

在六个运动提示上进行的种子匹配渲染测试(测量移除相机的光流)表明:

  • Hook 模式 +2 强度:产生 2.7× 基础像素运动。
  • Hook 模式 -2 强度:产生 0.05× 基础像素运动(近乎冻结)。
  • 节点重现参考实现:在测试片段上,平均像素差为 1.4/255,运动测量值为 4.266(对比参考实现的 4.262),证明了向量注入机制的高度准确性与稳定性。
© 版权声明

相关文章