Diffusers documentation

Introducción

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Introducción

Diffusers es una biblioteca para desarrolladores e investigadores que proporciona una API de inferencia sencilla para generar imágenes, videos y audio, así como los bloques de construcción para implementar nuevos flujos de trabajo.

Diffusers ofrece muchas optimizaciones de serie que permiten cargar y ejecutar modelos grandes en configuraciones con memoria limitada o acelerar la inferencia.

Este tutorial de iniciación te dará una visión general de Diffusers y te permitirá empezar a generar contenido rápidamente.

Antes de comenzar, asegúrate de tener una cuenta de Hugging Face para usar modelos con acceso restringido como Flux. ¿Prefieres construir un pipeline personalizado? Consulta la introducción rápida a Modular Diffusers y el resumen.

Sigue la guía de Instalación para instalar Diffusers si aún no está instalado.

Prompt del agente

Pega esto en tu agente de codificación para configurar Diffusers para inferencia.

Help me get set up with Hugging Face Diffusers for inference.

1. Install Diffusers for my environment with `uv pip install "diffusers[torch]"`.
2. If I need gated Hub models, help me authenticate to the Hugging Face Hub.
3. Install Diffusers coding agent skills with `diffusers-cli skills add diffusers-cli`. Pass `--cursor`, `--claude`, or `--codex` if auto-detect fails. Optionally pass `--all` to install every skill in the registry.
4. Run a first text-to-image with DiffusionPipeline or `diffusers-cli run`, using a small or current Quickstart model and the right `device_map` for my machine.
5. Ask what I want next and point me at the matching docs.

DiffusionPipeline

DiffusionPipeline agrupa los componentes de un modelo de difusión (codificador de texto, programador, UNet o DiT y VAE) en una sola clase para la inferencia. Cargue con from_pretrained() y luego llame a la tubería.

Los argumentos de __call__() como num_inference_steps cambian la calidad y la velocidad. Para ver los detalles de carga y los componentes combinables, consulte Cargar pipelines. Para cambiar el programador, consulte Programadores.

Los ejemplos a continuación utilizan los valores de argumento predeterminados.

texto a imagen
texto a video

Use .images[0] para acceder a la imagen generada.

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
  "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda"  # or "mps", "xpu", "cpu"
)

prompt = """
cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California
highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain
"""
pipeline(prompt).images[0]

LoRA

Los adaptadores LoRA añaden un punto de control de estilo o sujeto pequeño sobre un pipeline base. Carga uno con load_lora_weights(). Algunos LoRA requieren una frase de activación. Consulta la tarjeta de modelo del LoRA.

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
  "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda"  # or "mps", "xpu", "cpu"
)
pipeline.load_lora_weights(
  "threecrowco/VolkClipartQwen",
  weight_name="pytorch_lora_weights.safetensors",
)

prompt = """
Volk clipart style drawing of a cat sipping a margarita in a pool in Palm Springs, California, flat colors, bold outlines, simple shapes
"""
pipeline(prompt).images[0]

Cuantización y optimizaciones

Los modelos grandes a menudo requieren menos memoria o más velocidad. Utilice cuantización para reducir los pesos en memoria y compile_repeated_blocks() para acelerar las generaciones posteriores. Para descarga de modelos y otras opciones, consulte Optimizar y escalar.

Para usar menos memoria, cargue en 4 bits con bitsandbytes.

import torch
from diffusers import DiffusionPipeline
from diffusers.quantizers import PipelineQuantizationConfig

quant_config = PipelineQuantizationConfig(
  quant_backend="bitsandbytes_4bit",
  quant_kwargs={"load_in_4bit": True, "bnb_4bit_quant_type": "nf4", "bnb_4bit_compute_dtype": torch.bfloat16},
  components_to_quantize=["transformer", "text_encoder"],
)
pipeline = DiffusionPipeline.from_pretrained(
  "Qwen/Qwen-Image",
  dtype=torch.bfloat16,
  quantization_config=quant_config,
  device_map="cuda"  # or "mps", "xpu", "cpu"
)

prompt = """
cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California
highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain
"""
pipeline(prompt).images[0]

Para acelerar las ejecuciones posteriores, compile los bloques repetidos del transformer. El primer generate después de la compilación es un arranque en frío y es lento. Los generates posteriores son más rápidos.

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
  "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda"  # or "mps", "xpu", "cpu"
)
pipeline.transformer.compile_repeated_blocks(fullgraph=True)

prompt = """
cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California
highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain
"""
pipeline(prompt).images[0]

Próximos pasos

Update on GitHub