CogVideoX-Fun 使用指南
CogVideoX-Fun 是基于 CogVideoX 结构修改后的 pipeline,提供更自由的生成条件,支持生成 AI 图片与视频,训练 Diffusion Transformer 的基线模型与 Lora 模型。用户可以直接从已经训练好的 CogVideoX-Fun 模型进行预测,生成不同分辨率(6 秒左右,fps 8,1 ~ 49 帧)的视频,也支持用户训练自己的模型进行风格变换。
新特性
- 创建代码!支持 Windows 和 Linux。
- 支持 2b 与 5b 最大 256x256x49 到 1024x1024x49 的任意分辨率的视频生成。
功能概览
- 数据预处理
- 训练 DiT
- 模型生成
快速启动
1. 云使用: AliyunDSW/Docker
a. 通过阿里云 DSW
DSW 提供免费 GPU 时间,用户可申请一次,申请后3个月内有效。5分钟内即可启动 CogVideoX-Fun。
b. 通过 ComfyUI
参考ComfyUI READMEComfyUI README进行详细了解。
c. 通过 Docker
确保机器中已经正确安装显卡驱动与 CUDA 环境,然后执行以下命令:
# pull image
docker pull mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:cogvideox_fun
# enter image
docker run -it -p 7860:7860 --network host --gpus all --security-opt seccomp:unconfined --shm-size 200g mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:cogvideox_fun
# clone code
git clone https://github.com/aigc-apps/CogVideoX-Fun.git
# enter CogVideoX-Fun's dir
cd CogVideoX-Fun
# download weights
mkdir models/Diffusion_Transformer
mkdir models/Personalized_Model
wget https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/cogvideox_fun/Diffusion_Transformer/CogVideoX-Fun-2b-InP.tar.gz -O models/Diffusion_Transformer/CogVideoX-Fun-2b-InP.tar.gz
wget https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/cogvideox_fun/Diffusion_Transformer/CogVideoX-Fun-5b-InP.tar.gz -O models/Diffusion_Transformer/CogVideoX-Fun-5b-InP.tar.gz
cd models/Diffusion_Transformer/
tar -xvf CogVideoX-Fun-2b-InP.tar.gz
tar -xvf CogVideoX-Fun-5b-InP.tar.gz
cd ../../
2. 本地安装: 环境检查/下载/安装
a. 环境检查
验证 CogVideoX-Fun 可在以下环境中执行:
- Windows: Windows 10, Python 3.10 & 3.11, Torch 2.2.0, CUDA 11.8 & 12.1, CUDNN 8+, GPU: Nvidia-3060 12G & Nvidia-3090 24G
- Linux: Ubuntu 20.04, CentOS, Python 3.10 & 3.11, Torch 2.2.0, CUDA 11.8 & 12.1, CUDNN 8+, GPU: Nvidia-V100 16G & Nvidia-A10 24G & Nvidia-A100 40G & Nvidia-A100 80G
需要大约 60GB 的可用磁盘空间,请检查!
b. 权重放置
建议将权重按照指定路径进行放置:
📦 models/
├── 📂 Diffusion_Transformer/
│ ├── 📂 CogVideoX-Fun-2b-InP/
│ └── 📂 CogVideoX-Fun-5b-InP/
├── 📂 Personalized_Model/
│ └── your trained trainformer model / your trained lora model (for UI load)
如何使用
1. 生成
a. 视频生成
i、运行 python 文件
- 下载对应权重放入 models 文件夹。
- 修改
predict_t2v.py
文件中的 prompt、neg_prompt、guidance_scale 和 seed。 - 运行
predict_t2v.py
文件,等待生成结果,结果保存在samples/cogvideox-fun-videos-t2v
文件夹中。 - 如果想结合自己训练的其他 backbone 与 Lora,可修改
predict_t2v.py
和lora_path
。
ii、通过 UI 界面
- 下载对应权重放入 models 文件夹。
- 运行
app.py
文件,进入 gradio 页面。 - 根据页面选择生成模型,填入 prompt、neg_prompt、guidance_scale 和 seed,点击生成,等待结果。
iii、通过 ComfyUI
具体查看 ComfyUI README。
2. 模型训练
完整的 CogVideoX-Fun 训练链路包括数据预处理和 Video DiT 训练。
a. 数据预处理
通过图片数据训练 Lora 模型的简单 demo 详见 wiki。长视频切分、清洗、描述的数据预处理链路可参考 video caption 部分的 README。
数据集格式示例:
📦 project/
├── 📂 datasets/
│ ├── 📂 internal_datasets/
│ ├── 📂 train/
│ │ ├── 📄 00000001.mp4
│ │ ├── 📄 00000002.jpg
│ │ └── 📄 .....
│ └── 📄 json_of_internal_datasets.json
json 文件格式:
[
{
"file_path": "train/00000001.mp4",
"text": "A group of young men in suits and sunglasses are walking down a city street.",
"type": "video"
},
{
"file_path": "train/00000002.jpg",
"text": "A group of young men in suits and sunglasses are walking down a city street.",
"type": "image"
},
.....
]
b. Video DiT训练
根据数据预处理的格式进行 scripts/train.sh
设置。
相对路径示例:
export DATASET_NAME="datasets/internal_datasets/"
export DATASET_META_NAME="datasets/internal_datasets/json_of_internal_datasets.json"
train_data_format="normal"
绝对路径示例:
export DATASET_NAME=""
export DATASET_META_NAME="/mnt/data/json_of_internal_datasets.json"
最后运行 scripts/train.sh
。
模型地址
名称 | 存储空间 | 下载地址 | Hugging Face | 描述 |
---|---|---|---|---|
CogVideoX-Fun-2b-InP.tar.gz | 解压前 9.7 GB / 解压后 13.0 GB | Download | 🤗Link | 支持多分辨率(512,768,1024,1280)的视频预测,以49帧、每秒8帧进行训练。 |
CogVideoX-Fun-5b-InP.tar.gz | 解压前 16.0GB / 解压后 20.0 GB | Download | 🤗Link | 支持多分辨率(512,768,1024,1280)的视频预测,以49帧、每秒8帧进行训练。 |
未来计划
支持中文。
参考文献
总结:CogVideoX-Fun 是一个功能强大的 AI 视频生成工具,适用于需要生成高质量视频的开发者和研究人员。支持多平台快速启动,灵活的训练和生成模式使其适合多种应用场景。
#视频生成工具