OmniVCus:多模态控制的开源主题驱动视频生成与编辑框架

原创 发布日期:
58

一、OmniVCus是什么?

OmniVCus是一个开源的视频生成与编辑框架,核心目标是通过多维度的控制条件,实现对视频内容的精准定制——无论是指定主体的动作与场景搭配,还是通过文本指令修改细节、用掩码限定编辑区域,亦或是控制相机轨迹改变拍摄视角,OmniVCus都能通过前馈式生成流程快速输出符合需求的视频结果。

该项目由Yuanhao Cai、He Zhang等多位研究者联合开发,其相关论文已被国际顶级学术会议NeurIPS 2025正式接收,并同步上传至arXiv(编号2506.23361)。作为一款完全开源的工具,OmniVCus基于公开数据集(如Wan系列模型的训练数据)和开源代码(如DiffSynth-Studio、VACE)重实现,所有训练/测试代码、预训练模型、数据集样本均已公开,确保开发者与研究人员能够轻松复现结果并二次开发。

与传统视频生成工具不同,OmniVCus的核心优势在于“多模态控制”与“主题驱动”的深度结合:它以特定主体(如某个人物、物体)为核心,同时接收文本、参考图像、深度信息、掩码、相机参数等多种控制信号,既保证了生成视频中主体身份的一致性,又能灵活满足不同场景下的定制需求,解决了传统工具“控制精度低”“主体易失真”“场景与指令脱节”等痛点。

OmniVCus:多模态控制的开源主题驱动视频生成与编辑框架

二、功能特色

OmniVCus的功能特色围绕“多模态控制”“全场景覆盖”“高可用性”三大核心展开,具体可分为以下五个方面:

1. 四大核心定制任务,覆盖全场景视频需求

OmniVCus提供四类针对性的视频定制任务,可满足从基础主体替换到高级视角控制的多样化需求,每类任务均有明确的输入格式与应用场景,操作逻辑清晰易懂:

任务类型 核心输入条件 核心功能 典型应用场景
主题驱动定制(Task1) 文本 + 4张参考图像(IMG1-IMG4) 以4张参考图中的主体/物体为核心,按文本指令组合场景生成视频 主体固定的场景创作(如“让IMG1的人用IMG2的电脑,搭配IMG3的杯子和IMG4的水果”)
指令编辑定制(Task2) 文本 + 2张参考图像(IMG1-IMG2) 按文本指令修改参考图中的主体细节,保留核心场景与动作 主体细节优化(如“给IMG1的人添加黑色外套,保持使用IMG2电脑的动作”)
掩码控制定制(Task3) 文本 + 掩码文件 + 1张参考图像(IMG1) 通过掩码限定编辑区域,精准修改主体局部内容 局部区域编辑(如“仅给IMG1中人物的上半身添加外套,其他区域不变”)
相机控制定制(Task4) 文本 + 相机参数 + 1张参考图像(IMG2) 控制相机轨迹与视角,生成不同拍摄角度的视频 视角切换与动态拍摄(如“以环绕视角拍摄使用IMG2电脑的老年女医生”)

2. 多模态控制条件,精准把控视频细节

OmniVCus支持文本、图像、掩码、深度、相机轨迹等多种控制信号的协同输入,实现“从宏观场景到微观细节”的全维度把控:

  • 文本控制:通过自然语言指令明确视频内容、动作、场景要求,支持复杂逻辑描述(如“在摆有橙子和黑杯的桌上,让IMG1的男性使用IMG2的笔记本电脑”);

  • 图像参考:通过1-4张参考图固定主体身份(如人物、物体)、外观特征(如服装、颜色),确保生成视频中主体的一致性;

  • 掩码控制:通过掩码文件指定编辑区域,避免无关内容被修改,提升编辑精度;

  • 深度与运动控制:自动提取视频深度信息与运动轨迹,确保生成视频的空间合理性与动态流畅性;

  • 相机控制:支持自定义相机参数与轨迹,实现环绕、推拉、旋转等多种拍摄视角效果。

3. 高性能生成效果,兼顾一致性与动态性

通过与当前主流的视频生成方法(如VideoBooth、DreamVideo、SkyReels、VACE等)进行定量与定性对比,OmniVCus在核心指标上表现优异:

  • 定量指标领先:在单主体定制任务中,CLIP-T(文本对齐度)达0.3293、CLIP-I(图像对齐度)达0.7154、DINO-I(特征一致性)达0.5215、动态性(Dynamic)达0.5541,均超过同类SOTA方法;多主体任务中,动态性指标更是达到0.6878,显著优于SkyReels的0.5892;

  • 高一致性保障:主体身份一致性(Consistency)指标最高达0.9928,确保生成视频中主体的外观、特征不发生失真;

  • 高质量视觉效果:生成视频的画面清晰度、色彩协调性、场景合理性均得到用户高度认可,在用户偏好调研中表现突出。

