ComfyUI Node

Load AudioX Model

Load AudioX Model pulls the whole thing off Hugging Face on first run

By Yuan-ManX·Created about a year ago·Updated about a year ago· 12
Load AudioX Model
    • model
    • sample_rate
    • sample_size
    • target_fps
    model_pathHKUSTAudio/AudioX

    Every AudioX workflow starts here. This node downloads the actual model, builds it from its config, loads the weights, shoves it onto your GPU, and hands you four values the rest of the graph depends on. It's the closest thing this pack has to a checkpoint loader, and it's the node that decides whether you're in for a 10-minute first run or a 30-second one.

    The model is AudioX (HKUST's ICLR 2026 paper, arXiv 2503.10522), billed as "anything-to-audio" generation: one latent diffusion transformer (DiT) that can take text, video, and audio conditions and synthesize sound for them. It's trained on the IF-caps dataset (7M+ annotated samples) and its strongest results, per the paper, are in text-to-audio and text-to-music. For the "video to foley" use case people actually run in ComfyUI, it competes with MMAudio - and the community is genuinely split on which you prefer; AudioX is the newer, more unified architecture.

    What it actually does

    The node calls get_pretrained_model(model_path), which uses huggingface_hub to download config.json and the checkpoint (model.safetensors if present, else model.ckpt) from Hugging Face into your HF cache, then instantiates the model from the config and loads the weights. Key detail: the README's manual wget instructions are redundant - the node auto-downloads everything on first run. You can skip the mkdir model && wget ... step entirely.

    That first download is chunky and the first build is slow, so don't panic when the run hangs for minutes on a blank canvas. It's not frozen; it's pulling a multi-gigabyte diffusion-transformer checkpoint.

    Inputs and outputs

    • model_path (STRING, default "HKUSTAudio/AudioX") - the HF repo id. The default is the official one; leave it alone unless you've fine-tuned your own.

    Four outputs:

    • model (MODEL) → into Generate.
    • sample_rate (SampleRate) - 44100 for the stock model. Wire this to SaveAudioXAudio and to Generate's sample_size input (see the type weirdness below).
    • sample_size (SampleSize) - 485100 samples, about 11 seconds of audio at 44.1 kHz. This is the natural length of a generation.
    • target_fps (FPS) - 5 for the stock model. Feed this to LoadAudioXVideo.

    Installing AudioX

    Install via ComfyUI Manager (search "ComfyUI-AudioX") or cd ComfyUI/custom_nodes && git clone https://github.com/Yuan-ManX/ComfyUI-AudioX.git, then pip install -r requirements.txt and conda install -c conda-forge ffmpeg libsndfile, then restart. The requirements are heavy (pinned pandas==2.0.2, descript-audio-codec, laion-clap, wandb) - a managed ComfyUI install may want its own venv. The checkpoint itself auto-downloads from Hugging Face the first time you run this node; the README's manual wget into model/ is redundant.

    Two things that will bite you

    First, the type labels in this pack are a mess. Generate's sample_size input is typed SampleRate, so ComfyUI will happily wire it to this node's sample_rate output - and you'll get ~1-second clips instead of 11-second ones, because the sampler sizes the noise to whatever number you hand it. If you want full-length audio you have to force the loader's sample_size (485100) in, types be damned.

    Second, licensing. AudioX ships under CC-BY-NC 4.0 - non-commercial. Fine for experiments and research, a real problem if you're building anything you intend to sell. Read that license before you get attached.

    CategoryAudioX

    Inputs (1)

    NameTypeDefaultDescription
    model_pathSTRINGHKUSTAudio/AudioX

    Outputs (4)

    NameTypeDescription
    modelMODEL
    sample_rateSampleRate
    sample_sizeSampleSize
    target_fpsFPS