Create butter-smooth transitions between prompts, powered by stable diffusion
Go to file
lunarring cb0a9e0417
Update README.md
2023-01-09 09:14:19 +01:00
configs stable diffusion v2 configs 2022-12-31 13:14:25 +01:00
ldm sd 2.1 2022-12-09 11:06:44 +00:00
.gitignore mp4 files 2022-11-28 08:45:40 +01:00
LICENSE Initial commit 2022-11-19 19:40:58 +01:00
README.md Update README.md 2023-01-09 09:14:19 +01:00
animation.gif calmer animation 2022-12-01 09:23:31 +00:00
example1.jpg example imgs 2023-01-09 08:17:07 +01:00
example1_standard.py example1 upd 2023-01-09 08:52:53 +01:00
example2.jpg example imgs 2023-01-09 08:17:07 +01:00
example2_inpaint.py new branching setup 2023-01-08 10:33:11 +01:00
example3_multitrans.py new branching setup 2023-01-08 10:33:11 +01:00
gradio_ui.py negative prompts 2023-01-08 11:48:44 +01:00
latent_blending.py branching bug 2023-01-08 12:18:54 +01:00
movie_util.py extension 2023-01-04 17:38:06 +01:00
requirements.txt cleaned 2023-01-02 09:55:35 +01:00
stable_diffusion_holder.py negative prompts 2023-01-08 11:48:44 +01:00

README.md

Latent blending enables the creation of super-smooth video transitions between prompts. Powered by stable diffusion 2.1, this method involves specific mixing of intermediate latent representations to create a seamless transition with users having the option to choose full customization or preset options.

Quickstart

fp_ckpt = 'path_to_SD2.ckpt'
fp_config = 'path_to_config.yaml'

sdh = StableDiffusionHolder(fp_ckpt, fp_config, 'cuda')
lb = LatentBlending(sdh)

lb.load_branching_profile(quality='medium', depth_strength=0.4)
lb.set_prompt1('photo of my first prompt1')
lb.set_prompt2('photo of my second prompt')

imgs_transition = lb.run_transition()

Gradio UI

To run the UI on your local machine, run gradio_ui.py

Example 1: Simple transition

To run a simple transition between two prompts, run example1_standard.py

Example 2: Inpainting transition

To run a transition between two prompts where you want some part of the image to remain static, run example2_inpaint.py

Example 3: concatenated transition

To run multiple transition between K prompts, resulting in a stitched video, run example3_multitrans.py

Relevant parameters

Installation

Packages

pip install -r requirements.txt

Download Models from Huggingface

Download the Stable Diffusion v2-1_768 Model

Download the Stable Diffusion 2.0 Inpainting Model (optional)

(Optional) Install Xformers

With xformers, stable diffusion 2 will run a bit faster. The recommended way of installation is via the supplied binaries (Linux).

conda install xformers -c xformers/label/dev

Alternatively, you can build it from source:

# (Optional) Makes the build much faster
pip install ninja
# Set TORCH_CUDA_ARCH_LIST if running and building on different GPU types
pip install -v -U git+https://github.com/facebookresearch/xformers.git@main#egg=xformers
# (this can take dozens of minutes)

How does it work

what makes a transition a good transition?

  • absence of movement
  • every frame looks like a credible photo