
在人工智能飞速发展的今天,视频生成和编辑技术正逐渐改变着内容创作的格局。传统的视频制作依赖于复杂的拍摄和后期处理,而AI技术的介入为这一领域带来了新的可能性。本文将介绍一个由快手联合多所高校推出的创新项目——SketchVideo,它通过结合草图与文本提示,实现了对视频的高效生成与精细编辑。

一、项目概述
SketchVideo是一个由快手、中国科学院大学、香港科技大学联合推出的基于草图的视频生成与编辑框架。该项目旨在通过在关键帧上绘制草图并结合文本提示,实现对视频的空间布局和运动的精细控制。它基于DiT视频生成模型,设计了高效的草图控制网络,并通过帧间注意力机制和潜在融合技术,确保生成视频的高质量和一致性。SketchVideo不仅支持视频生成,还能对真实或合成视频进行细粒度编辑,为影视制作、广告设计、教育、游戏开发等领域带来了全新的创作方式。

二、技术原理
(一)草图条件网络
SketchVideo的核心是基于DiT(Diffusion-based Transformer)视频生成模型的草图条件网络。该网络包含多个草图控制块,能够预测跳过的DiT块的残差特征。草图控制块均匀分布在DiT块中,通过在不同层次的特征中注入控制信号,实现对视频的精细控制。
(二)帧间注意力机制
为了将关键帧上的草图条件传播到所有视频帧,SketchVideo提出了帧间注意力机制。该机制通过计算所有帧的隐藏特征与控制帧的隐藏特征之间的关系,实现对草图特征的时空传播,从而确保视频的连贯性。
(三)视频插入模块与潜在融合技术
在视频编辑任务中,SketchVideo设计了视频插入模块,用于分析输入草图与原始视频之间的关系,并生成与原始视频空间和时间上一致的新内容。同时,通过DDIM反演生成输入视频的噪声潜在码,并在未编辑区域替换这些潜在码,以保留原始视频的细节,确保编辑后的视频在视觉上自然、连贯。

三、主要功能
(一)视频生成
SketchVideo能够基于草图和文本生成高质量的视频内容。用户只需在关键帧上绘制草图并提供文本提示,即可生成符合语义且具有多样化的视频。
(二)视频编辑
用户可以通过在关键帧上绘制草图来修改视频内容,编辑结果会自动传播到所有帧中,即使在原始视频中存在平移和旋转的物体,也能实现无缝编辑。
(三)动态控制
SketchVideo支持运动插值和外推,能够生成平滑且真实的动态过渡效果,为视频创作提供了更多的创意空间。
(四)细节保留
在编辑过程中,SketchVideo能够保留未修改区域的细节,确保原始视频的完整性。
(五)高效生成
通过内存优化和混合训练策略,SketchVideo能够在短时间内生成高质量的视频,大大提高了创作效率。

四、应用场景
(一)影视与广告
SketchVideo可以快速生成创意视频和特效预览,优化影视制作流程,节省时间和成本。例如,在电影或广告的前期创意阶段,导演可以通过草图快速生成视频概念,以便更好地与团队沟通创意。
(二)教育与培训
在教育领域,SketchVideo能够辅助制作教学视频和培训材料。教师可以通过草图生成与教学内容相关的动态视频,帮助学生更好地理解和记忆知识。
(三)游戏开发
对于游戏开发者来说,SketchVideo可以快速生成关卡预览和角色动画,提高游戏开发的效率。开发者可以通过草图快速调整游戏场景和角色动作,优化游戏体验。
(四)个人创作
SketchVideo降低了视频创作的门槛,使普通用户也能够轻松创作个性化的短视频。用户可以通过简单的草图和文本提示,生成属于自己的创意视频。
(五)建筑设计
SketchVideo还可以用于生成建筑和室内设计的动态预览,增强与客户的沟通效果。设计师可以通过草图生成建筑或室内设计的动态展示视频,帮助客户更好地理解设计方案。
五、快速使用
(一)环境配置
1. 创建Python环境
运行以下命令创建一个新的Python环境,并激活该环境:
conda create -n sketchvideo python=3.10
conda activate sketchvideo
3. 安装依赖
在激活的环境中,运行以下命令安装项目所需的依赖包:
pip install -r requirements.txt
特别注意需要安装`diffusers==0.30.1`,这是项目中使用的一个关键库。
(二)模型下载
1. 下载预训练模型
SketchVideo的预训练模型包括`SketchGen`(用于视频生成)和`SketchEdit`(用于视频编辑),以及CogVideo-2b视频生成模型。这些模型可以从[Hugging Face](https://huggingface.co/)下载。
2. 配置模型路径
下载完成后,修改`scripts`中的`–control_checkpoint_path`和`–cogvideo_checkpoint_path`,使其指向对应的模型路径。
(三)视频生成
1.单关键帧草图生成
如果你只想基于一个关键帧草图生成视频,可以运行以下命令:
cd generation
sh scripts/test_sketch_gen_single.sh
这将启动视频生成流程,生成的视频将根据输入的关键帧草图和文本提示进行生成。
2.双关键帧草图生成
如果你有两个关键帧草图,可以运行以下命令:
cd generation
sh scripts/test_sketch_gen_two.sh
这将利用两个关键帧草图生成视频,生成的视频将包含从一个关键帧到另一个关键帧的平滑过渡。
(四)视频编辑
1. 配置编辑参数
对于视频编辑任务,需要根据具体的编辑需求修改`editing/editing_exp`文件夹中的`config.py`文件。主要修改以下路径:
– `controlnet_path`:设置为`SketchEdit`模型的权重路径。
– `vae_path`和`pipeline_path`:设置为CogVideo模型的权重路径。
2. 执行编辑
配置完成后,运行以下命令进行视频编辑:
cd editing
sh scripts/test_sketch_edit.sh
这将根据输入的关键帧草图对原始视频进行编辑,并生成编辑后的视频。
六、结语
SketchVideo作为一项创新的AI技术,为视频生成与编辑领域带来了全新的可能性。它通过草图与文本的结合,实现了对视频的高效生成和精细编辑,为影视制作、教育、游戏开发等多个领域提供了强大的工具。随着技术的不断发展,我们期待SketchVideo在未来能够进一步提升性能,支持更长时间的视频生成,并在更多场景中发挥更大的作用。
七、项目地址
GitHub仓库:https://github.com/IGLICT/SketchVideo
arXiv技术论文:https://arxiv.org/pdf/2503.23284
(文:小兵的AI视界)