4. 完全开源可复现,降低使用门槛

OmniVCus坚持“开源、公开、可复现”的原则,提供了完整的技术栈支持:

  • 公开数据集:训练集与测试集可通过Hugging Face直接下载,Google Drive提供样本预览,方便用户快速了解数据格式;

  • 预训练模型:提供4种不同规格的预训练模型(1.3B/14B参数,适配不同硬件资源),无需从零训练;

  • 完整代码:数据构建、模型训练、推理部署的代码全部开源,支持张量并行训练,适配不同算力环境;

  • 详细文档:每个功能模块均有对应的环境配置、操作步骤说明,新手也能快速上手。

5. 模块化设计,支持二次开发

项目采用模块化架构,核心功能被拆分到独立文件夹中,便于用户根据需求扩展与修改:

  • VideoCus-Factory:数据构建模块,可生成多模态控制条件数据对(主体、深度、掩码、运动等);

  • Video-Depth-Anything:深度提取模块,优化视频深度条件的构建质量;

  • DiffSynth-Studio:核心模型模块,基于Wan2.1/2.2、VACE重实现训练与推理逻辑;

  • 松耦合依赖:依赖的开源项目(如SAM2、Depth-Anything-V2、CoTracker3)均为行业主流工具,易于替换与升级。

三、技术细节

OmniVCus的技术核心围绕“数据构建 pipeline”与“扩散Transformer架构”展开,通过多模块协同实现高精度视频定制,具体技术细节如下:

1. 数据构建 pipeline:多模态控制条件的生成基础

数据是视频定制的核心前提,OmniVCus设计了一套完整的数据构建流程(封装在VideoCus-Factory文件夹中),能够将原始视频转化为包含多模态控制条件的训练数据对,流程如下:

  1. 原始视频输入:支持任意场景的原始视频(如人物动作、物体互动、场景展示等);

  2. 主体分割与增强:通过SAM2等工具对视频中的主体(人物、物体)进行精准分割,同时进行数据增强(如角度旋转、亮度调整),扩大数据集多样性;

  3. 多模态条件生成

    • 深度视频:通过Video-Depth-Anything工具提取视频的深度信息,生成深度图序列,确保生成视频的空间层次感;

    • 掩码视频:针对需要局部编辑的场景,生成对应区域的掩码序列,限定编辑范围;

    • 运动视频:提取主体的运动轨迹信息,确保生成视频的动态流畅性;

  4. 文本 prompt 生成:自动生成与视频内容匹配的文本指令,形成“文本+图像+深度+掩码+运动”的多模态数据对,用于模型训练。

该数据构建流程的优势在于“端到端自动化”,无需人工标注多模态信息,大幅降低了数据制备成本,同时保证了数据的一致性与多样性。

2. 核心模型架构:扩散Transformer + 多模态嵌入

OmniVCus的模型架构基于“扩散Transformer(Diffusion Transformer)”设计,融合了3D-VAE、MLP、时间对齐嵌入等模块,能够高效处理多模态控制信号并生成高质量视频,架构核心如下:

(1)输入嵌入层:多模态信号的统一编码

  • 图像嵌入:将1-4张参考图像通过编码器转化为视觉嵌入,同时引入“Lottery Embedding”机制——训练时从M个图像嵌入中随机选择K个(如M=4时K=2)进行训练,提升模型对不同参考图的适配能力;

  • 文本嵌入:通过T5编码器将文本指令转化为文本嵌入,确保模型理解指令意图;

  • 掩码嵌入:将掩码文件转化为二进制嵌入,明确编辑区域;

  • 相机嵌入:将相机参数(如视角、轨迹)转化为向量嵌入,控制视频拍摄视角;

  • 深度与运动嵌入:将深度图序列与运动轨迹转化为时序嵌入,保障空间合理性与动态流畅性。

(2)核心生成模块:扩散Transformer

扩散Transformer是模型的核心生成单元,负责融合所有多模态嵌入并生成视频帧序列:

  • 基于Transformer的自注意力机制,能够捕捉多模态信号之间的依赖关系(如文本指令与参考图像的对应、深度信息与场景布局的匹配);

  • 采用前馈式生成流程,无需迭代优化,大幅提升生成速度;

  • 结合扩散模型的噪声预测机制,逐步去噪生成高质量视频帧,提升画面细节与真实性。

