3.3 KiB
3.3 KiB
Documentation
- Class name: SoundReactive
- Category: KJNodes/audio
- Output node: False
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
SoundReactive节点专门用于处理音频输入,并根据声音水平调整其行为。它能动态响应特定频率范围内声音强度的变化,并通过声音水平、频率范围和归一化等参数提供自定义选项。该节点特别适用于创建实时的音频反应式可视化或效果。
Input types
Required
- sound_level
- 指定要处理的当前声音水平。它通过根据乘数和归一化设置进行缩放来影响节点的输出,直接影响对音频输入的动态响应。
- Comfy dtype: FLOAT
- Python dtype: float
- start_range_hz
- 定义感兴趣频率范围的下限。该参数有助于将节点的敏感度集中在音频频谱的特定部分。
- Comfy dtype: INT
- Python dtype: int
- end_range_hz
- 设置要考虑的频率范围的上限。它与start_range_hz配合使用,以微调节点对所需频带的反应性。
- Comfy dtype: INT
- Python dtype: int
- multiplier
- 对声音水平应用缩放因子,允许更精细地控制节点对音频输入的响应性。
- Comfy dtype: FLOAT
- Python dtype: float
- smoothing_factor
- 决定应用于声音水平的平滑程度,有助于创建更平滑的过渡和效果。
- Comfy dtype: FLOAT
- Python dtype: float
- normalize
- 启用或禁用声音水平的归一化,这可以标准化输入范围,以在不同音频源之间实现一致的处理。
- Comfy dtype: BOOLEAN
- Python dtype: bool
Output types
- sound_level
- 经过处理的声音水平,根据节点的参数进行调整。它反映了音频强度的动态变化,经过缩放和可选的归一化处理。
- Comfy dtype: FLOAT
- Python dtype: float
- sound_level_int
- 处理后声音水平的整数表示,为需要离散级别的场景提供简化或量化的输出。
- Comfy dtype: INT
- Python dtype: int
Usage tips
- Infra type:
CPU - Common nodes: unknown
Source code
class SoundReactive:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"sound_level": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 99999, "step": 0.01}),
"start_range_hz": ("INT", {"default": 150, "min": 0, "max": 9999, "step": 1}),
"end_range_hz": ("INT", {"default": 2000, "min": 0, "max": 9999, "step": 1}),
"multiplier": ("FLOAT", {"default": 1.0, "min": 0.01, "max": 99999, "step": 0.01}),
"smoothing_factor": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step": 0.01}),
"normalize": ("BOOLEAN", {"default": False}),
},
}
RETURN_TYPES = ("FLOAT","INT",)
RETURN_NAMES =("sound_level", "sound_level_int",)
FUNCTION = "react"
CATEGORY = "KJNodes/audio"
DESCRIPTION = """
Reacts to the sound level of the input.
Uses your browsers sound input options and requires.
Meant to be used with realtime diffusion with autoqueue.
"""
def react(self, sound_level, start_range_hz, end_range_hz, smoothing_factor, multiplier, normalize):
sound_level *= multiplier
if normalize:
sound_level /= 255
sound_level_int = int(sound_level)
return (sound_level, sound_level_int, )