# Usando 🧨 `diffusers` no Hugging Face

Diffusers é a biblioteca de referência para modelos de difusão pré-treinados de última geração para gerar imagens, áudio e até estruturas 3D de moléculas. Se você procura uma solução simples de inferência ou deseja treinar seu próprio modelo de difusão, o Diffusers é uma caixa de ferramentas modular que suporta ambos. A biblioteca é projetada com foco em usabilidade em vez de desempenho, simplicidade em vez de facilidade e personalizabilidade em vez de abstrações.

## Explorando o Diffusers no Hub

Há mais de 10.000 pipelines compatíveis com `diffusers` no Hub, que você pode encontrar filtrando à esquerda de [a página de modelos](https://huggingface.co/models?library=diffusers&sort=downloads). Os sistemas de difusão são tipicamente compostos por múltiplos componentes, como text encoder, UNet, VAE e scheduler. Embora não sejam modelos independentes, a abstração de pipeline facilita o uso deles para inferência ou treinamento.

Você pode encontrar pipelines de difusão para muitas tarefas diferentes:

* Gerar imagens a partir de prompts de texto em linguagem natural ([text-to-image](https://huggingface.co/models?library=diffusers&pipeline_tag=text-to-image&sort=downloads)).
* Transformar imagens usando prompts de texto em linguagem natural ([image-to-image](https://huggingface.co/models?library=diffusers&pipeline_tag=image-to-image&sort=downloads)).
* Gerar vídeos a partir de descrições em linguagem natural ([text-to-video](https://huggingface.co/models?library=diffusers&pipeline_tag=text-to-video&sort=downloads)).

Você pode testar os modelos diretamente no navegador, caso queira experimentá-los sem baixá-los, graças aos widgets no navegador!

## Arquivos do repositório Diffusers

Um repositório de modelo do [Diffusers](https://hf.co/docs/diffusers/index) contém todos os subcomponentes de modelo necessários, como o autoencoder variacional para codificar imagens e decodificar latentes, o codificador de texto, o modelo transformer e outros. Esses subcomponentes são organizados em um layout de múltiplas pastas.

  

Cada subpasta contém os pesos e a configuração - quando aplicável - de cada componente, de forma semelhante a um modelo do [Transformers](./transformers).

Os pesos geralmente são armazenados como arquivos safetensors e a configuração geralmente é um arquivo json com informações sobre a arquitetura do modelo.

## Usando pipelines existentes

Todos os pipelines do `diffusers` estão a uma linha de distância de serem usados! Para executar a geração, recomendamos começar sempre do `DiffusionPipeline`:

```py
from diffusers import DiffusionPipeline

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

Se você deseja carregar um componente específico do pipeline, como o UNet, você pode fazer isso da seguinte forma:

```py
from diffusers import UNet2DConditionModel

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

## Compartilhando seus pipelines e modelos

Todas as [classes de pipeline](https://huggingface.co/docs/diffusers/main/api/pipelines/overview), [classes de modelo](https://huggingface.co/docs/diffusers/main/api/models/overview) e [classes de scheduler](https://huggingface.co/docs/diffusers/main/api/schedulers/overview) são totalmente compatíveis com o Hub. Mais especificamente, elas podem ser carregadas facilmente do Hub usando o método `from_pretrained()` e compartilhadas com outras pessoas usando o método `push_to_hub()`.

Para mais detalhes, consulte a [documentação](https://huggingface.co/docs/diffusers/main/en/using-diffusers/push_to_hub).

## Recursos adicionais

* Biblioteca [Diffusers](https://github.com/huggingface/diffusers).
* Documentação do Diffusers [docs](https://huggingface.co/docs/diffusers/index).

