ComfyUI Yvann-Nodes 插件完全教程
1. 插件简介
插件地址: https://github.com/yvann-ba/ComfyUI_Yvann-Nodes
ComfyUI Yvann-Nodes 是一个超级酷炫的音频反应式插件!想象一下,你有一首喜欢的音乐,这个插件就像一个"音乐魔法师",能让你的AI生成的图片和视频跟着音乐的节拍一起跳舞!
主要功能:
- 让AI生成的内容跟着音乐节拍变化(就像音乐可视化器)
- 分析音乐中的不同乐器声音(鼓声、人声、贝斯等)
- 检测音乐中的高潮部分,让画面在这些时候发生变化
- 制作音频反应式的动画和视频
- 提供各种实用的数据转换工具
能带来什么效果:
- 制作跟着音乐节拍变化的AI动画
- 创建音乐MV风格的视频
- 让静态图片随音乐动起来
- 制作DJ风格的视觉效果
- 创建音频驱动的艺术作品
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI
- 点击右下角的 "Manager" 按钮
- 在搜索框输入 "yvann"
- 找到 "ComfyUI_Yvann-Nodes" 点击安装
- 重启 ComfyUI
方法二:手动安装
- 打开终端或命令提示符
- 进入你的 ComfyUI 安装目录下的 custom_nodes 文件夹
- 运行命令:
git clone https://github.com/yvann-ba/ComfyUI_Yvann-Nodes.git - 安装依赖:
pip install -r requirements.txt - 重启 ComfyUI
额外依赖安装
这个插件需要一些音频处理的库:
pip install torch torchaudio matplotlib scipy pillow numpy termcolor
3. 节点详细解析
3.1 Load Audio Separation Model 节点
这个节点是干嘛的?
这个节点就像一个"音乐分离大师",它能把一首完整的歌曲拆分成不同的部分,比如把鼓声、人声、贝斯、其他乐器分开。就像有一个超级厉害的音响师,能把混在一起的声音一个个分离出来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | 下拉选择 | Hybrid Demucs | 这是"分离算法选择器",选择用哪种方法来分离音乐 | 音频分离模型选择 | Hybrid Demucs效果好,Open-Unmix速度快 |
3.2 Audio Analysis 节点
这个节点是干嘛的?
这个节点就像一个"音乐分析师",它会仔细听你的音乐,然后告诉你每一秒钟音乐有多强烈。就像一个专业的DJ,能感受到音乐的每个节拍和情绪变化,然后把这些变化转换成数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_sep_model | audio_sep_model | AUDIO_SEPARATION_MODEL | 来自分离模型 | 这是"音乐分离工具",用来分析不同乐器 | 音频分离模型输入 | 连接Load Audio Separation Model |
| batch_size | batch_size | 整数 | 根据视频帧数 | 这是"分析片段数",决定把音乐分成多少段来分析 | 批处理大小 | 如果要生成30帧视频就填30 |
| fps | fps | 浮点数 | 8.0 | 这是"分析速度",每秒分析多少次 | 帧率设置 | 8表示每秒分析8次 |
| audio | audio | AUDIO | 音频文件 | 这是"要分析的音乐",你想让AI跟着跳舞的音乐 | 音频输入 | 上传你喜欢的音乐文件 |
| analysis_mode | analysis_mode | 下拉选择 | Drums Only | 这是"分析重点",选择重点关注音乐的哪个部分 | 分析模式选择 | Drums Only关注鼓点,Full Audio分析整首歌 |
| threshold | threshold | 浮点数 | 0.5 | 这是"敏感度调节器",数值越小越敏感 | 阈值设置 | 0.3很敏感,0.7不太敏感 |
| multiply | multiply | 浮点数 | 1.0 | 这是"强度放大器",让音乐的影响更明显 | 乘数因子 | 2.0让效果加倍,0.5让效果减半 |
3.3 Audio Peaks Detection 节点
这个节点是干嘛的?
这个节点就像一个"音乐高潮探测器",它专门找音乐中最激动人心的时刻。就像一个专业的音乐编辑,能准确找到歌曲中的爆发点,让你的视觉效果在这些时候发生变化。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_weights | audio_weights | FLOAT | 来自音频分析 | 这是"音乐强度数据",告诉节点音乐每个时刻的强度 | 音频权重输入 | 连接Audio Analysis的输出 |
| peaks_threshold | peaks_threshold | 浮点数 | 0.4 | 这是"高潮判断标准",多强的音乐才算高潮 | 峰值阈值 | 0.2容易触发,0.8很难触发 |
| min_peaks_distance | min_peaks_distance | 整数 | 5 | 这是"高潮间隔",两个高潮之间至少隔多久 | 最小峰值距离 | 5表示至少隔5个时间单位 |
3.4 Audio IPAdapter Transitions 节点
这个节点是干嘛的?
这个节点就像一个"图片切换导演",它会根据音乐的高潮时刻来切换不同的图片,还能控制切换的方式是渐变还是突然变化。就像制作幻灯片时的转场效果,但是跟着音乐节拍来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE | 图片组 | 这是"切换素材库",准备用来切换的所有图片 | 图像输入批次 | 上传多张不同风格的图片 |
| peaks_weights | peaks_weights | FLOAT | 来自峰值检测 | 这是"切换时机表",告诉节点什么时候切换图片 | 峰值权重输入 | 连接Audio Peaks Detection |
| transition_mode | transition_mode | 下拉选择 | linear | 这是"切换方式",选择图片怎么切换 | 过渡模式 | linear直线切换,ease_in_out平滑切换 |
| transition_length | transition_length | 整数 | 5 | 这是"切换时长",切换过程持续多长时间 | 过渡长度 | 5表示切换过程持续5个时间单位 |
| min_IPA_weight | min_IPA_weight | 浮点数 | 0.0 | 这是"最小影响力",图片的最小影响程度 | 最小IP适配器权重 | 0.0表示完全不影响 |
| max_IPA_weight | max_IPA_weight | 浮点数 | 1.0 | 这是"最大影响力",图片的最大影响程度 | 最大IP适配器权重 | 1.0表示完全控制画面 |
3.5 Audio Prompt Schedule 节点
这个节点是干嘛的?
这个节点就像一个"剧本编排师",它会根据音乐的高潮时刻来安排不同的文字描述。就像给电影配字幕,但是字幕会跟着音乐的节拍来变化。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| peaks_index | peaks_index | STRING | 来自峰值检测 | 这是"时间节点表",告诉节点什么时候换描述 | 峰值索引输入 | 连接Audio Peaks Detection的peaks_index |
| prompts | prompts | 多行文本 | 描述文字 | 这是"描述词库",每行写一个不同的描述 | 提示词列表 | 第一行写"红色背景",第二行写"蓝色背景" |
3.6 Audio Remixer 节点
这个节点是干嘛的?
这个节点就像一个"音乐调音台",它能调节音乐中不同乐器的音量大小。就像DJ在现场表演时调节不同音轨的音量,你可以让鼓声更响,或者让人声更突出。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_sep_model | audio_sep_model | AUDIO_SEPARATION_MODEL | 来自分离模型 | 这是"音乐分离工具",用来分离不同乐器 | 音频分离模型输入 | 连接Load Audio Separation Model |
| audio | audio | AUDIO | 音频文件 | 这是"要调音的音乐",原始的音乐文件 | 音频输入 | 上传你要调音的音乐 |
| drums_volume | drums_volume | 浮点数 | 0.0 | 这是"鼓声音量调节器",调节鼓声的大小 | 鼓声音量控制 | 2.0让鼓声更响,-5.0让鼓声更小 |
| vocals_volume | vocals_volume | 浮点数 | 0.0 | 这是"人声音量调节器",调节歌声的大小 | 人声音量控制 | 3.0让歌声更突出,-3.0让歌声更轻 |
| bass_volume | bass_volume | 浮点数 | 0.0 | 这是"贝斯音量调节器",调节低音的大小 | 贝斯音量控制 | 1.5让低音更有力,-2.0让低音更轻 |
| others_volume | others_volume | 浮点数 | 0.0 | 这是"其他乐器音量调节器",调节其他声音的大小 | 其他音量控制 | 调节除了鼓、人声、贝斯以外的声音 |
3.7 Edit Audio Weights 节点
这个节点是干嘛的?
这个节点就像一个"音乐数据美化师",它能让音乐分析出来的数据变得更平滑、更好用。就像给粗糙的数据做美容,让它们看起来更漂亮,用起来更顺手。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any_audio_weights | any_audio_weights | FLOAT | 音频权重数据 | 这是"原始音乐数据",需要美化的数据 | 音频权重输入 | 连接任何输出音频权重的节点 |
| smooth | smooth | 浮点数 | 0.0 | 这是"平滑度调节器",让数据变化更平缓 | 平滑系数 | 0.0不平滑,0.8很平滑 |
| min_range | min_range | 浮点数 | 0.0 | 这是"最小值设定",数据的最小值是多少 | 最小范围值 | 设为0.2表示最小不低于0.2 |
| max_range | max_range | 浮点数 | 1.0 | 这是"最大值设定",数据的最大值是多少 | 最大范围值 | 设为2.0表示最大不超过2.0 |
3.8 Repeat Image To Count 节点
这个节点是干嘛的?
这个节点就像一个"图片复印机",它能把你的图片复制很多份。如果你只有几张图片,但需要很多张来配合长时间的音乐,这个节点就能帮你把图片重复到足够的数量。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | 图片 | 这是"要复制的图片",原始的图片素材 | 图像输入 | 上传你想重复的图片 |
| count | count | 整数 | 1 | 这是"复制数量",总共要多少张图片 | 重复次数 | 设为30表示要30张图片 |
3.9 Invert Floats 节点
这个节点是干嘛的?
这个节点就像一个"数字翻转器",它能把数字颠倒过来。比如原来大的数字变小,小的数字变大。就像把山峰变成山谷,把山谷变成山峰。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| floats | floats | FLOAT | 数字列表 | 这是"要翻转的数字",一串需要颠倒的数字 | 浮点数输入 | 连接任何输出数字列表的节点 |
3.10 Floats Visualizer 节点
这个节点是干嘛的?
这个节点就像一个"数据图表制作器",它能把一串枯燥的数字变成漂亮的图表。就像把账单变成彩色的统计图,让你一眼就能看出数据的变化趋势。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| floats | floats | FLOAT | 数字列表 | 这是"主要数据",要画成图表的数字 | 主要浮点数输入 | 连接音频分析的权重输出 |
| title | title | 字符串 | Graph | 这是"图表标题",给图表起个名字 | 图表标题 | 写"音乐强度变化图" |
| x_label | x_label | 字符串 | X-Axis | 这是"横轴标签",横轴代表什么 | X轴标签 | 写"时间" |
| y_label | y_label | 字符串 | Y-Axis | 这是"纵轴标签",纵轴代表什么 | Y轴标签 | 写"强度" |
| floats_optional1 | floats_optional1 | FLOAT | 可选数字列表 | 这是"第二组数据",可以同时显示多组数据 | 可选浮点数输入1 | 连接另一个数据源 |
| floats_optional2 | floats_optional2 | FLOAT | 可选数字列表 | 这是"第三组数据",最多可以显示三组数据 | 可选浮点数输入2 | 连接第三个数据源 |
3.11 Mask To Float 节点
这个节点是干嘛的?
这个节点就像一个"遮罩分析器",它能把黑白图片(遮罩)转换成一个数字。就像把一张黑白照片的"白色程度"用一个数字来表示。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | 遮罩图片 | 这是"要分析的黑白图",需要转换成数字的遮罩 | 遮罩输入 | 连接任何输出遮罩的节点 |
3.12 Floats To Weights Strategy 节点
这个节点是干嘛的?
这个节点就像一个"数据格式转换器",它能把普通的数字列表转换成特殊的格式,让其他节点能更好地使用这些数据。就像把普通话翻译成方言,让特定的节点能听懂。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| floats | floats | FLOAT | 数字列表 | 这是"要转换的数字",需要转换格式的数字列表 | 浮点数输入 | 连接音频权重或其他数字输出 |
3.13 Float to Int 节点
这个节点是干嘛的?
这个节点就像一个"数字取整器",它能把带小数点的数字变成整数。就像把3.7变成4,把2.3变成2。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| float | float | FLOAT | 小数列表 | 这是"要取整的小数",带小数点的数字列表 | 浮点数输入 | 连接任何输出小数的节点 |
4. 前端功能解析
当前插件还包含2个前端JavaScript功能:
4.1 外观美化功能 (appearance.js)
这个功能就像一个"节点化妆师",它会给所有的Yvann节点涂上漂亮的蓝色,让它们在ComfyUI中更容易识别。就像给同一个团队的人穿上统一的制服。
4.2 帮助弹窗功能 (help_popup.js)
这个功能就像一个"贴心助手",当你点击节点上的"?"图标时,会弹出详细的说明文档。就像每个节点都有一个说明书,随时可以查看。
5. 使用技巧和建议
5.1 音频文件准备
- 选择合适的音乐:节奏明显的音乐效果更好
- 音频格式:支持常见的音频格式如MP3、WAV
- 音频长度:建议不要太长,1-3分钟比较合适
- 音质要求:音质越好,分析效果越准确
5.2 参数调节技巧
- threshold参数:从0.3开始尝试,根据效果调整
- multiply参数:通常在1.0-2.0之间效果较好
- batch_size设置:应该与你想生成的帧数匹配
- fps设置:8-12比较合适,太高会增加计算量
5.3 工作流搭建建议
- 基础流程:音频加载 → 模型加载 → 音频分析 → 峰值检测 → 应用效果
- 图片准备:准备多张风格不同的图片用于切换
- 测试调优:先用短音频测试,确定参数后再用完整音频
- 性能优化:合理设置batch_size,避免显存不足
5.4 创意应用技巧
- 音乐类型匹配:电子音乐用Drums Only,抒情歌曲用Vocals Only
- 视觉风格搭配:快节奏音乐配动感图片,慢节奏配静态图片
- 过渡效果选择:激烈音乐用linear,柔和音乐用ease_in_out
- 多层次效果:同时使用多个分析模式创建复杂效果
6. 常见问题解答
Q1: 为什么音频分析很慢?
A: 可能的原因:
- 音频文件太长,建议先用短音频测试
- batch_size设置过大,尝试减小数值
- 电脑性能不足,可以降低fps设置
- 模型下载中,第一次使用需要下载模型
Q2: 生成的效果不明显怎么办?
A: 调整建议:
- 降低threshold值,让系统更敏感
- 增加multiply值,放大效果
- 检查音频是否有明显节拍
- 尝试不同的analysis_mode
Q3: 峰值检测找不到高潮怎么办?
A: 解决方法:
- 降低peaks_threshold值
- 减小min_peaks_distance值
- 检查音频权重是否正常
- 尝试不同的音频分析模式
Q4: 图片切换不流畅怎么办?
A: 优化方案:
- 增加transition_length值
- 选择ease_in_out过渡模式
- 检查图片数量是否足够
- 调整min_IPA_weight和max_IPA_weight
Q5: 内存不足怎么办?
A: 解决方案:
- 减小batch_size
- 使用较短的音频文件
- 降低图片分辨率
- 关闭其他占用内存的程序
Q6: 音频分离效果不好怎么办?
A: 改进方法:
- 尝试不同的分离模型
- 使用高质量的音频文件
- 检查音频是否为立体声
- 避免使用过度压缩的音频
Q7: 如何制作音乐MV效果?
A: 制作步骤:
- 准备节奏感强的音乐
- 使用Drums Only模式分析
- 设置较低的peaks_threshold
- 准备多张风格统一的图片
- 使用Audio IPAdapter Transitions
Q8: 数据可视化图表看不清怎么办?
A: 改善方法:
- 调整图表标题和标签
- 使用Floats Visualizer查看数据趋势
- 检查数据范围是否合理
- 尝试Edit Audio Weights平滑数据
7. 高级应用案例
7.1 制作音频反应式动画
- 准备素材:选择节奏明显的电子音乐
- 音频分析:使用Drums Only模式
- 峰值检测:设置threshold为0.3
- 图片切换:准备10-20张不同颜色的抽象图片
- 应用效果:使用linear过渡模式
7.2 创建人声驱动的视觉效果
- 音频选择:选择人声突出的歌曲
- 分析模式:使用Vocals Only
- 数据处理:用Edit Audio Weights平滑数据
- 视觉应用:配合人物肖像图片
- 效果调优:使用ease_in_out过渡
7.3 制作DJ风格的视觉秀
- 音乐准备:使用多段式电子音乐
- 多模式分析:同时分析鼓声和贝斯
- 复杂切换:使用Audio Prompt Schedule
- 视觉素材:准备霓虹灯风格图片
- 节奏同步:精确调节时间参数
8. 总结
ComfyUI Yvann-Nodes 插件是一个功能强大的音频反应式工具集,通过12个核心节点和2个前端功能,你可以:
- 分析音乐的各种特征
- 检测音乐中的高潮时刻
- 创建跟随音乐变化的视觉效果
- 制作专业的音频反应式动画
- 处理和转换各种数据格式
学习路径建议:
- 从简单的音频分析开始
- 学会使用峰值检测
- 掌握图片切换技巧
- 尝试复杂的组合效果
- 创作自己的音频反应式作品
最重要的提醒:
- 使用合法的音频文件
- 注意版权问题
- 合理使用计算资源
- 多实验找到最佳参数
- 享受音乐与视觉结合的乐趣!
这个插件为音频可视化和反应式艺术创作开启了新的可能性,让每个人都能成为音乐视觉艺术家!