(3)解码模块:3D-VAE 解码器

  • 扩散Transformer生成的特征序列通过3D-VAE解码器转化为视频帧序列;

  • 3D-VAE能够捕捉视频的时序相关性,确保帧与帧之间的流畅过渡,避免出现画面跳变;

  • 解码器支持不同分辨率的视频输出,适配不同应用场景需求。

(4)辅助优化模块

  • MLP层:对多模态嵌入进行非线性变换,提升特征表达能力;

  • Noise Token:引入随机噪声token,增强模型的泛化能力;

  • 固定权重与可训练权重结合:相机嵌入等模块采用固定权重保证稳定性,核心生成层采用可训练权重提升适配性。

3. 训练与推理策略

(1)训练策略

  • 基础模型:基于Wan2.1-1.3B、Wan2.1-14B、Wan2.2-14B、VACE等开源模型进行微调,降低训练成本;

  • 并行训练:支持张量并行(tensor-parallel)训练,适配多GPU环境,提升训练效率;

  • 损失函数:采用多模态对齐损失(文本-视觉对齐、深度-场景对齐)+ 生成质量损失(像素级损失、特征级损失),兼顾控制精度与画面质量。

(2)推理策略

  • 支持批量推理与单样本推理,适配不同使用场景;

  • 推理速度:前馈式生成流程,无需迭代,推理效率优于传统扩散模型;

  • 模型选择:提供4种预训练模型,用户可根据硬件资源选择(1.3B模型适配普通GPU,14B模型适配高性能GPU集群)。

OmniVCus:多模态控制的开源主题驱动视频生成与编辑框架

四、应用场景

OmniVCus的多模态控制能力与高可用性,使其能够广泛应用于创意内容生产、影视后期、广告制作、教育娱乐等多个领域,具体场景如下:

1. 创意内容生成

  • 短视频创作:自媒体创作者可通过文本指令+参考图,快速生成符合主题的短视频(如“让参考图中的博主使用指定产品,搭配特定场景”);

  • 动画制作:动画师可通过掩码控制局部修改角色服装、道具,通过相机控制实现不同视角的动画片段,降低制作成本;

  • 虚拟场景搭建:通过多参考图组合,生成虚拟场景视频(如“将参考图中的家具、装饰组合成一个完整的客厅场景,并生成环绕视角视频”)。

2. 影视与广告后期

  • 主体替换:在广告视频中替换产品主体(如将旧款产品替换为新款,保持场景、动作不变);

  • 细节修改:通过指令编辑快速修改视频中的细节(如“给演员添加特定品牌的配饰,调整服装颜色”);

  • 视角补拍:通过相机控制生成未实际拍摄的视角(如“对已拍摄的产品视频,生成俯视、环绕视角,丰富素材库”)。

3. 教育与培训

  • 教学视频定制:生成定制化的教学演示视频(如“让参考图中的教具按文本指令展示操作步骤,搭配深度信息提升空间理解”);

  • 场景模拟:模拟不同场景下的操作流程(如“通过掩码控制突出展示机械零件的安装步骤,生成分步演示视频”)。

4. 电商内容制作

  • 产品展示视频:生成多视角、多场景的产品展示视频(如“让参考图中的产品在不同背景下展示,通过相机控制实现360度旋转展示”);

  • 场景化营销视频:将产品与场景结合(如“将参考图中的护肤品放在卧室场景中,生成博主使用的演示视频”)。

5. 研究与二次开发

  • 视频生成研究:为研究人员提供多模态视频生成的基准框架,可基于此探索新的控制机制、模型架构;

  • 工具定制开发:开发者可基于OmniVCus的模块化设计,扩展新的控制条件(如音频控制、姿态控制),开发垂直领域的视频定制工具。

五、使用方法

OmniVCus的使用流程分为“环境配置”“数据准备”“模型选择”“推理/训练”四个步骤,以下是详细操作指南:

1. 环境配置

(1)基础环境要求

  • 操作系统:Linux(推荐Ubuntu 20.04+);

  • 硬件要求:GPU显存≥16GB(1.3B模型)或≥48GB(14B模型),支持CUDA 11.7+;

  • 软件依赖:Python 3.8+,PyTorch 1.18+,Hugging Face Transformers、Diffusers、OpenCV等。

(2)安装步骤

  1. 克隆开源仓库:

