Ovi:双骨干跨模态融合的音频-视频生成技术详解
Ovi:双骨干跨模态融合用于音频-视频生成
*Chetwin Low * 1 , Weimin Wang * † 1 , Calder Katyal 2
- 同等贡献,† 项目负责人
1 Character AI, 2 耶鲁大学
视频演示
[final_ovi_trailer.mp4]
:glowing_star: 主要特性
Ovi是一个类似veo-3的视频+音频生成模型,能够同时从文本或文本+图像输入生成视频和音频内容。
- :clapper_board: 视频+音频生成:同时生成同步的视频和音频内容
- 🎵 高质量音频分支:使用高质量内部音频数据集从头设计和预训练我们的5B音频分支
- 📝 灵活输入:支持仅文本或文本+图像条件
- ⏱️ 5秒视频:生成5秒视频,24 FPS,720×720区域,支持各种宽高比(9:16, 16:9, 1:1等)
- :bullseye: 高分辨率支持:可尝试960×960区域(如720×1280, 704×1344等)
:bullseye: 高分辨率示例(1280×704, 1504×608, 1344×704等)
- 🧠 训练分辨率:我们的模型完全在720×720分辨率下训练
- 🚀 放大能力:尽管训练分辨率较低,Ovi能够自然生成更高分辨率如960×960和可变宽高比视频,同时保持时间和空间一致性
📋 待办事项
- 发布研究论文和演示网站
- 11B模型检查点
- 推理代码
- 文本或文本+图像作为输入
- Gradio应用程序代码
- 多GPU推理,支持或不支持序列并行
- fp8权重和改进的内存效率
- qint8量化
- 改进序列并行实现的效率
- 使用FSDP实现分片推理
- 视频创建示例提示和格式
- 使用更高分辨率数据和RL进行微调以改进性能
- 新功能,如更长视频生成,参考语音条件
- 蒸馏模型以加快推理速度
- 训练脚本
:artist_palette: 简单创建方式
我们提供示例提示来帮助您开始使用Ovi:
- 文本到音频-视频(T2AV):example_prompts/gpt_examples_t2v.csv
- 图像到音频-视频(I2AV):example_prompts/gpt_examples_i2v.csv
📝 提示格式
我们的提示使用特殊标签来控制语音和音频:
- 语音:
<S>您的语音内容在这里<E>- 这些标签之间的文本将被转换为语音 - 音频描述:
<AUDCAP>音频描述在这里<ENDAUDCAP>- 描述视频中存在的音频或音效
🤖 使用GPT快速开始
为方便创建提示,尝试以下方法:
- 从上面的csv文件中获取任何示例
- 告诉GPT根据主题(如人类对抗AI)修改所有
<S><E>对之间的语音 - GPT将根据您请求的主题随机修改所有语音
- 使用修改后的提示与Ovi!
📦 安装
逐步安装
# 克隆仓库
git clone https://github.com/character-ai/Ovi.git
cd Ovi
# 创建并激活虚拟环境
virtualenv ovi-env
source ovi-env/bin/activate
# 首先安装PyTorch
pip install torch==2.6.0 torchvision torchaudio
# 安装其他依赖
pip install -r requirements.txt
# 安装Flash Attention
pip install flash_attn --no-build-isolation
下载权重
要下载我们的主要Ovi检查点,以及来自Wan的T5和vae解码器,以及来自MMAudio的音频vae:
# 默认下载到./ckpts,推理yaml设置为./ckpts,因此无需更改
python3 download_weights.py
# 或者指定--output-dir下载到特定目录
python3 download_weights.py --output-dir <custom_dir>
# 如果只有约24Gb GPU VRAM,请下载fp8量化版本
wget -O "./ckpts/Ovi/model_fp8_e4m3fn.safetensors" "https://huggingface.co/rkfg/Ovi-fp8_quantized/resolve/main/model_fp8_e4m3fn.safetensors"
🚀 运行示例
⚙️ 配置Ovi
Ovi的行为和输出可以通过修改ovi/configs/inference/inference_fusion.yaml配置文件来自定义。
以下参数控制生成质量、视频分辨率以及文本、图像和音频输入的平衡:
# 输出和模型配置
output_dir: "/path/to/save/your/videos" # 保存生成视频的目录
ckpt_dir: "/path/to/your/ckpts/dir" # 模型检查点路径
# 生成质量设置
num_steps: 50 # 去噪步骤数。较低(30-40)= 更快生成
solver_name: "unipc" # 去噪过程的采样算法
shift: 5.0 # 采样调度器的时间步偏移因子
seed: 100 # 可重现结果的随机种子
# 引导强度控制
audio_guidance_scale: 3.0 # 音频条件强度。较高 = 更好的音频-文本同步
video_guidance_scale: 4.0 # 视频条件强度。较高 = 更好的视频-文本遵循
slg_layer: 11 # 应用SLG(跳过层引导)技术的层
# 多GPU和性能
sp_size: 1 # 序列并行大小。设置为使用的GPU数量
cpu_offload: False # CPU卸载,将大幅减少峰值GPU VRAM,但增加端到端运行时间约20秒
fp8: False # 加载fp8版本模型,会有质量下降,推理时间不会加快
# 输入配置
text_prompt: "/path/to/csv" or "your prompt here" # 文本提示或包含提示的CSV/TSV文件路径
mode: ['i2v', 't2v', 't2i2v'] # 生成t2v、i2v或t2i2v
video_frame_height_width: [512, 992] # T2V模式的视频尺寸[高度,宽度]
each_example_n_times: 1 # 每个提示生成的次数
# 质量控制(负面提示)
video_negative_prompt: "jitter, bad hands, blur, distortion" # 视频中要避免的伪影
audio_negative_prompt: "robotic, muffled, echo, distorted" # 音频中要避免的伪影
:clapper_board: 运行推理
单GPU(简单设置)
python3 inference.py --config-file ovi/configs/inference/inference_fusion.yaml
多GPU(并行处理)
torchrun --nnodes 1 --nproc_per_node 8 inference.py --config-file ovi/configs/inference/inference_fusion.yaml
Gradio
我们提供了一个简单的脚本来在gradio UI中运行我们的模型:
python3 gradio_app.py
# 启用CPU卸载以节省GPU VRAM
python3 gradio_app.py --cpu_offload
# 启用额外的图像生成模型为I2V生成第一帧
python3 gradio_app.py --use_image_gen
# 使用24Gb GPU VRAM运行模型
python3 gradio_app.py --cpu_offload --qint8
:folded_hands: 致谢
我们要感谢以下项目:
- Wan2.2:我们的视频分支从Wan2.2仓库初始化
- MMAudio:我们重用了MMAudio的音频vae
🤝 合作
我们欢迎各种类型的合作!无论您有反馈、想要贡献或有任何问题,请随时联系我们。
联系:如有任何问题或反馈,请联系Weimin Wang。
⭐ 引用
如果Ovi对您有帮助,请帮忙给仓库点⭐。
如果您发现这个项目对您的研究有用,请考虑引用我们的论文。
BibTeX
@misc{low2025ovitwinbackbonecrossmodal,
title={Ovi: Twin Backbone Cross-Modal Fusion for Audio-Video Generation},
author={Chetwin Low and Weimin Wang and Calder Katyal},
year={2025},
eprint={2510.01284},
archivePrefix={arXiv},
primaryClass={cs.MM},
url={https://arxiv.org/abs/2510.01284},
}
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码

公众号二维码


浙公网安备 33010602011771号