VideoX-Fun is a video generation pipeline that can be used to generate AI images and videos, as well as to train baseline and Lora models for Diffusion Transformer. We support direct prediction from pre-trained baseline models to generate videos with different resolutions, durations, and FPS. Additionally, we also support users in training their own baseline and Lora models to perform specific style transformations.
๐ Welcome!
English | ็ฎไฝไธญๆ | ๆฅๆฌ่ช
VideoX-Fun is a video generation pipeline that can be used to generate AI images and videos, as well as to train baseline and Lora models for Diffusion Transformer. We support direct prediction from pre-trained baseline models to generate videos with different resolutions, durations, and FPS. Additionally, we also support users in training their own baseline and Lora models to perform specific style transformations.
We will support quick pull-ups from different platforms, refer to Quick Start.
What's New:
Function๏ผ
Our UI interface is as follows:
DSW has free GPU time, which can be applied once by a user and is valid for 3 months after applying.
Aliyun provide free GPU time in Freetier, get it and use in Aliyun PAI-DSW to start CogVideoX-Fun within 5min!
Our ComfyUI is as follows, please refer to ComfyUI README for details.
If you are using docker, please make sure that the graphics card driver and CUDA environment have been installed correctly in your machine.
Then execute the following commands in this way:
# 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
# Please use the hugginface link or modelscope link to download the model.
# CogVideoX-Fun
# https://huggingface.co/alibaba-pai/CogVideoX-Fun-V1.1-5b-InP
# https://modelscope.cn/models/PAI/CogVideoX-Fun-V1.1-5b-InP
# Wan
# https://huggingface.co/alibaba-pai/Wan2.1-Fun-14B-InP
# https://modelscope.cn/models/PAI/Wan2.1-Fun-14B-InP
We have verified this repo execution on the following environment:
The detailed of Windows:
The detailed of Linux:
We need about 60GB available on disk (for saving weights), please check!
We'd better place the weights along the specified path:
Via ComfyUI:
Put the models into the ComfyUI weights folder ComfyUI/models/Fun_Models/
:
๐ฆ ComfyUI/
โโโ ๐ models/
โ โโโ ๐ Fun_Models/
โ โโโ ๐ CogVideoX-Fun-V1.1-2b-InP/
โ โโโ ๐ CogVideoX-Fun-V1.1-5b-InP/
โ โโโ ๐ Wan2.1-Fun-14B-InP
โ โโโ ๐ Wan2.1-Fun-1.3B-InP/
Run its own python file or UI interface:
๐ฆ models/
โโโ ๐ Diffusion_Transformer/
โ โโโ ๐ CogVideoX-Fun-V1.1-2b-InP/
โ โโโ ๐ CogVideoX-Fun-V1.1-5b-InP/
โ โโโ ๐ Wan2.1-Fun-14B-InP
โ โโโ ๐ Wan2.1-Fun-1.3B-InP/
โโโ ๐ Personalized_Model/
โ โโโ your trained trainformer model / your trained lora model (for UI load)
Resolution-1024
<table border="0" style="width: 100%; text-align: left; margin-top: 20px;"> <tr> <td> <video src="https://github.com/user-attachments/assets/34e7ec8f-293e-4655-bb14-5e1ee476f788" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/7809c64f-eb8c-48a9-8bdc-ca9261fd5434" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/8e76aaa4-c602-44ac-bcb4-8b24b72c386c" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/19dba894-7c35-4f25-b15c-384167ab3b03" width="100%" controls autoplay loop></video> </td> </tr> </table>Resolution-768
<table border="0" style="width: 100%; text-align: left; margin-top: 20px;"> <tr> <td> <video src="https://github.com/user-attachments/assets/0bc339b9-455b-44fd-8917-80272d702737" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/70a043b9-6721-4bd9-be47-78b7ec5c27e9" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/d5dd6c09-14f3-40f8-8b6d-91e26519b8ac" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/9327e8bc-4f17-46b0-b50d-38c250a9483a" width="100%" controls autoplay loop></video> </td> </tr> </table>Resolution-512
<table border="0" style="width: 100%; text-align: left; margin-top: 20px;"> <tr> <td> <video src="https://github.com/user-attachments/assets/ef407030-8062-454d-aba3-131c21e6b58c" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/7610f49e-38b6-4214-aa48-723ae4d1b07e" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/1fff0567-1e15-415c-941e-53ee8ae2c841" width="100%" controls autoplay loop></video> </td> <td> <video src="https://github.com/user-attachments/assets/bcec48da-b91b-43a0-9d50-cf026e00fa4f" width="100%" controls autoplay loop></video> </td> </tr> </table>Since Wan2.1 has a very large number of parameters, we need to consider memory optimization strategies to adapt to consumer-grade GPUs. We provide GPU_memory_mode
for each prediction file, allowing you to choose between model_cpu_offload
, model_cpu_offload_and_qfloat8
, and sequential_cpu_offload
. This solution is also applicable to CogVideoX-Fun generation.
model_cpu_offload
: The entire model is moved to the CPU after use, saving some GPU memory.model_cpu_offload_and_qfloat8
: The entire model is moved to the CPU after use, and the transformer model is quantized to float8, saving more GPU memory.sequential_cpu_offload
: Each layer of the model is moved to the CPU after use. It is slower but saves a significant amount of GPU memory.qfloat8
may slightly reduce model performance but saves more GPU memory. If you have sufficient GPU memory, it is recommended to use model_cpu_offload
.
For details, refer to ComfyUI README.
models
folder.examples
folder, and their supported features vary. Use them accordingly. Below is an example using CogVideoX-Fun:
prompt
, neg_prompt
, guidance_scale
, and seed
in the file examples/cogvideox_fun/predict_t2v.py
.examples/cogvideox_fun/predict_t2v.py
and wait for the results. The generated videos will be saved in the folder samples/cogvideox-fun-videos
.validation_image_start
, validation_image_end
, prompt
, neg_prompt
, guidance_scale
, and seed
in the file examples/cogvideox_fun/predict_i2v.py
.validation_image_start
is the starting image of the video, and validation_image_end
is the ending image of the video.examples/cogvideox_fun/predict_i2v.py
and wait for the results. The generated videos will be saved in the folder samples/cogvideox-fun-videos_i2v
.validation_video
, validation_image_end
, prompt
, neg_prompt
, guidance_scale
, and seed
in the file examples/cogvideox_fun/predict_v2v.py
.validation_video
is the reference video for video-to-video generation. You can use the following demo video: Demo Video.examples/cogvideox_fun/predict_v2v.py
and wait for the results. The generated videos will be saved in the folder samples/cogvideox-fun-videos_v2v
.control_video
, validation_image_end
, prompt
, neg_prompt
, guidance_scale
, and seed
in the file examples/cogvideox_fun/predict_v2v_control.py
.control_video
is the control video extracted using operators such as Canny, Pose, or Depth. You can use the following demo video: Demo Video.examples/cogvideox_fun/predict_v2v_control.py
and wait for the results. The generated videos will be saved in the folder samples/cogvideox-fun-videos_v2v_control
.lora_path
and relevant paths in examples/{model_name}/predict_t2v.py
or examples/{model_name}/predict_i2v.py
as needed.The web UI supports text-to-video, image-to-video, video-to-video, and controlled video generation (Canny, Pose, Depth, etc.). This library currently supports CogVideoX-Fun, Wan2.1, and Wan2.1-Fun. Different models are distinguished by folder names under the examples
folder, and their supported features vary. Use them accordingly. Below is an example using CogVideoX-Fun:
models
folder.examples/cogvideox_fun/app.py
to access the Gradio interface.prompt
, neg_prompt
, guidance_scale
, and seed
, click "Generate," and wait for the results. The generated videos will be saved in the sample
folder.A complete model training pipeline should include data preprocessing and Video DiT training. The training process for different models is similar, and the data formats are also similar:
<h4 id="data-preprocess">a. data preprocessing</h4>We have provided a simple demo of training the Lora model through image data, which can be found in the wiki for details.
A complete data preprocessing link for long video segmentation, cleaning, and description can refer to README in the video captions section.
If you want to train a text to image and video generation model. You need to arrange the dataset in this format.
๐ฆ project/
โโโ ๐ datasets/
โ โโโ ๐ internal_datasets/
โ โโโ ๐ train/
โ โ โโโ ๐ 00000001.mp4
โ โ โโโ ๐ 00000002.jpg
โ โ โโโ ๐ .....
โ โโโ ๐ json_of_internal_datasets.json
The json_of_internal_datasets.json is a standard JSON file. The file_path in the json can to be set as relative path, as shown in below:
[
{
"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"
},
.....
]
You can also set the path as absolute path as follow:
[
{
"file_path": "/mnt/data/videos/00000001.mp4",
"text": "A group of young men in suits and sunglasses are walking down a city street.",
"type": "video"
},
{
"file_path": "/mnt/data/train/00000001.jpg",
"text": "A group of young men in suits and sunglasses are walking down a city street.",
"type": "image"
},
.....
]
<h4 id="dit-train">b. Video DiT training </h4>
If the data format is relative path during data preprocessing, please set scripts/{model_name}/train.sh
as follow.
export DATASET_NAME="datasets/internal_datasets/"
export DATASET_META_NAME="datasets/internal_datasets/json_of_internal_datasets.json"
If the data format is absolute path during data preprocessing, please set scripts/train.sh
as follow.
export DATASET_NAME=""
export DATASET_META_NAME="/mnt/data/json_of_internal_datasets.json"
Then, we run scripts/train.sh.
sh scripts/train.sh
For details on some parameter settings: Wan2.1-Fun can be found in Readme Train and Readme Lora. Wan2.1 can be found in Readme Train and Readme Lora. CogVideoX-Fun can be found in Readme Train and Readme Lora.
V1.0: | Name | Storage Space | Hugging Face | Model Scope | Description | |--|--|--|--|--| | Wan2.1-Fun-1.3B-InP | 19.0 GB | ๐คLink | ๐Link | Wan2.1-Fun-1.3B text-to-video weights, trained at multiple resolutions, supporting start and end frame prediction. | | Wan2.1-Fun-14B-InP | 47.0 GB | ๐คLink | ๐Link | Wan2.1-Fun-14B text-to-video weights, trained at multiple resolutions, supporting start and end frame prediction. | | Wan2.1-Fun-1.3B-Control | 19.0 GB | ๐คLink | ๐Link | Wan2.1-Fun-1.3B video control weights, supporting various control conditions such as Canny, Depth, Pose, MLSD, etc., and trajectory control. Supports multi-resolution (512, 768, 1024) video prediction at 81 frames, trained at 16 frames per second, with multilingual prediction support. | | Wan2.1-Fun-14B-Control | 47.0 GB | ๐คLink | ๐Link | Wan2.1-Fun-14B video control weights, supporting various control conditions such as Canny, Depth, Pose, MLSD, etc., and trajectory control. Supports multi-resolution (512, 768, 1024) video prediction at 81 frames, trained at 16 frames per second, with multilingual prediction support. |
| Name | Hugging Face | Model Scope | Description | |--|--|--|--| | Wan2.1-T2V-1.3B | ๐คLink | ๐Link | Wanxiang 2.1-1.3B text-to-video weights | | Wan2.1-T2V-14B | ๐คLink | ๐Link | Wanxiang 2.1-14B text-to-video weights | | Wan2.1-I2V-14B-480P | ๐คLink | ๐Link | Wanxiang 2.1-14B-480P image-to-video weights | | Wan2.1-I2V-14B-720P| ๐คLink | ๐Link | Wanxiang 2.1-14B-720P image-to-video weights |
V1.5:
| Name | Storage Space | Hugging Face | Model Scope | Description | |--|--|--|--|--| | CogVideoX-Fun-V1.5-5b-InP | 20.0 GB | ๐คLink | ๐Link | Our official graph-generated video model is capable of predicting videos at multiple resolutions (512, 768, 1024) and has been trained on 85 frames at a rate of 8 frames per second. | | CogVideoX-Fun-V1.5-Reward-LoRAs | - | ๐คLink | ๐Link | The official reward backpropagation technology model optimizes the videos generated by CogVideoX-Fun-V1.5 to better match human preferences. ๏ฝ
V1.1:
| Name | Storage Space | Hugging Face | Model Scope | Description | |--|--|--|--|--| | CogVideoX-Fun-V1.1-2b-InP | 13.0 GB | ๐คLink | ๐Link | Our official graph-generated video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. | | CogVideoX-Fun-V1.1-5b-InP | 20.0 GB | ๐คLink | ๐Link | Our official graph-generated video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. Noise has been added to the reference image, and the amplitude of motion is greater compared to V1.0. | | CogVideoX-Fun-V1.1-2b-Pose | 13.0 GB | ๐คLink | ๐Link | Our official pose-control video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second.| | CogVideoX-Fun-V1.1-2b-Control | 13.0 GB | ๐คLink | ๐Link | Our official control video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. Supporting various control conditions such as Canny, Depth, Pose, MLSD, etc.| | CogVideoX-Fun-V1.1-5b-Pose | 20.0 GB | ๐คLink | ๐Link | Our official pose-control video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second.| | CogVideoX-Fun-V1.1-5b-Control | 20.0 GB | ๐คLink | ๐Link | Our official control video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. Supporting various control conditions such as Canny, Depth, Pose, MLSD, etc.| | CogVideoX-Fun-V1.1-Reward-LoRAs | - | ๐คLink | ๐Link | The official reward backpropagation technology model optimizes the videos generated by CogVideoX-Fun-V1.1 to better match human preferences. ๏ฝ
<details> <summary>(Obsolete) V1.0:</summary>| Name | Storage Space | Hugging Face | Model Scope | Description | |--|--|--|--|--| | CogVideoX-Fun-2b-InP | 13.0 GB | ๐คLink | ๐Link | Our official graph-generated video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. | | CogVideoX-Fun-5b-InP | 20.0 GB | ๐คLink| ๐Link| Our official graph-generated video model is capable of predicting videos at multiple resolutions (512, 768, 1024, 1280) and has been trained on 49 frames at a rate of 8 frames per second. |
</details>This project is licensed under the Apache License (Version 2.0).
The CogVideoX-2B model (including its corresponding Transformers module and VAE module) is released under the Apache 2.0 License.
The CogVideoX-5B model (Transformers module) is released under the CogVideoX LICENSE.