Load AudioX Model
Load AudioX Model pulls the whole thing off Hugging Face on first run
- model
- sample_rate
- sample_size
- target_fps
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) → intoGenerate.sample_rate(SampleRate) - 44100 for the stock model. Wire this toSaveAudioXAudioand toGenerate'ssample_sizeinput (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 toLoadAudioXVideo.
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | STRING | HKUSTAudio/AudioX | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| sample_rate | SampleRate | — |
| sample_size | SampleSize | — |
| target_fps | FPS | — |