git clone https://github.com/caiyuanhao1998/Open-OmniVCus.git
cd Open-OmniVCus
  1. 安装依赖包:

# 安装基础依赖
pip install -r requirements.txt
# 进入对应模块安装专项依赖
# 数据构建模块
cd VideoCus-Factory
pip install -r requirements.txt
# 深度提取模块
cd ../Video-Depth-Anything
pip install -r requirements.txt
# 核心模型模块
cd ../DiffSynth-Studio
pip install -r requirements.txt
  1. 配置Hugging Face访问权限(用于下载数据集与预训练模型):

huggingface-cli login
# 输入你的Hugging Face Token(需提前注册并获取)

2. 数据准备

根据使用场景选择“直接使用公开数据集”或“自定义数据构建”:

(1)使用公开数据集

  1. 下载训练集/测试集:

# 训练集
wget https://huggingface.co/datasets/caiyuanhao1998/OmniVCus-Train/resolve/main/train_set.tar.gz
# 测试集
wget https://huggingface.co/datasets/caiyuanhao1998/OmniVCus-Test/resolve/main/test_set.tar.gz
# 解压
tar -zxvf train_set.tar.gz
tar -zxvf test_set.tar.gz
  1. 数据集结构说明:

train_set/
├── text/     # 文本指令文件(.txt)
├── images/    # 参考图像(.jpg)
├── depth/     # 深度视频(.npy序列)
├── mask/     # 掩码视频(.png序列)
├── motion/    # 运动轨迹(.npy)
└── camera/    # 相机参数(.json)

(2)自定义数据构建(基于原始视频)

  1. 进入数据构建模块:

cd VideoCus-Factory
  1. 准备原始视频:将原始视频放在data/raw_video文件夹中(支持.mp4、.avi格式);

  2. 运行数据构建脚本:

python run_data_construction.py \
 --input_video data/raw_video/your_video.mp4 \
 --output_dir data/custom_dataset \
 --num_reference_images 4 # 生成4张参考图
  1. 生成结果:在output_dir中得到文本、图像、深度、掩码、运动等多模态数据对,可直接用于训练或推理。

3. 模型选择与下载

OmniVCus提供4种预训练模型,用户可根据硬件资源与需求选择:

模型ID 参数规模 基础模型 适用场景 下载命令
Wan2.1-OmniVCus-1.3B 1.3B Wan2.1 普通GPU(16GB+)、快速推理 huggingface-cli download caiyuanhao1998/OmniVCus-Models Wan2.1-1.3B --local-dir models/
Wan2.1-OmniVCus-14B 14B Wan2.1 高性能GPU(48GB+)、高精度 huggingface-cli download caiyuanhao1998/OmniVCus-Models Wan2.1-14B --local-dir models/
Wan2.2-OmniVCus-14B-high 14B Wan2.2 专业场景、最高精度 huggingface-cli download caiyuanhao1998/OmniVCus-Models Wan2.2-14B-high --local-dir models/
Wan2.2-OmniVCus-14B-low 14B Wan2.2 14B参数轻量化需求 huggingface-cli download caiyuanhao1998/OmniVCus-Models Wan2.2-14B-low --local-dir models/

4. 推理(生成定制视频)

以“主题驱动定制(Task1)”为例,步骤如下:

  1. 进入核心模型模块:

cd DiffSynth-Studio
  1. 准备输入文件:

    • 文本指令:创建prompt.txt,内容为“A man of IMG1 using a laptop as IMG2 at the table with oranges of IMG4 and a black cup as IMG3”;

    • 参考图像:将4张参考图(IMG1-IMG4)放在input/images文件夹中;

  2. 运行推理脚本:

python infer.py \
 --task task1 \ # 任务类型(task1-task4)
 --prompt_path prompt.txt \
 --image_dir input/images \
 --model_path ../models/Wan2.1-OmniVCus-1.3B \
 --output_video output/custom_video.mp4 \
 --num_frames 30 # 生成视频的帧数
  1. 查看结果:生成的视频保存在output文件夹中,可直接播放或进一步编辑。

5. 模型训练(二次开发)

若需基于自定义数据训练模型,步骤如下:

  1. 准备训练数据:确保数据格式与公开数据集一致(参考“数据准备”部分);

  2. 配置训练参数:修改DiffSynth-Studio/configs/train_config.yaml,设置 batch_size、学习率、训练轮数等参数;

  3. 运行训练脚本(支持张量并行):

