# FIFO-Diffusion_public
**Repository Path**: cly0216/FIFO-Diffusion_public
## Basic Information
- **Project Name**: FIFO-Diffusion_public
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-07-01
- **Last Updated**: 2024-07-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## FIFO-Diffusion: Generating Infinite Videos from Text without Training
💾 VRAM < 10GB
🚀 Infinitely Long Videos
⭐️ Tuning-free
## 📽️ See more video samples in our project page!

"An astronaut floating in space, high quality, 4K resolution.",
VideoCrafter2, 100 frames, 320 X 512 resolution

"A corgi vlogging itself in tropical Maui."
Open-Sora Plan, 512 X 512 resolution
## News 📰
**[2024.06.06]** 🔥🔥🔥 We are excited to release the code for **Open-Sora Plan v1.1.0**. Thanks to the authors for open-sourcing the awesome baseline!
**[2024.05.25]** 🥳🥳🥳 We are thrilled to present our official PyTorch implementation for FIFO-Diffusion. We are releasing the code based on **VideoCrafter2**.
**[2024.05.19]** 🚀🚀🚀 Our paper, *FIFO-Diffusion: Generating Infinite Videos from Text without Training*, has been archived.
## Clone our repository
```
git clone git@github.com:jjihwan/FIFO-Diffusion_public.git
cd FIFO-Diffusion_public
```
## ☀️ Start with VideoCrafter
### 1. Environment Setup ⚙️ (python==3.10.14 recommended)
```
python3 -m venv .fifo
source .fifo/bin/activate
pip install -r requirements.txt
```
### 2.1 Download the models from Hugging Face🤗
|Model|Resolution|Checkpoint
|:----|:---------|:---------
|VideoCrafter2 (Text2Video)|320x512|[Hugging Face](https://huggingface.co/VideoCrafter/VideoCrafter2/blob/main/model.ckpt)
### 2.2 Set file structure
Store them as following structure:
```
cd FIFO-Diffusion_public
.
└── videocrafter_models
└── base_512_v2
└── model.ckpt # VideoCrafter2 checkpoint
```
### 3.1. Run with VideoCrafter2 (Single GPU)
Requires less than **9GB VRAM** with Titan XP.
```
python3 videocrafter_main.py --save_frames
```
### 3.2. Distributed Parallel inference with VideoCrafter2 (Multiple GPUs)
May consume slightly more memory than the single GPU inference (**11GB** with Titan XP).
Please note that our implementation for parallel inference might not be optimal.
Pull requests are welcome! 🤓
```
python3 videocrafter_main_mp.py --num_gpus 8 --save_frames
```
### 3.3. Multi-prompt generation
Comming soon.
## ☀️ Start with Open-Sora Plan v1.1.0
For simple implementation, we use the DDPM scheduler for Open-Sora Plan v1.1.0.
Since Open-Sora Plan recommends using the PNDM scheduler, the results might not show the optimal performance.
Multi-processing (parallelizable inference) and adapting PNDM scheduler are our next plan.
### 1. Environment Setup ⚙️ (python==3.10.14 recommended)
```
cd FIFO-Diffusion_public
git clone git@github.com:PKU-YuanGroup/Open-Sora-Plan.git
python -m venv .sora
source .sora/bin/activate
cd Open-Sora-Plan
pip install -e .
pip install deepspeed
```
### 2. Run with Open-Sora Plan v1.1.0, 65x512x512 model
Requires about 40GB VRAM with A6000.
It uses *n=8* by default.
```
sh scripts/opensora_fifo_65.sh
```
### 3. Run with Open-Sora Plan v1.1.0, 221x512x512 model
Requires about 40GB VRAM with A6000.
It uses *n=4* by default.
```
sh scripts/opensora_fifo_221.sh
```
### 4. Distributed Parallel inference with Open-Sora Plan (WIP)
Comming soon.
## Star History
[](https://star-history.com/#jjihwan/FIFO-Diffusion_public&Date)
## 😆 Citation
```
@article{kim2024fifo,
title = {FIFO-Diffusion: Generating Infinite Videos from Text without Training},
author = {Jihwan Kim and Junoh Kang and Jinyoung Choi and Bohyung Han},
journal = {arXiv preprint arXiv:2405.11473},
year = {2024},
}
```
## 🤓 Acknowledgements
Our codebase builds on [VideoCrafter](https://github.com/AILab-CVC/VideoCrafter), [Open-Sora Plan](https://github.com/PKU-YuanGroup/Open-Sora-Plan), [zeroscope](https://huggingface.co/cerspense/zeroscope_v2_576w).
Thanks to the authors for sharing their awesome codebases!