Home

Awesome

JDiffusion

Introduction

JDiffusion is a diffusion model library for generating images or videos based on Jittor, Jtorch, diffusers.

Installation

0. Clone JDiffusion & Prepare Env

git clone https://github.com/JittorRepos/JDiffusion.git
#We recommend using conda to configure the Python environment.
conda create -n jdiffusion python=3.9
conda activate jdiffusion

1. Install Requirements

Our code is based on JTorch, a high-performance dynamically compiled deep learning framework fully compatible with the PyTorch interface, please install our version of library.

pip install git+https://github.com/JittorRepos/jittor
pip install git+https://github.com/JittorRepos/jtorch
pip install git+https://github.com/JittorRepos/diffusers_jittor
pip install git+https://github.com/JittorRepos/transformers_jittor

or just

pip install -r requirement.txt

2. Install JDiffusion

cd JDiffusion
pip install -e .

We also provide a docker image (md5:62c305028dae6e62d3dff885d5bc9294) about our environment.

3.Optional Requirements

If you encounter No module named 'cupy':

# Install CuPy from source
pip install cupy
# Install CuPy for cuda11.2 (Recommended, change cuda version you use)
pip install cupy-cuda112

Usage

Use just like diffusers, our scripts are in ./examples/test_*.py, you can try on it.

Some example outputs on these scripts are in ./examples/output.

Stable Diffusion

"a photo of a cat"

image

Latent Consistency Model(LCM)

"Self-portrait oil painting, a beautiful cyborg with golden hair, 8k"

image

Control-Net

input image :

image

"the mona lisa"

image

SDXL

Instruct-Pix2Pix

input image :

image

"make the mountains snowy":

image

AnimateDiff

"masterpiece, bestquality, highlydetailed, ultradetailed, sunset, moon on the sky"
"orange sky, warm lighting, fishing boats, ocean waves seagulls, "
"rippling water, wharf, silhouette, serene atmosphere, dusk, evening glow, "
"golden hour, coastal landscape, seaside scenery"

gif

Level of Support

We now support inference.

Some acceleration tools and memory-saving tools are currently unavailable, like offload, vae_slicing, accelerators..., but you can use jittor's shared memory system.

We welcome more individuals to contribute additional code and models to this repository, in support of the Jittor community.