Nodes/VK Nodes/VK Load Audio
ComfyUI Node

VK Load Audio

A no-frills audio loader with a weirdly clever 'hum' trick

By VK·Created about a year ago·Updated about a year ago· 0
VK Load Audio
    • audio
    audio_fileinput/
    start_time0.00
    duration0.00
    hum_volume0.01

    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 default 0.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.

    Categoryvk-nodes

    Inputs (4)

    NameTypeDefaultDescription
    audio_fileSTRINGinput/
    start_timeFLOAT0.00
    durationFLOAT0.00
    hum_volumeFLOAT0.010–1

    Outputs (1)

    NameTypeDescription
    audioAUDIO