Home
Login

Biblioteca de modelos de difusão de última geração para geração de imagens, vídeos e áudio

Apache-2.0Python 29.4khuggingfacediffusers Last Updated: 2025-06-23

🤗 Apresentação Detalhada do Projeto Diffusers

Visão Geral do Projeto

🤗 Diffusers é a biblioteca de modelos de difusão de última geração desenvolvida pela Hugging Face, especializada na geração de imagens, áudio e até mesmo estruturas moleculares 3D. Quer você esteja procurando soluções de inferência simples ou treinando seus próprios modelos de difusão, 🤗 Diffusers é um conjunto de ferramentas modular que suporta ambos.

Endereço do Projeto: https://github.com/huggingface/diffusers

Principais Características

Filosofia de Design

  • Usabilidade acima do desempenho (usability over performance)
  • Simplicidade acima da facilidade (simple over easy)
  • Personalização acima de abstrações (customizability over abstractions)

Três Componentes Principais

  1. Pipelines de Difusão de Última Geração (Diffusion Pipelines)

    • Execute a inferência com apenas algumas linhas de código
    • Suporta várias tarefas de geração
  2. Agendadores de Ruído Intercambiáveis (Noise Schedulers)

    • Suporta diferentes velocidades de difusão
    • Qualidade de saída ajustável
  3. Modelos Pré-Treinados (Pretrained Models)

    • Podem ser usados como blocos de construção
    • Combinados com agendadores para criar sistemas de difusão de ponta a ponta

Métodos de Instalação

Versão PyTorch

# Pacote oficial
pip install --upgrade diffusers[torch]

# Versão conda mantida pela comunidade
conda install -c conda-forge diffusers

Versão Flax

pip install --upgrade diffusers[flax]

Início Rápido

Geração de Texto para Imagem

from diffusers import DiffusionPipeline
import torch

pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipeline.to("cuda")
pipeline("An image of a squirrel in Picasso style").images[0]

Sistema de Difusão Personalizado

from diffusers import DDPMScheduler, UNet2DModel
from PIL import Image
import torch

scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
scheduler.set_timesteps(50)

sample_size = model.config.sample_size
noise = torch.randn((1, 3, sample_size, sample_size), device="cuda")
input = noise

for t in scheduler.timesteps:
    with torch.no_grad():
        noisy_residual = model(input, t).sample
    prev_noisy_sample = scheduler.step(noisy_residual, t, input).prev_sample
    input = prev_noisy_sample

image = (input / 2 + 0.5).clamp(0, 1)
image = image.cpu().permute(0, 2, 3, 1).numpy()[0]
image = Image.fromarray((image * 255).round().astype("uint8"))
image

Principais Tarefas e Modelos Suportados

Tarefa Pipeline Modelo Recomendado
Geração de Imagem Incondicional DDPMPipeline google/ddpm-ema-church-256
Texto para Imagem StableDiffusionPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Texto para Imagem (unCLIP) UnCLIPPipeline kakaobrain/karlo-v1-alpha
Texto para Imagem (DeepFloyd IF) IFPipeline DeepFloyd/IF-I-XL-v1.0
Texto para Imagem (Kandinsky) KandinskyPipeline kandinsky-community/kandinsky-2-2-decoder
Geração Controlável StableDiffusionControlNetPipeline lllyasviel/sd-controlnet-canny
Edição de Imagem StableDiffusionInstructPix2PixPipeline timbrooks/instruct-pix2pix
Imagem para Imagem StableDiffusionImg2ImgPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Preenchimento de Imagem StableDiffusionInpaintPipeline runwayml/stable-diffusion-inpainting
Variações de Imagem StableDiffusionImageVariationPipeline lambdalabs/sd-image-variations-diffusers
Super Resolução de Imagem StableDiffusionUpscalePipeline stabilityai/stable-diffusion-x4-upscaler
Super Resolução Latente StableDiffusionLatentUpscalePipeline stabilityai/sd-x2-latent-upscaler

Estrutura da Documentação

Tipo de Documento Conteúdo de Aprendizagem
Tutorial Aprenda as habilidades básicas da biblioteca, como usar modelos e agendadores para construir sistemas de difusão, treinar seus próprios modelos de difusão
Loading Como carregar e configurar todos os componentes da biblioteca (pipelines, modelos e agendadores) e como usar diferentes agendadores
Pipelines for inference Como usar pipelines para diferentes tarefas de inferência, geração em lote, controlar a saída de geração e aleatoriedade
Optimization Como otimizar pipelines para serem executados em hardware com memória limitada e acelerar a inferência
Training Como treinar seus próprios modelos de difusão para diferentes tarefas

Ecossistema da Comunidade

Projetos Integrados

  • Microsoft TaskMatrix
  • InvokeAI
  • InstantID
  • Apple ML Stable Diffusion
  • Lama Cleaner
  • Grounded Segment Anything
  • Stable DreamFusion
  • DeepFloyd IF
  • BentoML
  • Kohya_ss

Resumo

🤗 Diffusers é uma das bibliotecas de modelos de difusão mais completas e fáceis de usar atualmente. Ele não apenas fornece uma rica variedade de modelos e pipelines pré-treinados, mas também suporta treinamento e otimização personalizados. Quer você seja um pesquisador de IA, desenvolvedor ou criador, você pode encontrar as ferramentas necessárias nesta biblioteca para implementar várias aplicações de IA generativa.

Star History Chart