ControlFoley Advanced Generate
Same generator, but with an on/off switch and a status line
- controlfoley_model
- video
- video_input
- images
- audio
- sample_rate
- inference_time_sec
- peak_vram_gb
- status
ControlFoley Advanced Generate is the same generation engine as the plain ControlFoley Generate - identical inputs, identical mode mapping, identical flow-matching guts - with three additions bolted on for people building reusable chains: an enabled switch, a silent_audio_on_error fail-safe, and a status string output. If you're just trying to make one clip sound right, use the regular node. If you're building a workflow you intend to run a hundred times, this is the one.
What the three extras actually do
enabled- flip it off and the node skips generation entirely and returns a correctly-sized silent audio buffer instead of running the model. That's enormously useful when you're iterating: you can mute a branch of the graph without deleting nodes and rewiring, which keeps the rest of the pipeline alive while you work on something else.silent_audio_on_error- by default a failed generation throws and fails the run, the normal ComfyUI behavior. Turn this on and an error inside the generator gets swallowed and replaced with silence plus a status string that tells you what failed. Great for long unattended batch runs where one bad clip shouldn't kill the queue.status- a fifth output (STRING) that reports what happened:"Generation completed successfully.","Generation disabled; returned silence.", or, in silent-error mode, the exception message. Wire it into a text display or just glance at it in the UI.
Everything else matches ControlFoley Generate: connect video / video_input / images (one of the three) to pick V2A, TV2A/TC-V2A, AC-V2A, or pure T2A; reference_audio_path for the audio-controlled mode; num_inference_steps is the string fixed (25) or an integer 1–100; guidance_scale defaults to 4.5. The same caveats apply - staged_offload defaults to true but is ignored with a console note on the public upstream source, and the first run downloads roughly 16GB of weights. (The low_vram flag, set on the Model Loader rather than here, is a text-only path; this node hard-errors if a video or reference audio is connected while it's on.)
Where it fits in the chain
The intended shape (see the bundled 06_advanced_chain.json example) is the full pipeline: Dependencies Loader → Model Loader → optionally Torch Compile → this node → Save Audio. Because the advanced generator carries its own status, it's the natural final consumer in a chain you want to monitor or auto-batch. It also shares the exact same generate_audio implementation as the base node - the source literally calls into it - so output quality is byte-identical; you're paying for the controls, not a different model.
Outputs
audio (AUDIO) goes to Save ControlFoley Audio or the Video-Audio Muxer; sample_rate (INT), inference_time_sec and peak_vram_gb (FLOATs) are your instrumentation; status is the new conversation partner. Install the pack via ComfyUI Manager ("ControlFoley Official") or by cloning YJX-Research/comfyui-controlfoley-official into custom_nodes and running pip install -r requirements.txt - install only missing packages one at a time, since that requirements file holds version ranges that can upgrade shared deps like transformers or numpy out from under your existing ComfyUI.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| controlfoley_model | CONTROLFOLEY_MODEL | — | |
| prompt | STRING | — | |
| negative_prompt | STRING | — | |
| duration | FLOAT | 10.00.7–30 | Text-only generation uses 10s by default. Video generation follows input length up to 30s. |
| seed | INT | 420–4294967295 | — |
| num_inference_steps | STRING | fixed | Use 'fixed' to keep the default step setting, or enter an integer from 1 to 100. |
| guidance_scale | FLOAT | 4.50–20 | — |
| mask_away_clip | BOOLEAN | false | — |
| cache_video_features | BOOLEAN | true | — |
| staged_offload | BOOLEAN | true | Move encoders to CPU during sampling when the ControlFoley source supports it. The public upstream source does not implement this; the option is then ignored and a console note is printed. |
| clip_batch_size_multiplier | STRING | 40 | Integer 1-80. Frames per CLIP encoder call = batch size * multiplier. Use 4-8 on low-VRAM GPUs. |
| sync_batch_size_multiplier | STRING | 40 | Integer 1-80. Frames per Synchformer encoder call = batch size * multiplier. Use 4-8 on low-VRAM GPUs. |
| enabled | BOOLEAN | true | — |
| silent_audio_on_error | BOOLEAN | false | — |
| reference_audio_path | STRING | — | |
| image_fps | FLOAT | 241–120 | Frame rate used when the optional IMAGE input is connected. |
| videoopt | CONTROLFOLEY_VIDEO | — | |
| video_inputopt | VIDEO | — | |
| imagesopt | IMAGE | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| sample_rate | INT | — |
| inference_time_sec | FLOAT | — |
| peak_vram_gb | FLOAT | — |
| status | STRING | — |