nielsr HF Staff commited on
Commit
747a767
·
verified ·
1 Parent(s): 7317f1c

Add model card for ControlFoley

Browse files

Hi! I'm Niels from the Hugging Face community team. I noticed that this repository could benefit from a more structured model card to improve discoverability and ease of use for the research community.

This PR adds:
- Links to the [research paper](https://huggingface.co/papers/2604.15086), [GitHub code](https://github.com/xiaomi-research/controlfoley), and project pages.
- A summary of the model's unified multimodal capabilities.
- Verified installation and inference instructions from the official repository.
- Proper citation information.

Files changed (1) hide show
  1. README.md +26 -298
README.md CHANGED
@@ -1,7 +1,7 @@
1
  ---
2
- license: cc-by-nc-4.0
3
  language:
4
  - en
 
5
  pipeline_tag: text-to-audio
6
  tags:
7
  - text-video-to-audio
@@ -10,232 +10,24 @@ tags:
10
  - audio-generation
11
  ---
12
 
 
13
 
 
14
 
 
15
 
16
- <!-- ## **ControlFoley** -->
17
-
18
- [中文阅读](./README_zh.md)
19
-
20
- <div align="center">
21
-
22
- # ControlFoley: Unified and Controllable Video-to-Audio Generation with Cross-Modal Conflict Handling
23
-
24
- <p align="center">
25
- <a href="https://arxiv.org/abs/2604.15086" style="text-decoration:none"><img src="https://img.shields.io/badge/arXiv-2506.21448-b31b1b.svg" alt="arXiv"/></a>
26
- &nbsp;
27
- <a href="https://github.com/xiaomi-research/controlfoley" style="text-decoration:none"><img src="https://img.shields.io/badge/GitHub.io-Code-blue?logo=Github&style=flat-square" alt="GitHub"/></a>
28
- &nbsp;
29
- <a href="https://yjx-research.github.io/ControlFoley_web_page/" style="text-decoration:none"><img src="https://img.shields.io/badge/Project Page-Project-blue" alt="Project Page"/></a>
30
- &nbsp;
31
- <a href="https://yjx-research.github.io/ControlFoley/" style="text-decoration:none"><img src="https://img.shields.io/badge/Demo Page-Demo-blue" alt="Demo Page"/></a>
32
- &nbsp;
33
- <a href="https://huggingface.co/YJX-Xiaomi/ControlFoley" style="text-decoration:none"><img src="https://img.shields.io/badge/HuggingFace-Models-orange?logo=huggingface" alt="Hugging Face"/></a>
34
- </p>
35
-
36
- </div>
37
-
38
- <p align="center">
39
- If you find this project useful, please consider giving a star ⭐️~
40
- </p>
41
-
42
-
43
- <div align="center">
44
-
45
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
46
-
47
- ### 👥 **Authors**
48
-
49
- <div>
50
- <!-- Row 1: 6 authors -->
51
- <div style="margin-bottom: 2px;">
52
- Jianxuan Yang<sup>1*†</sup>,&nbsp;
53
- Xinyue Guo<sup>1*</sup>,&nbsp;
54
- Zhi Cheng<sup>1,2</sup>,&nbsp;
55
- Kai Wang<sup>1,2</sup>,&nbsp;
56
- Lipan Zhang<sup>1</sup>,&nbsp;
57
- Jinjie Hu<sup>1</sup>
58
- </div>
59
- <!-- Row 2: 7 authors -->
60
- <div>
61
- Qiang Ji<sup>1</sup>,&nbsp;
62
- Yihua Cao<sup>1</sup>,&nbsp;
63
- Yihao Meng<sup>1,2</sup>,&nbsp;
64
- Zhaoyue Cui<sup>1,2</sup>,&nbsp;
65
- Mengmei Liu<sup>1</sup>,&nbsp;
66
- Meng Meng<sup>1</sup>,&nbsp;
67
- Jian Luan<sup>1</sup>
68
- </div>
69
- </div>
70
- <!-- Affiliations -->
71
- <div>
72
- <sup>1</sup>MiLM Plus, Xiaomi Inc. &nbsp;&nbsp; <sup>2</sup>Wuhan University
73
- <br>
74
- *Equal contribution &nbsp;&nbsp; †Corresponding author
75
- </div>
76
- </div>
77
-
78
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
79
-
80
- ## 📰 **News**
81
-
82
- - [2026-04] Technical report released on [arXiv](https://arxiv.org/abs/2604.15086).
83
- - [2026-04] [Project page](https://yjx-research.github.io/ControlFoley_web_page/) is now live.
84
- - [2026-04] [Inference code](https://github.com/xiaomi-research/controlfoley) and [pretrained models](https://huggingface.co/YJX-Xiaomi/ControlFoley) are released.
85
- - [2026-04] Online demo is available on [Project Inference Interface](https://yjx-research.github.io/ControlFoley_web_page/#try-gen).
86
- - [Coming Soon] Skill will be released.
87
-
88
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
89
-
90
- ## 🔄 **Updates**
91
-
92
- - [x] Release technical report on arXiv.
93
- - [x] Launch project page.
94
- - [x] Release inference code and pretrained models.
95
- - [x] Launch online inference demo (available on project page).
96
- - [ ] Release skill.
97
-
98
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
99
-
100
- ## 📺 **Intro Video**
101
-
102
- https://github.com/user-attachments/assets/d63e9837-a568-4521-9009-58b4105214a9
103
-
104
- For more results of our model, visit [Project Page](https://yjx-research.github.io/ControlFoley_web_page/). For comparison with other methods, visit [Demo Page](https://yjx-research.github.io/ControlFoley/).
105
-
106
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
107
-
108
- ## 🎧 **Overview**
109
-
110
- ControlFoley is a unified and controllable multimodal video-to-audio (V2A) generation framework that enables precise control over generated audio using video, text, and reference audio.
111
-
112
- Unlike existing methods that rely on a single modality or struggle under conflicting inputs, ControlFoley is designed to handle complex multimodal interactions and maintain strong controllability even when modalities are inconsistent.
113
-
114
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
115
-
116
- ## 🎨 **Tease Figure**
117
-
118
- <div align="center">
119
- <img src="assets/tease.png" width="100%">
120
- <p style="margin-top: 8px; text-align: center; font-style: italic;">
121
- Left: Overview of the ControlFoley framework with three multimodal conditioning modes for controllable video-synchronized audio generation. Right: Performance radar chart of Video-to-Audio models.
122
- </p>
123
- </div>
124
-
125
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
126
-
127
- ## 🚀 **Capabilities**
128
-
129
- ControlFoley supports a wide range of applications:
130
-
131
- - 🎬 <strong>Text-Video-to-Audio Generation (TV2A)</strong><br>
132
- Video-content-adaptive dubbing and synchronized sound effect generation under text guidance.
133
-
134
- - 📝 <strong>Text-Controlled Video-to-Audio (TC-V2A)</strong><br>
135
- Audio generation under video–text conflicts, with semantics consistent with text prompts and temporally synchronized with video contents.
136
-
137
- - 🎧 <strong>Audio-Controlled Video-to-Audio (AC-V2A)</strong><br>
138
- Audio generation conditioned on reference audio, with timbre consistent with the reference audio and temporally synchronized with video contents.
139
-
140
- - 📝 <strong>Text-to-Audio Generation (T2A)</strong><br>
141
- Generate audio directly from text prompts as an additional capability of the unified framework.
142
-
143
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
144
-
145
- ## 🧠 **Key Innovations**
146
-
147
- <div align="center">
148
- <img src="assets/controlfoley.png" width="100%">
149
- </div>
150
-
151
- - <strong>Joint Visual Encoding for Robust Multimodal Control:</strong>
152
- Combines CLIP and CAV-MAE-ST representations to capture both vision-language and audio-visual correlations, improving robustness under modality conflict.
153
-
154
- - <strong>Timbre-Focused Reference Audio Control:</strong>
155
- Extracts global timbre representations while suppressing temporal cues, enabling precise acoustic style control without affecting synchronization.
156
-
157
- - <strong>Modality-Robust Training with Unified Alignment:</strong>
158
- Introduces all-modality dropout and a unified REPA objective to improve robustness across diverse modality combinations.
159
-
160
- - <strong>VGGSound-TVC Benchmark:</strong>
161
- A new benchmark for evaluating textual controllability under visual-text semantic conflicts.
162
-
163
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
164
-
165
- ## 🧪 **VGGSound-TVC Benchmark**
166
-
167
- We propose VGGSound-TVC to evaluate text controllability under varying levels of visual-text conflict. In this dataset, textual descriptions of videos are reconstructed in accordance with the rules described below.
168
-
169
- - L0 → No conflict, where the textual description is consistent with the video content.
170
- - L1_subject → A mild semantic conflict introduced at the subject level, where the action description remains unchanged while the sounding subject is replaced.
171
- - L1_action → A mild semantic conflict introduced at the action level, where the subject remains unchanged while the action description is modified.
172
- - L2 → A moderate semantic conflict in which the textual description belongs to a different semantic category while still maintaining a similar temporal structure or acoustic rhythm.
173
- - L3 → Strong conflict, where the textual description is randomly substituted.
174
-
175
- This enables systematic analysis of modality dominance and controllability under increasing inconsistency. Example samples from VGGSound-TVC are as follows.
176
- <div align="center">
177
- <img src="assets/benchmark.png" width="100%">
178
- </div>
179
 
180
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
181
 
182
- ## 📊 **Performance**
 
 
 
183
 
184
- ControlFoley achieves strong performance across multiple V2A tasks, demonstrating both high generation quality and robust controllability.
185
 
186
- 🎬 <strong>TV2A</strong>
187
-
188
- ControlFoley achieves state-of-the-art performance across multiple benchmarks, including VGGSound-Test, Kling-Audio-Eval, and MovieGen-Audio-Bench.
189
-
190
- - Highest CLAP scores (better semantic alignment)
191
- - Lowest DeSync (better temporal synchronization)
192
- - Best overall IS (better audio quality)—Up to 27% relative improvement (22.08 vs. 17.36 on VGGSound).
193
-
194
- <div align="center">
195
- <img src="assets/result1.png" width="80%">
196
- </div>
197
-
198
- 📝 <strong>TC-V2A</strong>
199
-
200
- ControlFoley demonstrates strong textual controllability under increasing visual-text conflict.
201
-
202
- - Maintains high CLAP (text alignment) across conflict levels
203
- - Effectively reduces IB under conflict (less reliance on visual bias)
204
- - Achieves better balance between controllability and generation quality
205
-
206
- <div align="center">
207
- <img src="assets/result2.png" width="60%">
208
- </div>
209
-
210
- 🎧 <strong>AC-V2A</strong>
211
-
212
- ControlFoley achieves the best performance across all evaluation metrics on the Greatest Hits dataset.
213
-
214
- - Better timbre similarity (Resemblyzer)
215
- - Better synchronization (DeSync)
216
- - Higher audio quality (IS)
217
-
218
- Notably, it outperforms CondFoleyGen, a specialized in-domain baseline, demonstrating strong generalization ability.
219
-
220
- <div align="center">
221
- <img src="assets/result3.png" width="50%">
222
- </div>
223
-
224
- ##
225
- ControlFoley also demonstrates competitive or superior performance compared to strong proprietary systems such as Kling-Foley, highlighting its effectiveness as an open and controllable solution.
226
-
227
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
228
-
229
- ## 🛠 **Quick Start**
230
-
231
- ### 🔑 **Prerequisites**
232
-
233
- - Python 3.10+
234
- - PyTorch 2.5.1+
235
- - CUDA 11.8+
236
- - FFmpeg (conda install -c conda-forge ffmpeg)
237
-
238
- ### 🧱 **Installation**
239
 
240
  ```bash
241
  # Clone the repository
@@ -254,69 +46,34 @@ pip install huggingface-hub==0.26.2
254
  huggingface-cli download YJX-Xiaomi/ControlFoley --resume-download --local-dir model_weights --local-dir-use-symlinks False
255
  ```
256
 
257
- Or you can download the weights from [here](https://huggingface.co/YJX-Xiaomi/ControlFoley/tree/main/) and put them in the `model_weights` folder.
258
-
259
- ### 🎨 **Inference**
260
-
261
- ```
262
- python demo.py [OPTIONS]
263
-
264
- Options:
265
- --video TEXT Path to the input video file. (default: None)
266
- --audio TEXT Path to the input reference audio file. (default: None)
267
- --prompt TEXT Textual prompt for audio generation. (default: None)
268
- --negative_prompt TEXT Negative textual prompt for audio generation. (default: None)
269
- --duration FLOAT Duration of the generated audio in seconds. (default: 8.0)
270
- --output TEXT Output directory for generated audio files. (default: ./output)
271
- ```
272
-
273
- ### 📌 **Supported Tasks**
274
-
275
- | Task | video | audio | prompt |
276
- |--------|------------|------------|----------|
277
- | TV2A | required | None | required |
278
- | TC-V2A | required | None | required |
279
- | AC-V2A | required | required | optional |
280
- | V2A | required | None | None |
281
- | T2A | None | None | required |
282
 
283
- ### 📋 **Usage Examples**
284
-
285
- - TV2A
286
 
 
287
  ```bash
288
  python demo.py --video "assets/001.mp4" --prompt "the skateboard wheels scraping and grinding on the ground." --duration 8.0 --output "./output"
289
  ```
290
 
291
- - TC-V2A
292
-
293
- ```bash
294
- python demo.py --video "assets/002.mp4" --prompt "man whistling." --duration 8.0 --output "./output"
295
- ```
296
-
297
- - AC-V2A
298
-
299
  ```bash
300
  python demo.py --video "assets/003.mp4" --audio "assets/003.wav" --duration 8.0 --output "./output"
301
  ```
302
 
303
- - V2A
304
-
305
- ```bash
306
- python demo.py --video "assets/004.mp4" --duration 8.0 --output "./output"
307
- ```
308
-
309
- - T2A
310
-
311
  ```bash
312
  python demo.py --prompt "A bird sings melodically in a forest." --duration 8.0 --output "./output"
313
  ```
314
 
315
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
 
 
 
 
316
 
317
- ## 📝 **Citation**
318
 
319
- If you find this repository useful, please consider citing our paper:
320
 
321
  ```bibtex
322
  @misc{yang2026controlfoleyunifiedcontrollablevideotoaudio,
@@ -330,35 +87,6 @@ If you find this repository useful, please consider citing our paper:
330
  }
331
  ```
332
 
333
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
334
-
335
- ## 🔒 **License**
336
-
337
- This repository is licensed under the [Apache License 2.0](./LICENSE) and the [model weights](https://huggingface.co/YJX-Xiaomi/ControlFoley/tree/main/) are licensed under the [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).
338
-
339
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
340
-
341
- ## 🙏 **Acknowledgments**
342
-
343
- This project uses the following datasets:<br>
344
- VGGSound, Kling-Audio-Eval, The Greatest Hits (<a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" style="color:#007bff; text-decoration:none;">CC BY 4.0</a>),
345
- and MovieGen-Audio-Bench (<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" style="color:#dc3545; text-decoration:none;">CC BY-NC 4.0</a>).<br>
346
- All resources are used for <strong>academic and non-commercial demonstration purposes only</strong>.
347
-
348
- This project is inspired by the following works:<br>
349
- [stable-audio-tools](https://github.com/Stability-AI/stable-audio-tools), [MMAudio](https://github.com/hkchengrex/MMAudio), [Make-An-Audio 2](https://github.com/bytedance/Make-An-Audio-2), [Synchformer](https://github.com/v-iashin/Synchformer), and [audiocraft](https://github.com/facebookresearch/audiocraft).<br>
350
- Thanks for their contributions.
351
-
352
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
353
-
354
- ## 📞 **Contact**
355
-
356
- If you have any questions or suggestions, please feel free to contact us at yangjianxuan@xiaomi.com.
357
-
358
- <hr style="border: none; border-top: 3px solid #333; margin: 16px 0;">
359
-
360
- <div align="center">
361
-
362
- 2026 ControlFoley Project. All Rights Reserved.
363
 
364
- </div>
 
1
  ---
 
2
  language:
3
  - en
4
+ license: cc-by-nc-4.0
5
  pipeline_tag: text-to-audio
6
  tags:
7
  - text-video-to-audio
 
10
  - audio-generation
11
  ---
12
 
13
+ # ControlFoley: Unified and Controllable Video-to-Audio Generation
14
 
15
+ [**Paper**](https://huggingface.co/papers/2604.15086) | [**Code**](https://github.com/xiaomi-research/controlfoley) | [**Project Page**](https://yjx-research.github.io/ControlFoley_web_page/) | [**Demo Page**](https://yjx-research.github.io/ControlFoley/)
16
 
17
+ **ControlFoley** is a unified and controllable multimodal video-to-audio (V2A) generation framework. It enables precise control over generated audio using video, text, and reference audio. Unlike previous methods, ControlFoley is specifically designed to handle complex cross-modal conflicts (e.g., when text descriptions and visual content disagree) and allows for precise timbre control using reference audio while maintaining temporal synchronization with the video.
18
 
19
+ ## Capabilities
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ ControlFoley supports a wide range of applications through a unified framework:
22
 
23
+ - 🎬 **Text-Video-to-Audio (TV2A)**: Synchronized sound effect generation based on video content and text guidance.
24
+ - 📝 **Text-Controlled Video-to-Audio (TC-V2A)**: Prioritizes text semantics even when they conflict with the visual content.
25
+ - 🎧 **Audio-Controlled Video-to-Audio (AC-V2A)**: Generates audio where the timbre is derived from a reference audio file, synchronized with the target video.
26
+ - 🔊 **Text-to-Audio (T2A)**: Direct audio generation from text prompts without video input.
27
 
28
+ ## Quick Start
29
 
30
+ ### Installation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
  ```bash
33
  # Clone the repository
 
46
  huggingface-cli download YJX-Xiaomi/ControlFoley --resume-download --local-dir model_weights --local-dir-use-symlinks False
47
  ```
48
 
49
+ ### Inference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
+ You can run various tasks using the provided `demo.py` script:
 
 
52
 
53
+ **Text-Video-to-Audio (TV2A):**
54
  ```bash
55
  python demo.py --video "assets/001.mp4" --prompt "the skateboard wheels scraping and grinding on the ground." --duration 8.0 --output "./output"
56
  ```
57
 
58
+ **Audio-Controlled Video-to-Audio (AC-V2A):**
 
 
 
 
 
 
 
59
  ```bash
60
  python demo.py --video "assets/003.mp4" --audio "assets/003.wav" --duration 8.0 --output "./output"
61
  ```
62
 
63
+ **Text-to-Audio (T2A):**
 
 
 
 
 
 
 
64
  ```bash
65
  python demo.py --prompt "A bird sings melodically in a forest." --duration 8.0 --output "./output"
66
  ```
67
 
68
+ ## Key Innovations
69
+
70
+ - **Joint Visual Encoding**: Combines CLIP and CAV-MAE-ST representations to improve robustness under modality conflict.
71
+ - **Temporal-Timbre Decoupling**: Extracts acoustic style from reference audio while suppressing temporal cues to avoid affecting video synchronization.
72
+ - **Modality-Robust Training**: Uses unified representation alignment (REPA) and random modality dropout to handle diverse input combinations.
73
 
74
+ ## Citation
75
 
76
+ If you find this project useful, please consider citing the following paper:
77
 
78
  ```bibtex
79
  @misc{yang2026controlfoleyunifiedcontrollablevideotoaudio,
 
87
  }
88
  ```
89
 
90
+ ## License
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
+ The model weights are licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/). The code is licensed under the Apache License 2.0.