# Hugging Face에서 🧨 `diffusers` 사용

Diffusers는 이미지, 오디오, 심지어 분자의 3D 구조 생성을 위한 최첨단 사전 학습 diffusion model을 위한 필수 라이브러리입니다. 간단한 추론 솔루션을 찾고 있거나 자체 diffusion model을 학습하려는 경우, Diffusers는 이 두 가지를 모두 지원하는 모듈형 도구 상자입니다. 이 라이브러리는 성능보다 사용성, 단순함보다 용이성, 추상화보다 커스터마이징 가능성을 중점으로 설계되었습니다.

## Hub에서 Diffusers 탐색

Hub에는 10,000개 이상의 `diffusers` 호환 파이프라인이 있으며, [모델 페이지](https://huggingface.co/models?library=diffusers&sort=downloads) 왼쪽에서 필터링하여 찾을 수 있습니다. Diffusion 시스템은 일반적으로 텍스트 인코더, UNet, VAE, 스케줄러와 같은 여러 구성 요소로 이루어져 있습니다. 독립적인 모델은 아니지만, 파이프라인 추상화를 통해 추론이나 학습에 쉽게 사용할 수 있습니다.

다양한 작업을 위한 diffusion 파이프라인을 찾을 수 있습니다:

* 자연어 텍스트 프롬프트([text-to-image](https://huggingface.co/models?library=diffusers&pipeline_tag=text-to-image&sort=downloads))에서 이미지를 생성합니다.
* 자연어 텍스트 프롬프트를 사용하여 이미지를 변환하는 작업([image-to-image](https://huggingface.co/models?library=diffusers&pipeline_tag=image-to-image&sort=downloads)).
* 자연어 설명([text-to-video](https://huggingface.co/models?library=diffusers&pipeline_tag=text-to-video&sort=downloads))에서 비디오 생성

모델을 다운로드하지 않고 테스트해 보려면 브라우저 위젯을 통해 브라우저에서 모델을 직접 사용해 볼 수 있습니다.

## Diffusers 저장소 파일

[Diffusers](https://hf.co/docs/diffusers/index) 모델 저장소에는 이미지를 인코딩하고 latents를 디코딩하는 변분 오토인코더, 텍스트 인코더, transformer 모델 등 필요한 모든 모델 하위 구성 요소를 포함합니다. 이러한 하위 구성 요소는 여러 폴더로 구성된 레이아웃에 정리되어 있습니다.

  

각 하위 폴더에는 [Transformers](./transformers) 모델과 유사하게 각 구성 요소의 가중치와 구성 파일(해당하는 경우)이 포함되어 있습니다.

Weights는 일반적으로 safetensors 파일로 저장되며, configuration은 모델 아키텍처에 대한 정보를 담은 json 파일입니다.

## 기존 파이프라인 사용

모든 `diffusers` 파이프라인은 한 줄만 추가하면 바로 사용할 수 있습니다. 생성을 실행하려면 항상 `DiffusionPipeline`에서 시작하는 것을 권장합니다:

```py
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
```

UNet과 같은 특정 파이프라인 구성 요소를 로드하려면 다음을 수행할 수 있습니다:

```py
from diffusers import UNet2DConditionModel

unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet")
```

## 파이프라인 및 모델 공유

모든 [pipeline 클래스](https://huggingface.co/docs/diffusers/main/api/pipelines/overview), [모델 클래스](https://huggingface.co/docs/diffusers/main/api/models/overview), [스케줄러 클래스](https://huggingface.co/docs/diffusers/main/api/schedulers/overview)는 Hub와 완전히 호환됩니다. 구체적으로, `from_pretrained()` 메서드를 사용하여 Hub에서 쉽게 로드할 수 있으며, `push_to_hub()` 메서드를 사용하여 다른 사용자와 공유할 수 있습니다.

자세한 내용은 [문서](https://huggingface.co/docs/diffusers/main/en/using-diffusers/push_to_hub)를 확인해 주세요.

## 추가 리소스

* Diffusers [라이브러리](https://github.com/huggingface/diffusers).
* Diffusers [문서](https://huggingface.co/docs/diffusers/index).

