Home
Login

Una biblioteca de modelos de difusión de última generación que admite la generación de imágenes, videos y audio.

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

🤗 Introducción Detallada al Proyecto Diffusers

Resumen del Proyecto

🤗 Diffusers es la biblioteca de modelos de difusión más avanzada desarrollada por Hugging Face, especializada en la generación de imágenes, audio e incluso estructuras moleculares 3D. Ya sea que estés buscando soluciones de inferencia sencillas o entrenar tus propios modelos de difusión, 🤗 Diffusers es una caja de herramientas modular que admite ambas opciones.

Dirección del Proyecto: https://github.com/huggingface/diffusers

Características Principales

Filosofía de Diseño

  • Usabilidad sobre rendimiento (usability over performance)
  • Simplicidad sobre facilidad (simple over easy)
  • Personalización sobre abstracciones (customizability over abstractions)

Tres Componentes Centrales

  1. Pipelines de Difusión de Última Generación (Diffusion Pipelines)

    • Ejecuta la inferencia con solo unas pocas líneas de código
    • Admite múltiples tareas de generación
  2. Programadores de Ruido Intercambiables (Noise Schedulers)

    • Admite diferentes velocidades de difusión
    • Calidad de salida ajustable
  3. Modelos Pre-entrenados (Pretrained Models)

    • Se pueden utilizar como bloques de construcción
    • Se combinan con los programadores para crear sistemas de difusión de extremo a extremo

Métodos de Instalación

Versión PyTorch

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

# Versión conda mantenida por la comunidad
conda install -c conda-forge diffusers

Versión Flax

pip install --upgrade diffusers[flax]

Inicio Rápido

Generación de Texto a Imagen

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 Difusión 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

Tareas y Modelos Principales Soportados

Tarea Pipeline Modelo Recomendado
Generación de imágenes incondicional DDPMPipeline google/ddpm-ema-church-256
Texto a imagen StableDiffusionPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Texto a imagen (unCLIP) UnCLIPPipeline kakaobrain/karlo-v1-alpha
Texto a imagen (DeepFloyd IF) IFPipeline DeepFloyd/IF-I-XL-v1.0
Texto a imagen (Kandinsky) KandinskyPipeline kandinsky-community/kandinsky-2-2-decoder
Generación controlable StableDiffusionControlNetPipeline lllyasviel/sd-controlnet-canny
Edición de imágenes StableDiffusionInstructPix2PixPipeline timbrooks/instruct-pix2pix
Imagen a imagen StableDiffusionImg2ImgPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Restauración de imágenes StableDiffusionInpaintPipeline runwayml/stable-diffusion-inpainting
Variantes de imagen StableDiffusionImageVariationPipeline lambdalabs/sd-image-variations-diffusers
Superresolución de imágenes StableDiffusionUpscalePipeline stabilityai/stable-diffusion-x4-upscaler
Superresolución latente StableDiffusionLatentUpscalePipeline stabilityai/sd-x2-latent-upscaler

Estructura de la Documentación

Tipo de Documento Contenido de Aprendizaje
Tutorial Aprende las habilidades básicas de la biblioteca, como usar modelos y programadores para construir sistemas de difusión, entrenar tus propios modelos de difusión
Loading Cómo cargar y configurar todos los componentes de la biblioteca (pipelines, modelos y programadores), y cómo usar diferentes programadores
Pipelines for inference Cómo usar pipelines para diferentes tareas de inferencia, generación por lotes, controlar la salida de generación y la aleatoriedad
Optimization Cómo optimizar pipelines para ejecutarlos en hardware con memoria limitada y acelerar la inferencia
Training Cómo entrenar tus propios modelos de difusión para diferentes tareas

Ecosistema de la Comunidad

Proyectos Integrados

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

Resumen

🤗 Diffusers es una de las bibliotecas de modelos de difusión más completas y fáciles de usar disponibles en la actualidad. No solo proporciona una rica colección de modelos y pipelines pre-entrenados, sino que también admite entrenamiento y optimización personalizados. Ya sean investigadores de IA, desarrolladores o creadores, todos pueden encontrar las herramientas necesarias en esta biblioteca para implementar varias aplicaciones de IA generativa.

Star History Chart