Diffusers documentation

Быстрый старт

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Быстрый старт

Diffusers — это библиотека для разработчиков и исследователей, которая предоставляет простой API для вывода, генерирующего изображения, видео и аудио, а также строительные блоки для реализации новых рабочих процессов.

Diffusers предоставляет множество оптимизаций из коробки, что позволяет загружать и запускать большие модели на конфигурациях с ограниченной памятью или ускорять инференс.

В этом быстром руководстве вы познакомитесь с Diffusers и начнёте генерировать изображения в кратчайшие сроки.

Прежде чем начать, убедитесь, что у вас есть аккаунт Hugging Face для использования моделей с ограниченным доступом, таких как Flux. Хотите создать собственный пайплайн? Ознакомьтесь с быстрым стартом Modular Diffusers и обзором.

Следуйте инструкции по установке, чтобы установить Diffusers, если он ещё не установлен.

Промпт агента

Вставьте это в вашего агента для программирования, чтобы настроить Diffusers для инференса.

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 packages the pieces of a diffusion model (text encoder, scheduler, UNet or DiT, and VAE) into one class for inference. Load with from_pretrained(), then call the pipeline.

Аргументы __call__(), такие как num_inference_steps, влияют на качество и скорость. Подробности о загрузке и комбинации компонентов см. в разделе Загрузка пайплайнов. Чтобы заменить планировщик, см. раздел Планировщики.

Приведённые ниже примеры используют значения аргументов по умолчанию.

text-to-image
text-to-video

Используйте .images[0] для доступа к сгенерированному изображению.

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

LoRA-адаптеры добавляют небольшой чекпоинт стиля или объекта поверх базового пайплайна. Загрузите один из них с помощью load_lora_weights(). Некоторые LoRA требуют триггерную фразу. Проверьте карточку модели 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]

Квантование и оптимизации

Крупные модели часто требуют меньше памяти или большей скорости. Используйте квантование, чтобы уменьшить размер весов в памяти, и compile_repeated_blocks(), чтобы ускорить последующие генерации. Для выгрузки модели и других вариантов см. Оптимизация и масштабирование.

Чтобы использовать меньше памяти, загружайте модель в 4-битном формате с помощью 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]

Для ускорения последующих запусков скомпилируйте повторяющиеся блоки трансформера. Первый вызов generate после компиляции является холодным стартом и выполняется медленно. Последующие вызовы generate работают быстрее.

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]

Дальнейшие шаги

Update on GitHub