DiTCtrl 项目使用与启动教程
1. 项目介绍
DiTCtrl 是基于 MM-DiT 架构的无需调优的多提示视频生成方法。该项目的主要目标是解决现有视频生成模型在处理多提示连贯场景时遇到的困难,如严格的数据要求、提示跟踪能力弱和不自然的过渡等问题。DiTCtrl 将多提示视频生成任务视为具有平滑过渡的时间视频编辑,通过分析和优化 MM-DiT 的注意力机制,实现了在多提示视频生成中的精细语义控制。
2. 项目快速启动
环境搭建
首先,确保你的环境安装了 CUDA 12,并且使用的是单个 A100 或 V100 显卡。
cd DiTCtrl
conda create -n ditctrl python=3.10
conda activate ditctrl
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1
pip install -r requirements.txt
conda install https://anaconda.org/xformers/xformers/0.0.28.post1/download/linux-64/xformers-0.0.28.post1-py310_cu12.1.0_pyt2.4.1.tar.bz2
模型权重下载
接下来,下载 CogVideoX-2B 模型权重,并按照以下结构组织模型文件:
cd sat
mkdir CogVideoX-2b-sat
cd CogVideoX-2b-sat
wget https://example.com/vae.zip
mv 'index.html?dl=1' vae.zip
unzip vae.zip
wget https://example.com/transformer.zip
mv 'index.html?dl=1' transformer.zip
unzip transformer.zip
确保文件结构如下:
CogVideoX-2b-sat/
├── transformer
│ ├── 1000 (或 1)
│ │ └── mp_rank_00_model_states.pt
│ └── latest
└── vae
└── 3d-vae.pt
运行示例
运行多提示文本到视频生成的脚本:
cd sat
bash run_multi_prompt.sh
运行单提示文本到视频生成的脚本:
cd sat
bash run_single_prompt.sh
运行视频编辑的脚本:
cd sat
bash run_edit_video.sh
3. 应用案例和最佳实践
多提示文本到视频生成
在实际应用中,DiTCtrl 可以接受一系列的文本提示,并将它们转换为一段连贯的视频。以下是一个配置文件的示例,用于定义生成视频的提示:
inference_case_config: "inference_case_configs/multi_prompts/rose.yaml"
使用以下命令运行生成:
python sample_video.py --base configs/cogvideox_2b.yaml configs/inference.yaml --custom-config $inference_case_config
视频编辑
DiTCtrl 还支持视频编辑功能,允许用户通过特定的提示来修改现有视频的内容。以下是一个视频编辑的示例命令:
python sample_video_edit.py --base configs/cogvideox_2b.yaml configs/inference.yaml --edit-config $edit_config
4. 典型生态项目
DiTCtrl 作为一种视频生成和编辑工具,可以广泛应用于多种场景,如下所示:
- 教育领域:创建定制化的教学视频,根据不同的教学提示生成连贯的教学内容。
- 娱乐产业:为电影和游戏制作提供自动化的视频生成解决方案。
- 营销和广告:根据不同的营销策略生成有针对性的广告视频。
通过以上教程,您可以开始使用 DiTCtrl 进行视频生成和编辑。更多高级功能和最佳实践,请参考项目官方文档和社区讨论。