ControlFoley Dependencies Loader
Where your 16GB download actually happens
- controlfoley_dependencies
- weights_dir
- status
Load ControlFoley Dependencies is the first node in the advanced chain, and it's where almost all of the pack's pain lives - because it's where almost all of the downloading lives. If you've ever installed an audio pack and watched it hang on first load, you know the drill. This node is the controlled version of that: it validates the ControlFoley source tree, downloads the missing model weights, prefetches the Hugging Face dependency models, and hands a tidy controlfoley_dependencies object to the Model Loader.
What it actually does, in order
- Resolves the source tree. It looks for the ControlFoley source in the place you told it (
controlfoley_source_dir, default"controlfoley"), auto-detecting a folder next to the custom node, under the ComfyUI root, or viaCONTROLFOLEY_SOURCE_DIR. If nothing's there andauto_fetch_sourceis on (default), it shallow-clones the pinned revision ofxiaomi-research/controlfoleyinto<ComfyUI root>/controlfoleyover git. Pinned matters: upstream isn't versioned, so an unpinned clone would silently pick up API changes and break the integration. Behind a firewall, setCONTROLFOLEY_SOURCE_URLto a reachable mirror. - Downloads the weights. With
auto_downloadon (default), it pulls the five ControlFoley weight files intomodel_weights_dir- roughly 16GB total (about 11GB core + 5GB external encoders) from theYJX-Xiaomi/ControlFoleyHF repo. This is the download that looks like a hang on slow networks; the README's fix isexport HF_ENDPOINT=https://hf-mirror.combefore starting ComfyUI. - Prefetches dependencies.
low_vram=false(the default) also caches the third-party models the runtime needs outside low-VRAM mode - CLIP, BigVGAN, and the reference-audio models like MERT and the MusicGen-style CLAP - from their own upstream HF repos. Each of those has its own license; the pack can't vouch for them, and neither should you without a peek.
Inputs and outputs
Inputs: controlfoley_source_dir, model_weights_dir, low_vram (changes which dependency set gets fetched), auto_download, auto_fetch_source. If model_weights_dir is the placeholder path/to/model_weights or empty, it falls back to CONTROLFOLEY_WEIGHTS_DIR, then a packaged controlfoley_workspace/model_weights, then ComfyUI/models/controlfoley (which it registers with ComfyUI's model folder system under the controlfoley key).
Outputs: controlfoley_dependencies (CONTROLFOLEY_DEPENDENCIES - wire this into the Model Loader's optional dependencies input to skip re-resolving), weights_dir (STRING, the resolved path), and status (STRING, e.g. "ControlFoley dependencies ready: weights=..., low_vram=False").
Notes from the trenches
Weights download on execution of this node (or the Model Loader), never on import - so ComfyUI itself won't stall just because you installed the pack. auto_download=false is your friend if you've already staged the weights manually or want to go fully offline. And one genuinely useful detail from the source: this node is where the pack's "download on demand" design lives, so if a later run mysteriously re-downloads things, check that model_weights_dir actually points at the folder from the first run rather than resetting to the placeholder. Install the pack via ComfyUI Manager ("ControlFoley Official") or git clone + pip install -r requirements.txt, and remember: CUDA only, no CPU/MPS path.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| controlfoley_source_dir | STRING | controlfoley | — |
| model_weights_dir | STRING | path/to/model_weights | — |
| low_vram | BOOLEAN | false | — |
| auto_download | BOOLEAN | true | — |
| auto_fetch_source | BOOLEAN | true | When the public ControlFoley source tree is not found locally, run 'git clone' (pinned revision) from GitHub into <ComfyUI root>/controlfoley. Set the CONTROLFOLEY_SOURCE_URL environment variable to use a mirror. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| controlfoley_dependencies | CONTROLFOLEY_DEPENDENCIES | — |
| weights_dir | STRING | — |
| status | STRING | — |