python train.py \
 --config configs/train_config.yaml \
 --data_dir ../data/custom_dataset \
 --model_path ../models/Wan2.1-OmniVCus-1.3B \ # 预训练模型路径
 --output_model_dir ../models/custom-trained-model \
 --tensor_parallel_size 2 # 并行GPU数量
  1. 训练监控:通过TensorBoard查看训练损失、生成效果等指标:

tensorboard --logdir runs/

OmniVCus:多模态控制的开源主题驱动视频生成与编辑框架

六、常见问题解答(FAQ)

1. 运行时出现“GPU显存不足”怎么办?

  • 解决方案1:选择参数更小的模型(如将14B模型替换为1.3B模型);

  • 解决方案2:降低推理/训练的batch_size(推理时设置--batch_size 1,训练时在配置文件中减小batch_size);

  • 解决方案3:降低生成视频的分辨率(在推理脚本中添加--resolution 384x640,默认分辨率更高);

  • 解决方案4:使用梯度检查点(训练时开启--gradient_checkpointing True),牺牲部分速度换取显存节省。

2. 生成的视频中主体身份不一致(如参考图是A,生成视频中主体像B)怎么办?

  • 解决方案1:增加参考图像的数量(优先使用Task1,输入4张参考图,覆盖主体不同角度、姿态);

  • 解决方案2:优化参考图像质量(确保参考图清晰、主体占比适中,无遮挡);

  • 解决方案3:修改文本指令,明确主体特征(如在文本中添加“穿着红色上衣、短发的男性”等细节);

  • 解决方案4:使用更高精度的模型(如14B模型比1.3B模型的主体一致性更好)。

3. 如何自定义相机轨迹(Task4)?

  • 步骤1:创建相机参数文件camera_params.json,格式如下:

{
 "trajectory_type": "circle", // 轨迹类型(circle/line/rotate)
 "start_position": [0, 0, 5], // 起始位置(x,y,z)
 "end_position": [0, 0, 5],  // 结束位置(圆形轨迹时与起始位置一致)
 "radius": 2,         // 圆形轨迹半径
 "speed": 0.1         // 移动速度
}
  • 步骤2:推理时指定相机参数文件路径:

python infer.py \
 --task task4 \
 --prompt_path prompt.txt \
 --image_dir input/images \
 --camera_params_path camera_params.json \
 --model_path ../models/Wan2.1-OmniVCus-1.3B \
 --output_video output/camera_control_video.mp4

4. 数据构建时无法生成深度视频怎么办?

  • 检查是否安装了Video-Depth-Anything的依赖:进入Video-Depth-Anything文件夹,重新运行pip install -r requirements.txt

  • 确保原始视频格式支持(推荐.mp4格式,分辨率不超过1080P);

  • 若仍有问题,可直接使用Google Drive提供的深度视频样本,或替换为Depth-Anything-V2的其他预训练模型(修改Video-Depth-Anything/config.py中的模型路径)。

5. 如何将OmniVCus集成到自己的项目中?

  • 方法1:直接调用推理脚本(通过命令行传参,适合简单集成);

  • 方法2:导入核心模块(在自己的Python代码中导入DiffSynth-Studio/model/omnivcus.py,调用OmniVCusModel类进行推理);

  • 方法3:基于模块化设计扩展(如在VideoCus-Factory中添加新的控制条件生成逻辑,在DiffSynth-Studio中修改模型结构)。

6. 生成视频的帧率可以调整吗?

  • 可以。推理时通过--fps参数设置帧率(默认24fps),例如:

python infer.py \
 --task task1 \
 --prompt_path prompt.txt \
 --image_dir input/images \
 --model_path ../models/Wan2.1-OmniVCus-1.3B \
 --output_video output/custom_video.mp4 \
 --num_frames 60 \
 --fps 30 # 设置帧率为30fps

七、相关链接

八、总结

OmniVCus是一款被NeurIPS 2025接收的开源主题驱动视频定制框架,以多模态控制条件与扩散Transformer架构为核心,支持主题驱动、指令编辑、掩码控制、相机控制四大定制任务,通过文本、参考图像、掩码、相机参数等多维度输入,实现高精度、高一致性的视频生成与编辑;该项目提供了完整的公开数据集、4种规格的预训练模型及模块化代码,兼顾了易用性与扩展性,既适合新手快速上手生成定制视频,也支持研究人员进行二次开发与技术探索;其在定量指标与用户偏好上均优于当前主流SOTA方法,能够广泛应用于创意内容生产、影视广告、教育电商等多个领域,为视频定制技术的普及与创新提供了强大的开源解决方案。

打赏
THE END
作者头像
97ai
我不是在训练模型,而是在与未来的自己对话。