ComfyUI-AudioScheduler 插件完全教程
1. 插件简介
插件地址: https://github.com/a1lazydog/ComfyUI-AudioScheduler
这个插件就像是给 ComfyUI 装了一双"音乐的耳朵"!它能听懂音乐的节拍和强弱变化,然后根据音乐的起伏来控制你的图片生成。
能给我们带来什么效果?
- 让图片跟着音乐的节拍变化(比如鼓点响起时切换画面)
- 根据音乐的高低音来调整图片的风格
- 制作音乐可视化动画
- 让 AI 生成的视频更有节奏感
简单来说,就是让你的 AI 创作能"听音乐跳舞"!
2. 如何安装
方法一:使用 ComfyUI Manager(推荐)
- 打开 ComfyUI Manager
- 搜索 "ComfyUI-AudioScheduler"
- 点击安装即可
方法二:手动安装
- 进入你的 ComfyUI 安装目录
- 找到
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/a1lazydog/ComfyUI-AudioScheduler.git
- 重启 ComfyUI
3. 节点详细解析
3.1 AudioToAudioData 节点 - 音频转换器
这个节点就像一个"音频翻译官",把普通的音频文件翻译成 ComfyUI 能理解的格式。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | 来自LoadAudio节点 | 把音频文件变成可以分析的数据 | 将音频文件转换为AudioData对象 | 连接LoadAudio节点的输出到这里 |
3.2 AudioToFFTs 节点 - 音频频谱分析器
这个节点就像一个"音乐显微镜",能把音乐分解成不同的频率成分,让我们看到音乐的"内部结构"。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO_DATA类型 | 来自AudioToAudioData | 要分析的音频数据 | 输入的音频数据对象 | 连接AudioToAudioData的输出 |
| channel | channel | 0-24的整数 | 0 | 选择分析哪个声道(左右声道) | 指定要分析的音频声道 | 0=左声道,1=右声道,立体声选0即可 |
| frames_per_second | frames_per_second | 0-240的整数 | 12 | 每秒分析多少次(像视频帧率) | 设置FFT分析的帧率 | 12表示每秒分析12次,数值越高越精细 |
| start_at_frame | start_at_frame | -100000到100000 | 0 | 从第几帧开始分析 | 指定开始分析的帧位置 | 0表示从头开始,负数表示从后往前数 |
| limit_frames | limit_frames | 0-100000的整数 | 0 | 最多分析多少帧(0表示全部) | 限制分析的帧数 | 0表示分析全部,100表示只分析100帧 |
3.3 AudioToAmplitudeGraph 节点 - 音频振幅图表生成器
这个节点就像一个"音乐画家",能把音乐的强弱变化画成图表,让你直观看到音乐的"波浪"。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO_DATA类型 | 来自AudioToAudioData | 要画图的音频数据 | 输入的音频数据对象 | 连接AudioToAudioData的输出 |
| channel | channel | 0-24的整数 | 0 | 选择分析哪个声道 | 指定要分析的音频声道 | 0=左声道,1=右声道 |
| lower_band_range | lower_band_range | 0-100000的整数 | 500 | 分析频率的下限(低音部分) | 频率范围的下限值 | 500表示从500Hz开始分析 |
| upper_band_range | upper_band_range | 0-100000的整数 | 4000 | 分析频率的上限(高音部分) | 频率范围的上限值 | 4000表示分析到4000Hz为止 |
3.4 BatchAmplitudeSchedule 节点 - 批量振幅调度器
这个节点就像一个"音乐节拍器",能从音乐中提取出节拍强弱信息,用来控制动画的变化。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_fft | audio_fft | AUDIO_FFT类型 | 来自AudioToFFTs | 要处理的频谱数据 | 输入的FFT数据列表 | 连接AudioToFFTs的输出 |
| operation | operation | avg/max/sum | max | 怎么计算振幅强度 | 振幅计算方式 | max=取最大值,avg=取平均值,sum=求和 |
| lower_band_range | lower_band_range | 0-100000的整数 | 500 | 关注频率的下限 | 频率范围的下限值 | 500表示关注500Hz以上的声音 |
| upper_band_range | upper_band_range | 0-100000的整数 | 4000 | 关注频率的上限 | 频率范围的上限值 | 4000表示关注4000Hz以下的声音 |
3.5 ClipAmplitude 节点 - 振幅裁剪器
这个节点就像一个"音量限制器",防止音乐太大声或太小声,把音量控制在合适的范围内。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| amplitude | amplitude | AMPLITUDE类型 | 来自BatchAmplitudeSchedule | 要限制的振幅数据 | 输入的振幅数据 | 连接BatchAmplitudeSchedule的输出 |
| max_amplitude | max_amplitude | 0以上的整数 | 1000 | 最大音量限制 | 振幅的最大允许值 | 1000表示超过1000的都变成1000 |
| min_amplitude | min_amplitude | 0以上的整数 | 0 | 最小音量限制 | 振幅的最小允许值 | 0表示低于0的都变成0 |
3.6 TransientAmplitudeBasic 节点 - 基础瞬态振幅处理器
这个节点就像一个"音乐情绪调节器",能让音乐的变化更平滑,不会突然跳跃。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| amplitude | amplitude | AMPLITUDE类型 | 来自其他振幅节点 | 要调节的振幅数据 | 输入的振幅数据 | 连接任何输出振幅的节点 |
| frames_to_attack | frames_to_attack | 0以上的整数 | 0 | 音量上升需要多少帧 | 攻击阶段的帧数 | 6表示音量上升需要6帧时间 |
| frames_to_hold | frames_to_hold | 0以上的整数 | 6 | 保持高音量多少帧 | 保持阶段的帧数 | 6表示保持高音量6帧时间 |
| frames_to_release | frames_to_release | 0以上的整数 | 6 | 音量下降需要多少帧 | 释放阶段的帧数 | 6表示音量下降需要6帧时间 |
3.7 AmplitudeToNumber 节点 - 振幅转数字
这个节点就像一个"数字转换器",把音乐的强弱变成具体的数字,方便其他节点使用。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| amplitude | amplitude | AMPLITUDE类型 | 来自其他振幅节点 | 要转换的振幅数据 | 输入的振幅数据 | 连接任何输出振幅的节点 |
3.8 AmplitudeToGraph 节点 - 振幅图表生成器
这个节点就像一个"音乐可视化器",把音乐的强弱变化画成图表,让你看到音乐的"心电图"。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| amplitude | amplitude | AMPLITUDE类型 | 来自其他振幅节点 | 要画图的振幅数据 | 输入的振幅数据 | 连接任何输出振幅的节点 |
3.9 FloatArrayToGraph 节点 - 浮点数组图表生成器
这个节点就像一个"通用画图工具",能把任何数字序列画成图表。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| float_array | float_array | FLOAT数组类型 | 来自其他节点 | 要画图的数字序列 | 输入的浮点数数组 | 连接任何输出浮点数组的节点 |
3.10 NormalizeAmplitude 节点 - 振幅标准化器
这个节点就像一个"音量平衡器",把所有音量都调整到0到1之间,让大小声都变得均匀。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| amplitude | amplitude | AMPLITUDE类型 | 来自其他振幅节点 | 要标准化的振幅数据 | 输入的振幅数据 | 连接任何输出振幅的节点 |
| invert_normalized | invert_normalized | True/False | False | 是否反转结果(大声变小声) | 是否反转标准化结果 | True表示原来大的变小,小的变大 |
3.11 GateNormalizedAmplitude 节点 - 标准化振幅门控器
这个节点就像一个"音量开关",只有音量超过设定值才让信号通过,小于设定值就变成0。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| normalized_amp | normalized_amp | NORMALIZED_AMPLITUDE类型 | 来自NormalizeAmplitude | 要过滤的标准化振幅 | 输入的标准化振幅数据 | 连接NormalizeAmplitude的输出 |
| gate_normalized | gate_normalized | 0.0-1.0的小数 | 0.0 | 门槛值(低于这个值就变0) | 门控阈值 | 0.5表示低于0.5的都变成0 |
3.12 NormalizedAmplitudeToNumber 节点 - 标准化振幅转数字
这个节点就像一个"智能数字转换器",不仅能把音量转成数字,还能加上额外的数值。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| normalized_amp | normalized_amp | NORMALIZED_AMPLITUDE类型 | 来自标准化节点 | 要转换的标准化振幅 | 输入的标准化振幅数据 | 连接标准化振幅相关节点 |
| add_to | add_to | 0.0-4.0的小数 | 0.0 | 额外加上的数值 | 添加到振幅值的数值 | 0.5表示每个值都加0.5 |
| threshold_for_add | threshold_for_add | 0.0-1.0的小数 | 0.0 | 超过多少才加数值 | 添加数值的阈值条件 | 0.3表示只有超过0.3的值才加 |
| add_ceiling | add_ceiling | 0.1-4.0的小数 | 1.0 | 最大值限制 | 结果的最大值限制 | 1.0表示结果不能超过1.0 |
3.13 NormalizedAmplitudeToGraph 节点 - 标准化振幅图表生成器
这个节点就像一个"标准化音乐可视化器",专门画标准化后的音乐图表。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| normalized_amp | normalized_amp | NORMALIZED_AMPLITUDE类型 | 来自标准化节点 | 要画图的标准化振幅 | 输入的标准化振幅数据 | 连接标准化振幅相关节点 |
3.14 NormalizedAmplitudeDrivenString 节点 - 标准化振幅驱动文本
这个节点就像一个"音乐DJ",能根据音乐的节拍自动切换不同的文字提示词。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 多行文本 | 默认示例文本 | 要切换的文字列表(每行一个) | 输入的文本提示词列表 | 写上"猫\n狗\n兔子",音乐节拍时会切换 |
| normalized_amp | normalized_amp | NORMALIZED_AMPLITUDE类型 | 来自标准化节点 | 控制切换的音乐数据 | 输入的标准化振幅数据 | 连接标准化振幅相关节点 |
| triggering_threshold | triggering_threshold | 0.0-1.0的小数 | 0.6 | 多大声音才切换文字 | 触发文本切换的阈值 | 0.6表示音量超过0.6才切换 |
| loop | loop | True/False | True | 文字用完了是否重复使用 | 是否循环使用文本列表 | True表示文字用完了从头开始 |
| shuffle | shuffle | True/False | False | 是否随机打乱文字顺序 | 是否随机排列文本 | True表示每次都随机选择文字 |
3.15 前端音频上传功能
插件还包含一个前端JavaScript功能,让你可以直接在ComfyUI界面上传音频文件。
功能说明
| 功能名称 | 代码文件 | 作用 | 使用方法 |
|---|---|---|---|
| 音频文件上传 | audioUpload.js | 在LoadAudio节点添加上传按钮 | 点击"choose file to upload"按钮选择mp3或wav文件 |
4. 使用技巧和建议
4.1 基础使用流程
- 加载音频:使用LoadAudio节点加载音频文件
- 转换格式:用AudioToAudioData节点转换音频格式
- 分析频谱:用AudioToFFTs节点分析音频频谱
- 提取振幅:用BatchAmplitudeSchedule节点提取振幅信息
- 标准化处理:用NormalizeAmplitude节点标准化数据
- 应用到生成:将处理后的数据连接到其他生成节点
4.2 频率范围选择建议
- 低音鼓点:20-250Hz
- 人声主要频率:500-4000Hz
- 高音细节:4000-8000Hz
- 全频段:20-20000Hz
4.3 参数调优建议
- frames_per_second:视频帧率的2-4倍效果最好
- triggering_threshold:从0.3开始调试,根据音乐强弱调整
- transient参数:attack=0, hold=3-6, release=6-12 是常用组合
5. 常见问题解答
Q1:为什么我的音频没有反应?
A1: 检查以下几点:
- 确保音频文件格式正确(mp3或wav)
- 检查频率范围设置是否合理
- 确认triggering_threshold不要设置太高
Q2:生成的图表看不清楚怎么办?
A2: 可以尝试:
- 调整频率范围,缩小范围会更清晰
- 使用ClipAmplitude节点限制振幅范围
- 检查音频质量,低质量音频分析效果差
Q3:文字切换太频繁或太少怎么办?
A3: 调整triggering_threshold参数:
- 切换太频繁:提高数值(比如从0.6改到0.8)
- 切换太少:降低数值(比如从0.6改到0.4)
Q4:如何让动画更平滑?
A4: 使用TransientAmplitudeBasic节点:
- 增加frames_to_attack让上升更平滑
- 增加frames_to_hold让变化不那么突然
- 增加frames_to_release让下降更平滑
6. 进阶应用示例
6.1 多频段控制
可以同时使用多个BatchAmplitudeSchedule节点,分别处理不同频段:
- 低频控制背景变化
- 中频控制主体变化
- 高频控制细节变化
6.2 音乐可视化
结合各种Graph节点,可以制作专业的音乐可视化效果:
- 实时频谱显示
- 振幅波形显示
- 多维度数据展示
6.3 节拍同步动画
使用NormalizedAmplitudeDrivenString节点可以制作:
- 歌词同步显示
- 场景切换动画
- 角色动作同步
7. 总结
ComfyUI-AudioScheduler插件为ComfyUI带来了强大的音频分析和控制能力。通过15个专业节点的组合使用,你可以:
- 让AI生成内容跟随音乐节拍
- 制作专业的音乐可视化效果
- 实现音频驱动的动画控制
- 创造更有节奏感的视觉作品
记住,音频处理是一个需要实践的技能,多尝试不同的参数组合,你会发现更多有趣的效果!
希望这份教程能帮助你更好地使用ComfyUI-AudioScheduler插件,创造出令人惊艳的音频驱动视觉作品!