MoviiGen 1.1: Towards Cinematic-Quality Video Generative Models
In this repository, we present MoviiGen 1.1, a cutting-edge video generation model that excels in cinematic aesthetics and visual quality. This model is a fine-tuning model based on the Wan2.1. Based on comprehensive evaluations by 11 professional filmmakers and AIGC creators, including industry experts, across 60 aesthetic dimensions, MoviiGen 1.1 demonstrates superior performance in key cinematic aspects:
This repository features our latest model, which establishes new benchmarks in cinematic video generation. Through extensive evaluation by industry professionals, it has demonstrated exceptional capabilities in creating high-quality visuals with natural motion dynamics and consistent aesthetic quality, making it an ideal choice for professional video production and creative applications.
Clone the repo:
git clone https://github.com/ZulutionAI/MoviiGen1.1.git
cd MoviiGen1.1
# Ensure torch >= 2.4.0
pip install -r requirements.txt
T2V-14B Model: π€ Huggingface MoviiGen1.1 model supports both 720P and 1080P. For more cinematic quality, we recommend using 1080P and a 21:9 aspect ratio (1920*832).
Download models using huggingface-cli:
pip install "huggingface_hub[cli]"
huggingface-cli download ZuluVision/MoviiGen1.1 --local-dir ./MoviiGen1.1
Inference without prompt extend:
PYTHONPATH=. python scripts/inference/generate.py --ckpt_dir ./MoviiGen1.1 --prompt "Inside a smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film. A world-weary detective is sitting behind the desk. He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light. The scene is rendered in stark black and white, creating a high-contrast, cinematic mood. The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere."
Inference with prompt extend:
We provide a prompt extend model for MoviiGen1.1, which is a fine-tuned Qwen2.5-7B-Instruct model with our internal data. Model is available on π€ Huggingface.
PYTHONPATH=. python scripts/inference/generate.py --ckpt_dir ./MoviiGen1.1 --prompt "A beautiful woman in a red dress is walking on the street." --use_prompt_extend --prompt_extend_model ZuluVision/MoviiGen1.1_Prompt_Rewriter
Prompt Tips:
Scene Description: A smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film.
Main Subject: A world-weary detective is sitting behind the desk.
Events: He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light.
Aesthetics Description: The scene is rendered in stark black and white, creating a high-contrast, cinematic mood.
Camera Movement: The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere.
Final Prompt:
A smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film. A world-weary detective is sitting behind the desk. He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light. The scene is rendered in stark black and white, creating a high-contrast, cinematic mood. The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere.
Our training framework is built on FastVideo, with custom implementation of sequence parallel to optimize memory usage and training efficiency. The sequence parallel approach allows us to distribute the computational load across multiple GPUs, enabling efficient training of large-scale video generation models.
We cache the videos and corresponding text prompts as latents and text embeddings to optimize the training process. This preprocessing step significantly improves training efficiency by reducing computational overhead during the training phase. You need to provide a merge.txt file to specify the dataset path. And the dataset should be a json like training_data.json. Finally, you will get video_caption.json which contains the latents and text embeddings paths.
bash scripts/data_preprocess/preprocess.sh
Example Data Format:
merge.txt
relative_path_to_json_dir, training_data.json
training_data.json
[
{
"cap": "your prompt",
"path": "path/to/your/video.mp4",
"resolution": {
"width": 3840,
"height": 2160
},
"fps": 23.976023976023978,
"duration": 1.4180833333333331
},
...
]
Output Json:
video_caption.json
[
{
"latent_path": "path/to/your/latent.pt",
"prompt_embed_path": "path/to/your/prompt_embed.pt",
"length": 12
},
...
]
bash scripts/train/finetune.sh
When multi-node training, you need to set the number of nodes and the number of processes per node manually. We provide a sample script for multi-node training.
bash scripts/train/finetune_multi_node.sh
If you find our work helpful, please cite us.
@misc{moviigen2025,
title = {MoviiGen 1.1: Towards Cinematic-Quality Video Generative Models},
author = {Yunhao Shui, Benjin Zhu, Xuekuan Wang, Feng Qiu, Yuqiu Huang, Haoyu Zheng, Haoyu Yin, Pengpeng Zhang, Jinru Han, Zhuo Zeng, Yaxin Ding, Helen Xi, Xiang Chen, Jinzhu Li, Liangxian Feng, Xincheng Yin, Bing Wu, Keqiang Sun},
year = {2025},
url = {https://github.com/ZulutionAI/MoviiGen1.1}
}
15 commits
MoviiGen 1.1: Towards Cinematic-Quality Video Generative Models
In this repository, we present MoviiGen 1.1, a cutting-edge video generation model that excels in cinematic aesthetics and visual quality. This model is a fine-tuning model based on the Wan2.1. Based on comprehensive evaluations by 11 professional filmmakers and AIGC creators, including industry experts, across 60 aesthetic dimensions, MoviiGen 1.1 demonstrates superior performance in key cinematic aspects:
This repository features our latest model, which establishes new benchmarks in cinematic video generation. Through extensive evaluation by industry professionals, it has demonstrated exceptional capabilities in creating high-quality visuals with natural motion dynamics and consistent aesthetic quality, making it an ideal choice for professional video production and creative applications.
Clone the repo:
git clone https://github.com/ZulutionAI/MoviiGen1.1.git
cd MoviiGen1.1
# Ensure torch >= 2.4.0
pip install -r requirements.txt
T2V-14B Model: π€ Huggingface MoviiGen1.1 model supports both 720P and 1080P. For more cinematic quality, we recommend using 1080P and a 21:9 aspect ratio (1920*832).
Download models using huggingface-cli:
pip install "huggingface_hub[cli]"
huggingface-cli download ZuluVision/MoviiGen1.1 --local-dir ./MoviiGen1.1
Inference without prompt extend:
PYTHONPATH=. python scripts/inference/generate.py --ckpt_dir ./MoviiGen1.1 --prompt "Inside a smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film. A world-weary detective is sitting behind the desk. He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light. The scene is rendered in stark black and white, creating a high-contrast, cinematic mood. The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere."
Inference with prompt extend:
We provide a prompt extend model for MoviiGen1.1, which is a fine-tuned Qwen2.5-7B-Instruct model with our internal data. Model is available on π€ Huggingface.
PYTHONPATH=. python scripts/inference/generate.py --ckpt_dir ./MoviiGen1.1 --prompt "A beautiful woman in a red dress is walking on the street." --use_prompt_extend --prompt_extend_model ZuluVision/MoviiGen1.1_Prompt_Rewriter
Prompt Tips:
Scene Description: A smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film.
Main Subject: A world-weary detective is sitting behind the desk.
Events: He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light.
Aesthetics Description: The scene is rendered in stark black and white, creating a high-contrast, cinematic mood.
Camera Movement: The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere.
Final Prompt:
A smoky, atmospheric private eye office bathed in dramatic film noir lighting, sharp shadows from slatted blinds cut across a cluttered desk and worn surroundings, evoking the classic style by 1940s film. A world-weary detective is sitting behind the desk. He is smoking a cigarette, slowly bringing it to his lips, inhaling, and exhaling a plume of smoke that drifts in the harsh, directional light. The scene is rendered in stark black and white, creating a high-contrast, cinematic mood. The camera holds a static medium shot focused on the detective, emphasizing the gritty texture and oppressive atmosphere.
Our training framework is built on FastVideo, with custom implementation of sequence parallel to optimize memory usage and training efficiency. The sequence parallel approach allows us to distribute the computational load across multiple GPUs, enabling efficient training of large-scale video generation models.
We cache the videos and corresponding text prompts as latents and text embeddings to optimize the training process. This preprocessing step significantly improves training efficiency by reducing computational overhead during the training phase. You need to provide a merge.txt file to specify the dataset path. And the dataset should be a json like training_data.json. Finally, you will get video_caption.json which contains the latents and text embeddings paths.
bash scripts/data_preprocess/preprocess.sh
Example Data Format:
merge.txt
relative_path_to_json_dir, training_data.json
training_data.json
[
{
"cap": "your prompt",
"path": "path/to/your/video.mp4",
"resolution": {
"width": 3840,
"height": 2160
},
"fps": 23.976023976023978,
"duration": 1.4180833333333331
},
...
]
Output Json:
video_caption.json
[
{
"latent_path": "path/to/your/latent.pt",
"prompt_embed_path": "path/to/your/prompt_embed.pt",
"length": 12
},
...
]
bash scripts/train/finetune.sh
When multi-node training, you need to set the number of nodes and the number of processes per node manually. We provide a sample script for multi-node training.
bash scripts/train/finetune_multi_node.sh
If you find our work helpful, please cite us.
@misc{moviigen2025,
title = {MoviiGen 1.1: Towards Cinematic-Quality Video Generative Models},
author = {Yunhao Shui, Benjin Zhu, Xuekuan Wang, Feng Qiu, Yuqiu Huang, Haoyu Zheng, Haoyu Yin, Pengpeng Zhang, Jinru Han, Zhuo Zeng, Yaxin Ding, Helen Xi, Xiang Chen, Jinzhu Li, Liangxian Feng, Xincheng Yin, Bing Wu, Keqiang Sun},
year = {2025},
url = {https://github.com/ZulutionAI/MoviiGen1.1}
}
15 commits