Diffusers documentation
Cài đặt
Cài đặt
Diffusers yêu cầu Python 3.10+ và được kiểm thử với PyTorch 2.6+. Cài đặt PyTorch theo hệ thống và cấu hình của bạn.
Tạo một môi trường ảo để quản lý các dự án riêng biệt dễ dàng hơn và tránh các vấn đề tương thích giữa các phụ thuộc. Sử dụng uv, một trình quản lý gói và dự án Python dựa trên Rust, để tạo môi trường ảo và cài đặt Diffusers.
uv venv my-env
source my-env/bin/activateCài đặt Diffusers bằng một trong các phương pháp sau.
uv pip install diffusers["torch"] transformersĐể cài đặt Diffusers với PyTorch trên các thiết bị NVIDIA Spark (chẳng hạn như laptop RTX Spark) chạy ARM64, hãy cài đặt PyTorch từ chỉ mục PyPI của NVIDIA. Các thiết bị này yêu cầu các bản dựng ARM64 của PyTorch do NVIDIA cung cấp, vốn không có sẵn trên chỉ mục PyPI mặc định hay chỉ mục wheel PyTorch tiêu chuẩn.
Chạy lệnh bên dưới để kiểm tra xem hệ thống của bạn có phát hiện được GPU NVIDIA hay không.
nvidia-smi
Cài đặt PyTorch từ chỉ mục PyPI của NVIDIA, sau đó cài đặt Diffusers.
uv pip install torch --index-url https://pypi.nvidia.com uv pip install diffusers
conda install -c conda-forge diffusers
Cài đặt từ mã nguồn sẽ cài đặt phiên bản main thay vì phiên bản stable mới nhất. Phiên bản main hữu ích để cập nhật các thay đổi mới nhất nhưng có thể không luôn ổn định. Nếu bạn gặp vấn đề, hãy mở một Issue và chúng tôi sẽ cố gắng giải quyết sớm nhất có thể.
Hãy đảm bảo rằng Accelerate đã được cài đặt.
uv pip install accelerate
Cài đặt Diffusers từ mã nguồn bằng lệnh bên dưới.
uv pip install git+https://github.com/huggingface/diffusers
Cài đặt kèm các gói bổ sung khi bạn cần. diffusers["torch"] sẽ kéo theo PyTorch và Accelerate. Các gói bổ sung khác bao gồm các backend lượng tử hóa, huấn luyện và tài liệu. Xem setup.py để biết danh sách đầy đủ.
Thiết bị
Diffusers chạy trên bất kỳ bộ tăng tốc nào được PyTorch hỗ trợ. Các ví dụ trong tài liệu sử dụng "cuda" vì đây là cấu hình phổ biến nhất, nhưng không có gì đặc thù cho CUDA. Hãy thay chuỗi thiết bị bằng phần cứng của bạn, chẳng hạn như "xpu" cho GPU Intel, "mps" cho Apple silicon, hoặc "cpu".
device = "cuda" # or "mps", "xpu", "cpu"
pipeline.to(device)Để chọn thiết bị khi chạy thay vì hardcode, hãy sử dụng torch.accelerator.
import torch
device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"Cài đặt có thể chỉnh sửa
Cài đặt dạng có thể chỉnh sửa được khuyến nghị cho các quy trình phát triển hoặc khi bạn đang sử dụng phiên bản main của mã nguồn. Một liên kết đặc biệt được tạo giữa kho đã clone và các đường dẫn thư viện Python. Điều này giúp tránh việc phải cài đặt lại gói sau mỗi lần thay đổi.
Clone kho lưu trữ và cài đặt Diffusers bằng các lệnh sau.
git clone https://github.com/huggingface/diffusers.git
cd diffusers
uv pip install -e ".[torch]"Bạn phải giữ lại thư mục
diffusersnếu muốn tiếp tục sử dụng thư viện với cài đặt dạng có thể chỉnh sửa.
Cập nhật kho mã đã nhân bản của bạn lên phiên bản Diffusers mới nhất bằng lệnh bên dưới.
cd ~/diffusers/
git pullBộ nhớ đệm
Trọng số và tệp của mô hình được tải xuống từ Hub vào bộ nhớ đệm, thường là thư mục home của bạn. Thay đổi vị trí bộ nhớ đệm bằng các biến môi trường HF_HOME hoặc HF_HUB_CACHE hoặc bằng cách cấu hình tham số cache_dir trong các phương thức như from_pretrained().
export HF_HOME="/path/to/your/cache"
export HF_HUB_CACHE="/path/to/your/hub/cache"from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev",
cache_dir="/path/to/your/cache"
)Các tệp được lưu trong bộ nhớ đệm cho phép bạn sử dụng Diffusers ngoại tuyến. Đặt biến môi trường HF_HUB_OFFLINE thành 1 để ngăn Diffusers kết nối với internet.
export HF_HUB_OFFLINE=1
Để biết thêm chi tiết về việc quản lý và dọn dẹp bộ nhớ đệm, hãy xem hướng dẫn Hiểu về bộ nhớ đệm.
Ghi nhật ký đo lường
Diffusers thu thập thông tin đo lường trong các yêu cầu from_pretrained(). Dữ liệu được thu thập bao gồm phiên bản Diffusers và PyTorch, lớp model hoặc pipeline được yêu cầu, và đường dẫn đến checkpoint được huấn luyện trước nếu nó được lưu trữ trên Hub.
Dữ liệu sử dụng này giúp chúng tôi gỡ lỗi các vấn đề và ưu tiên phát triển các tính năng mới. Telemetry chỉ được gửi khi tải các model và pipeline từ Hub, và sẽ không được thu thập nếu bạn đang tải các tệp cục bộ.
Tắt và vô hiệu hóa việc thu thập dữ liệu đo lường bằng biến môi trường HF_HUB_DISABLE_TELEMETRY.
export HF_HUB_DISABLE_TELEMETRY=1set HF_HUB_DISABLE_TELEMETRY=1