The library pared
down the features of diffusers
implemented the minimum function to generate images without using huggingface/diffusers functions to understand the inner workings of the library.
PareDiffusers was born out of a curiosity and a desire to demystify the processes of generating images by diffusion models and the workings of the diffusers library.
I will write blog-style notebooks understanding how works using a top-down approach. First, generate images using diffusers to understand the overall flow, then gradually replace code with Pytorch code. In the end, we will write the code for the PareDiffusers code that does not include diffusers code.
I hope that it helps others who share a similar interest in the inner workings of image generation.
- v0.0.0: After Ch0.0.0, inprement StableDiffusionPipeline.
- v0.1.2: After Ch0.1.0, imprement DDIMScheduler.
- v0.2.0: After Ch0.2.0, imprement UNet2DConditionModel.
- v0.3.1: After Ch0.3.0, imprement AutoencoderKL.
version: v0.0.0
- Generate images using diffusers
- Imprement StableDiffusionPipeline
- Imprement DDIMScheduler
- Imprement UNet2DConditionModel
- Imprement AutoencoderKL
- Test PareDiffusersPipeline by pip install parediffusers.
- Play prompt_embeds, make gradation images by using two prompts.
version: v0.1.3
- Imprement images using diffusers
- Imprement StableDiffusionPipeline
- Imprement DDIMScheduler
- Imprement UNet2DConditionModel
- Imprement AutoencoderKL
- Test PareDiffusersPipeline by pip install parediffusers.
version: v0.2.0
- Generate images using diffusers
- Imprement StableDiffusionPipeline
- Imprement DDIMScheduler
- Imprement UNet2DConditionModel
- Imprement AutoencoderKL
- Test PareDiffusersPipeline by pip install parediffusers.
version: v0.3.1
- Generate images using diffusers
- Imprement StableDiffusionPipeline
- Imprement DDIMScheduler
- Imprement UNet2DConditionModel
- Imprement AutoencoderKL
- Test PareDiffusersPipeline by pip install parediffusers.
import torch
from parediffusers import PareDiffusionPipeline
device = torch.device("cuda")
dtype = torch.float16
model_name = "stabilityai/stable-diffusion-2"
pipe = PareDiffusionPipeline.from_pretrained(model_name, device=device, dtype=dtype)
prompt = "painting depicting the sea, sunrise, ship, artstation, 4k, concept art"
image = pipe(prompt)
display(image)
I am starting this project to help me understand the code in order to participate in diffusers' OSS. So, I think there may be some mistakes in my explanation, so if you find any, please feel free to correct them via an issue or pull request.