VK Load Audio
A no-frills audio loader with a weirdly clever 'hum' trick
- audio
VK Load Audio is the pack's utility node: a straightforward audio file loader that outputs ComfyUI's AUDIO type, with trimming, normalization, and one genuinely clever extra. It's not trying to be the VHS Video Helper Suite - it's the load-and-go audio input for the tiled-render pipeline, and it does that one job well.
How it works
Under the hood it's ffmpeg with a nicer face. It shells out to extract raw float audio, figures out the sample rate and channel count by parsing ffmpeg's own stderr, and reshapes it into the [1, C, T] waveform tensor ComfyUI expects. The environment variables it respects (VHS_FORCE_FFMPEG_PATH, VHS_USE_IMAGEIO_FFMPEG) are borrowed straight from VHS conventions - it tries the imageio-ffmpeg binary first, falls back to a system ffmpeg, and throws if neither exists.
Then the interesting part: normalization plus "hum." The normalization is the good kind - it peak-normalizes, then RMS-boosts quiet audio up to a target level, so a whisper-quiet voice track doesn't arrive at the mixer at -40dB. The hum_volume input (default 0.01, range 0–1) adds something you won't see in most loaders: it takes the FFT of the audio, keeps the magnitude spectrum but randomizes the phase, and re-synthesizes - then mixes that in at the level you set. The result is a subtle noise bed shaped exactly like the source audio's own spectrum. Turned up it sounds like a hum; kept low it's a cheap way to fill out thin voice recordings. The author clearly reached for it to make character vocal clips feel less sterile.
Inputs that matter
audio_file- path to the file, default"input/"(a placeholder, not a real default). The path is validated against the filesystem, and a bad path raises rather than silently failing.start_time/duration- trim a segment: skip the first N seconds, or cap the length. Default 0 means "the whole file."hum_volume- the shaped-noise level. Start at the default0.01; it's designed to be subtle.
Output
One output: audio of type AUDIO. Wire it into any node that accepts AUDIO - in this pack's flow that's the mix and character voice side of the render, but it'll happily feed a VHS-style audio-into-video node or anything else ComfyUI has.
Install and gotchas
Shared pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/VK/vk-nodes
or ComfyUI Manager → search "VK Nodes", then restart. There's no requirements.txt for the nodes themselves - the only pip-required deps are the Google libraries for the optional worker.py, which this node doesn't touch.
The real prerequisite is ffmpeg, and it's non-negotiable. If you get "No valid ffmpeg found" or the extraction raises, install ffmpeg (or let imageio-ffmpeg provide it) and retry. Beyond that, the two footguns are both self-inflicted: leaving audio_file as the placeholder "input/" gives you a path error, and cranking hum_volume near 1.0 turns the track into static - the max is technically 1, but it's a texture knob, not a volume knob. Keep it low, let the normalization do the loudness work.
It's a small node with a real take: most audio loaders just load. This one also fixes your levels and, if you want, adds a spectral shimmer that most people will never notice but that makes thin voice recordings sit better in a mix. For that alone it's worth knowing about even if the rest of the pack isn't your thing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_file | STRING | input/ | — |
| start_time | FLOAT | 0.00 | — |
| duration | FLOAT | 0.00 | — |
| hum_volume | FLOAT | 0.010–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |