From f06735797b304562824b9f7c7b173d89e3f66db4 Mon Sep 17 00:00:00 2001
From: "(CK)" <48079849+x-CK-x@users.noreply.github.com>
Date: Sun, 16 Jul 2023 22:08:25 -0400
Subject: [PATCH] webui added w/demo & docs
---
README.md | 481 ++++++++++++++++++++++++----------------------
environment.yaml | 42 ++--
ui/first-tab.png | Bin 0 -> 49350 bytes
ui/second-tab.png | Bin 0 -> 86335 bytes
utils.py | 41 ++++
webui.py | 307 +++++++++++++++++++++++++++++
6 files changed, 617 insertions(+), 254 deletions(-)
create mode 100644 ui/first-tab.png
create mode 100644 ui/second-tab.png
create mode 100644 utils.py
create mode 100644 webui.py
diff --git a/README.md b/README.md
index 6b8067b..ff097bf 100644
--- a/README.md
+++ b/README.md
@@ -1,235 +1,248 @@
-# AnimateDiff
-
-This repository is the official implementation of [AnimateDiff](https://arxiv.org/abs/2307.04725).
-
-**[AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning](https://arxiv.org/abs/2307.04725)**
-
-Yuwei Guo,
-Ceyuan Yang*,
-Anyi Rao,
-Yaohui Wang,
-Yu Qiao,
-Dahua Lin,
-Bo Dai
-
-
*Corresponding Author
-
-[Arxiv Report](https://arxiv.org/abs/2307.04725) | [Project Page](https://animatediff.github.io/)
-
-## Todo
-- [x] Code Release
-- [x] Arxiv Report
-- [x] GPU Memory Optimization
-- [ ] Gradio Interface
-
-
-
-## Common Issues
-
-Installation
-Please ensure the installation of [xformer](https://github.com/facebookresearch/xformers) that is applied to reduce the inference memory.
-
-
-
-Various resolution or number of frames
-Currently, we recommend users to generate animation with 16 frames and 512 resolution that are aligned with our training settings. Notably, various resolution/frames may affect the quality more or less.
-
-
-
-Animating a given image
-We totally agree that animating a given image is an appealing feature, which we would try to support officially in future. For now, you may enjoy other efforts from the [talesofai](https://github.com/talesofai/AnimateDiff).
-
-
-
-Contributions from community
-Contributions are always welcome!! We will create another branch which community could contribute to. As for the main branch, we would like to align it with the original technical report:)
-
-
-
-
-## Setup for Inference
-
-### Prepare Environment
-~~Our approach takes around 60 GB GPU memory to inference. NVIDIA A100 is recommanded.~~
-
-***We updated our inference code with xformers and a sequential decoding trick. Now AnimateDiff takes only ~12GB VRAM to inference, and run on a single RTX3090 !!***
-
-```
-git clone https://github.com/guoyww/AnimateDiff.git
-cd AnimateDiff
-
-conda env create -f environment.yaml
-conda activate animatediff
-```
-
-### Download Base T2I & Motion Module Checkpoints
-We provide two versions of our Motion Module, which are trained on stable-diffusion-v1-4 and finetuned on v1-5 seperately.
-It's recommanded to try both of them for best results.
-```
-git lfs install
-git clone https://huggingface.co/runwayml/stable-diffusion-v1-5 models/StableDiffusion/
-
-bash download_bashscripts/0-MotionModule.sh
-```
-You may also directly download the motion module checkpoints from [Google Drive](https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI?usp=sharing), then put them in `models/Motion_Module/` folder.
-
-### Prepare Personalize T2I
-Here we provide inference configs for 6 demo T2I on CivitAI.
-You may run the following bash scripts to download these checkpoints.
-```
-bash download_bashscripts/1-ToonYou.sh
-bash download_bashscripts/2-Lyriel.sh
-bash download_bashscripts/3-RcnzCartoon.sh
-bash download_bashscripts/4-MajicMix.sh
-bash download_bashscripts/5-RealisticVision.sh
-bash download_bashscripts/6-Tusun.sh
-bash download_bashscripts/7-FilmVelvia.sh
-bash download_bashscripts/8-GhibliBackground.sh
-```
-
-### Inference
-After downloading the above peronalized T2I checkpoints, run the following commands to generate animations. The results will automatically be saved to `samples/` folder.
-```
-python -m scripts.animate --config configs/prompts/1-ToonYou.yaml
-python -m scripts.animate --config configs/prompts/2-Lyriel.yaml
-python -m scripts.animate --config configs/prompts/3-RcnzCartoon.yaml
-python -m scripts.animate --config configs/prompts/4-MajicMix.yaml
-python -m scripts.animate --config configs/prompts/5-RealisticVision.yaml
-python -m scripts.animate --config configs/prompts/6-Tusun.yaml
-python -m scripts.animate --config configs/prompts/7-FilmVelvia.yaml
-python -m scripts.animate --config configs/prompts/8-GhibliBackground.yaml
-```
-
-To generate animations with a new DreamBooth/LoRA model, you may create a new config `.yaml` file in the following format:
-```
-NewModel:
- path: "[path to your DreamBooth/LoRA model .safetensors file]"
- base: "[path to LoRA base model .safetensors file, leave it empty string if not needed]"
-
- motion_module:
- - "models/Motion_Module/mm_sd_v14.ckpt"
- - "models/Motion_Module/mm_sd_v15.ckpt"
-
- steps: 25
- guidance_scale: 7.5
-
- prompt:
- - "[positive prompt]"
-
- n_prompt:
- - "[negative prompt]"
-```
-Then run the following commands:
-```
-python -m scripts.animate --config [path to the config file]
-```
-
-## Gallery
-Here we demonstrate several best results we found in our experiments.
-
-
-Model:ToonYou
-
-
-Model:Counterfeit V3.0
-
-
-Model:Realistic Vision V2.0
-
-
-Model: majicMIX Realistic
-
-
-Model:RCNZ Cartoon
-
-
-Model:FilmVelvia
-
-#### Community Cases
-Here are some samples contributed by the community artists. Create a Pull Request if you would like to show your results here😚.
-
-
-
-Character Model:Yoimiya
-(with an initial reference image, see WIP fork for the extended implementation.)
-
-
-
-
-Character Model:Paimon;
-Pose Model:Hold Sign
-
-## BibTeX
-```
-@article{guo2023animatediff,
- title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
- author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Wang, Yaohui and Qiao, Yu and Lin, Dahua and Dai, Bo},
- journal={arXiv preprint arXiv:2307.04725},
- year={2023}
-}
-```
-
-## Contact Us
-**Yuwei Guo**: [guoyuwei@pjlab.org.cn](mailto:guoyuwei@pjlab.org.cn)
-**Ceyuan Yang**: [yangceyuan@pjlab.org.cn](mailto:yangceyuan@pjlab.org.cn)
-**Bo Dai**: [daibo@pjlab.org.cn](mailto:daibo@pjlab.org.cn)
-
-## Acknowledgements
+# AnimateDiff
+
+This repository is the official implementation of [AnimateDiff](https://arxiv.org/abs/2307.04725).
+
+**[AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning](https://arxiv.org/abs/2307.04725)**
+
+Yuwei Guo,
+Ceyuan Yang*,
+Anyi Rao,
+Yaohui Wang,
+Yu Qiao,
+Dahua Lin,
+Bo Dai
+
+*Corresponding Author
+
+[Arxiv Report](https://arxiv.org/abs/2307.04725) | [Project Page](https://animatediff.github.io/)
+
+## Todo
+- [x] Code Release
+- [x] Arxiv Report
+- [x] GPU Memory Optimization
+- [ ] Gradio Interface
+
+
+
+## Common Issues
+
+Installation
+Please ensure the installation of [xformer](https://github.com/facebookresearch/xformers) that is applied to reduce the inference memory.
+
+
+
+Various resolution or number of frames
+Currently, we recommend users to generate animation with 16 frames and 512 resolution that are aligned with our training settings. Notably, various resolution/frames may affect the quality more or less.
+
+
+
+Animating a given image
+We totally agree that animating a given image is an appealing feature, which we would try to support officially in future. For now, you may enjoy other efforts from the [talesofai](https://github.com/talesofai/AnimateDiff).
+
+
+
+Contributions from community
+Contributions are always welcome!! We will create another branch which community could contribute to. As for the main branch, we would like to align it with the original technical report:)
+
+
+
+
+## Setup for Inference
+
+### Prepare Environment
+~~Our approach takes around 60 GB GPU memory to inference. NVIDIA A100 is recommanded.~~
+
+***We updated our inference code with xformers and a sequential decoding trick. Now AnimateDiff takes only ~12GB VRAM to inference, and run on a single RTX3090 !!***
+
+```
+git clone https://github.com/guoyww/AnimateDiff.git
+cd AnimateDiff
+
+conda env create -f environment.yaml
+conda activate animatediff
+```
+
+### Download Base T2I & Motion Module Checkpoints
+We provide two versions of our Motion Module, which are trained on stable-diffusion-v1-4 and finetuned on v1-5 seperately.
+It's recommanded to try both of them for best results.
+```
+git lfs install
+git clone https://huggingface.co/runwayml/stable-diffusion-v1-5 models/StableDiffusion/
+
+bash download_bashscripts/0-MotionModule.sh
+```
+You may also directly download the motion module checkpoints from [Google Drive](https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI?usp=sharing), then put them in `models/Motion_Module/` folder.
+
+### Prepare Personalize T2I
+Here we provide inference configs for 6 demo T2I on CivitAI.
+You may run the following bash scripts to download these checkpoints.
+```
+bash download_bashscripts/1-ToonYou.sh
+bash download_bashscripts/2-Lyriel.sh
+bash download_bashscripts/3-RcnzCartoon.sh
+bash download_bashscripts/4-MajicMix.sh
+bash download_bashscripts/5-RealisticVision.sh
+bash download_bashscripts/6-Tusun.sh
+bash download_bashscripts/7-FilmVelvia.sh
+bash download_bashscripts/8-GhibliBackground.sh
+```
+
+### Inference
+After downloading the above peronalized T2I checkpoints, run the following commands to generate animations. The results will automatically be saved to `samples/` folder.
+```
+python -m scripts.animate --config configs/prompts/1-ToonYou.yaml
+python -m scripts.animate --config configs/prompts/2-Lyriel.yaml
+python -m scripts.animate --config configs/prompts/3-RcnzCartoon.yaml
+python -m scripts.animate --config configs/prompts/4-MajicMix.yaml
+python -m scripts.animate --config configs/prompts/5-RealisticVision.yaml
+python -m scripts.animate --config configs/prompts/6-Tusun.yaml
+python -m scripts.animate --config configs/prompts/7-FilmVelvia.yaml
+python -m scripts.animate --config configs/prompts/8-GhibliBackground.yaml
+```
+
+### Optionally Run with WebUI
+Configure yaml options, model settings & generate animations as desired.
+```
+python webui.py
+```
+
+
+
+  |
+  |
+
+
+
+To generate animations with a new DreamBooth/LoRA model, you may create a new config `.yaml` file in the following format:
+```
+NewModel:
+ path: "[path to your DreamBooth/LoRA model .safetensors file]"
+ base: "[path to LoRA base model .safetensors file, leave it empty string if not needed]"
+
+ motion_module:
+ - "models/Motion_Module/mm_sd_v14.ckpt"
+ - "models/Motion_Module/mm_sd_v15.ckpt"
+
+ steps: 25
+ guidance_scale: 7.5
+
+ prompt:
+ - "[positive prompt]"
+
+ n_prompt:
+ - "[negative prompt]"
+```
+Then run the following commands:
+```
+python -m scripts.animate --config [path to the config file]
+```
+
+## Gallery
+Here we demonstrate several best results we found in our experiments.
+
+
+Model:ToonYou
+
+
+Model:Counterfeit V3.0
+
+
+Model:Realistic Vision V2.0
+
+
+Model: majicMIX Realistic
+
+
+Model:RCNZ Cartoon
+
+
+Model:FilmVelvia
+
+#### Community Cases
+Here are some samples contributed by the community artists. Create a Pull Request if you would like to show your results here😚.
+
+
+
+Character Model:Yoimiya
+(with an initial reference image, see WIP fork for the extended implementation.)
+
+
+
+
+Character Model:Paimon;
+Pose Model:Hold Sign
+
+## BibTeX
+```
+@article{guo2023animatediff,
+ title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
+ author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Wang, Yaohui and Qiao, Yu and Lin, Dahua and Dai, Bo},
+ journal={arXiv preprint arXiv:2307.04725},
+ year={2023}
+}
+```
+
+## Contact Us
+**Yuwei Guo**: [guoyuwei@pjlab.org.cn](mailto:guoyuwei@pjlab.org.cn)
+**Ceyuan Yang**: [yangceyuan@pjlab.org.cn](mailto:yangceyuan@pjlab.org.cn)
+**Bo Dai**: [daibo@pjlab.org.cn](mailto:daibo@pjlab.org.cn)
+
+## Acknowledgements
Codebase built upon [Tune-a-Video](https://github.com/showlab/Tune-A-Video).
\ No newline at end of file
diff --git a/environment.yaml b/environment.yaml
index 2e2e36a..a675b3f 100644
--- a/environment.yaml
+++ b/environment.yaml
@@ -1,20 +1,22 @@
-name: animatediff
-channels:
- - pytorch
- - xformers
-dependencies:
- - python=3.10
- - pytorch==1.12.1
- - torchvision==0.13.1
- - torchaudio==0.12.1
- - cudatoolkit=11.3
- - xformers
- - pip
- - pip:
- - diffusers[torch]==0.11.1
- - transformers==4.25.1
- - imageio==2.27.0
- - gdown
- - einops
- - omegaconf
- - safetensors
+name: animatediff
+channels:
+ - pytorch
+ - xformers
+dependencies:
+ - python=3.10
+ - pytorch==1.12.1
+ - torchvision==0.13.1
+ - torchaudio==0.12.1
+ - cudatoolkit=11.3
+ - xformers
+ - pip
+ - pip:
+ - diffusers[torch]==0.11.1
+ - transformers==4.25.1
+ - imageio==2.27.0
+ - gdown
+ - einops
+ - omegaconf
+ - safetensors
+ - pyyaml
+ - gradio=3.36.1
\ No newline at end of file
diff --git a/ui/first-tab.png b/ui/first-tab.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f89e1ddb6454b05241adbc54ad0df309af3d401
GIT binary patch
literal 49350
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