开源视频编辑模型之 VideoPainter体验
VideoPainter 是一个基于双分支架构的视频修复和编辑框架,专为处理任意长度视频设计。
核心功能:支持背景保留、前景生成、文本指导编辑和对象一致性维持。技术原理:结合轻量级上下文编码器和预训练扩散模型,通过ID重采样技术确保长视频中对象的一致性。
VideoPainter 是什么
VideoPainter 是由香港中文大学、腾讯ARC Lab、东京大学、澳门大学等机构联合推出的视频修复和编辑框架,专门用于处理任意长度的视频内容。该框架基于双分支架构,结合轻量级上下文编码器和预训练的扩散模型,实现高效的背景保留和前景生成。
VideoPainter 支持插件式操作,用户可以根据需求灵活调整修复效果。此外,框架引入了 ID 重采样技术,能够在长视频中保持对象的一致性。VideoPainter 还构建了 VPData 和 VPBench,这是目前最大的视频修复数据集,包含超过 39 万段视频剪辑,为大规模训练和评估提供了支持。
官网
项目主页:https://yxbian23.github.io/project/video-painter/
GitHub 仓库:https://github.com/TencentARC/VideoPainter
HuggingFace 模型库:https://huggingface.co/TencentARC/VideoPainter
特点
任意长度的视频修复:处理从短片段到长视频的各种内容,修复被遮挡或损坏的部分。背景保留与前景生成:基于双分支架构,实现背景的精确保留和前景的高质量生成。文本指导的视频编辑:支持用文本指令进行视频编辑,如添加、删除、替换或修改视频中的对象。对象一致性维持:在长视频中保持对象的身份一致性,避免出现对象漂移或突变。插件式控制:支持与不同的扩散模型或LoRA(低秩适配)模型结合,实现多样化的视频生成和编辑需求。
原理
双分支架构:
背景分支:基于轻量级上下文编码器提取背景特征,注入到预训练的扩散模型中,确保背景的连贯性。前景分支:基于扩散模型的生成能力,根据文本提示生成前景内容,与背景特征结合,实现高质量的修复。 轻量级上下文编码器:仅包含两层,占用主模型参数的6%,提取背景特征并以分组方式注入到扩散模型中。基于选择性特征融合,将背景特征注入到模型中,避免前景和背景信息混淆。ID重采样技术:在训练时,增强目标区域的ID信息,提升模型对修复区域的感知能力。在推理时,将前一视频片段的修复区域特征与当前片段结合,确保长视频中对象的一致性。插件式控制:支持与不同的扩散模型或LoRA模型结合,用户根据需求选择合适的模型进行视频修复或编辑。兼容文本到视频(T2V)和图像到视频(I2V)扩散模型,进一步扩展应用范围。大规模数据集构建:用先进的视觉模型(如SAM2、Grounding DINO等),自动生成精确的分割掩码和密集的文本描述。构建VPData和VPBench,包含超过39万段视频剪辑,为大规模训练和评估提供支持。
实操VideoPainter
1. 环境准备
克隆仓库并创建虚拟环境:
git clone https://github.com/TencentARC/VideoPainter.git
conda create -n news_env python=3.10 -y
G:\ai>conda activate news_env
(news_env) G:\ai>cd VideoPainter
(news_env) G:\ai\VideoPainter>pip install -r requirements.txt
2. 数据下载
下载 VPBench 和 VPData 数据集:
git lfs install
git clone https://huggingface.co/datasets/TencentARC/VPBench
mv VPBench data
cd data
unzip pexels.zip
unzip videovo.zip
unzip davis.zip
unzip video_inpainting.zip
3. 模型训练
运行训练脚本:
cd train
bash VideoPainter.sh
4. 推理与评估
运行推理脚本:
cd infer
bash inpaint.sh
运行评估脚本:
cd evaluate
bash eval_inpainting.sh