Nodes/ComfyUI_Aniportrait/Audio Path 🎥AniPortrait
ComfyUI Node

Audio Path 🎥AniPortrait

Load the Audio That Drives the Face — and Keep It Handy for the Final Mux

By frankchieng·Created 2 years ago·Updated 2 years ago· 59
Audio Path 🎥AniPortrait
    • audio_path
    • audio
    â—„audio_pathX://insert/path/audio.wavâ–º
    â—„seek_seconds0.00â–º

    AniPortrait's audio-driven mode is exactly what it sounds like: give it a voice recording and a photo, and it makes the photo talk. AniPortrait_Audio_Path is the node that hands that recording to the generator - and, usefully, it also hands you back the audio in a form VHS Video Combine can mux onto the finished video.

    What it does

    You give it a path to a .wav (or .mp3), it validates the file exists, and it returns the path twice over in two different flavors: an Audio_Path for the AniPortrait generator's audio_path input, and a VHS_AUDIO output that carries the extracted audio bytes for the Video Helper Suite nodes downstream. That second output is the quiet killer feature - it means the audio you drove the animation with is the same audio you can paste back onto the rendered clip, in one graph, without a separate extraction step.

    It also has one optional input worth knowing: seek_seconds (FLOAT, default 0). Set it to skip past silence or lead-in when you start animating - handy when the audio file has a few dead seconds at the front and you don't want the face mouthing nothing.

    How it works

    Internally it uses the pack's ffmpeg wrapper to extract the audio to raw WAV bytes (the extraction is lazy - it's a callable returned in the VHS_AUDIO output, so it only runs when something actually consumes it). It re-evaluates when the audio file changes on disk, which is convenient while you're iterating on a take.

    The one real dependency: the VHS_AUDIO output assumes ComfyUI Video Helper Suite is installed, since that's the type system it plugs into. If you don't have VHS, the output still exists but there's nothing to connect it to - and honestly, VHS is a dependency you want anyway, since this pack's own workflows are built around it.

    Using it in the audio-driven workflow

    The pack's audio2video_workflow.json wires it like this:

    1. Load Image → reference photo → AniPortrait_Audio2Video's ref_image
    2. AniPortrait_Audio_Path → audio_path → AniPortrait_Audio2Video's audio_path
    3. AniPortrait_Audio2Video → images → VHS Video Combine
    4. AniPortrait_Audio_Path → audio → VHS Video Combine's audio input

    That last connection is what puts the sound back on the video. Skip it and you get a silent clip.

    Install

    It ships with the pack, so one install gets you here:

    cd ComfyUI/custom_nodes
    git clone https://github.com/frankchieng/ComfyUI_Aniportrait
    cd ComfyUI_Aniportrait && pip install -r requirements.txt
    

    or find "ComfyUI_Aniportrait" in ComfyUI Manager and restart. Note this node is only the input side - the actual talking-head generation happens in AniPortrait_Audio2Video, which needs the full stack of model weights (SD 1.5, VAE, wav2vec2, the audio2mesh/audio2pose checkpoints, and more) to do anything. The Audio Path node is the easy part; the models are the project.

    CategoryAniPortrait 🎥Video

    Inputs (2)

    NameTypeDefaultDescription
    audio_pathSTRINGX://insert/path/audio.wav—
    seek_secondsoptFLOAT0.00—

    Outputs (2)

    NameTypeDescription
    audio_pathAudio_Path—
    audioVHS_AUDIO—