🤗 Diffusers provides pretrained diffusion models across multiple modalities, such as vision and audio, and serves as a modular toolbox for inference and training of diffusion models.
Diffusers는 HuggingFace에서 제공하는 손쉬운 Diffusion 라이브러리이다.
해당 라이브러리는 다음과 같은 기능을 제공한다.
Diffusesrs에 대한 example은 다음 링크에서 확인할 수 있다.
Diffusers를 대표하는 기능은 Stable Diffusion이다.
Stable Diffusion이란 CompVis, Stability AI, LAION and RunwayML에서 만든 text-to-image latent diffusion 모델이며 LAION-5B database의 512x512 images를 학습하였다.
해당 모델은 123M frozen CLIP Vit-L/14 text encoder와 860M UNet을 사용하였으며, 4GB VRAM으로도 돌릴 수 있는 가벼운 모델이다.
import torch
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
다음과 같은 간단한 코드로 Stable Diffusion을 사용 가능하다.
스케줄러 변경을 원한다면 다음과 같은 간단한 코드를 추가함으로써 가능하다.
from diffusers import LMSDiscreteScheduler
pipe.scheduler = LMSDiscreteScheduler.from_config(pipe.scheduler.config)
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
더욱 자세한 사용방법은 Diffusers 해당 사이트에서 확인 가능하다.
Stable Diffusion Fine-tuning을 위해 Diffusers는 다음과 같은 기능을 제공한다.
For the first release, 🤗 Diffusers focuses on text-to-image diffusion techniques. However, diffusers can be used for much more than that! Over the upcoming releases, we'll be focusing on
A few pipeline components are already being worked on, namely:
또한 Diffusers/examples에는 다양한 Diffusers 예시들이 존재한다.
이를 통해 간편하게 Diffusion Model을 적용할 수 있다.