Diffusers documentation
インストール
インストール
DiffusersにはPython 3.10以上が必要であり、PyTorch 2.6以上でテストされています。PyTorchは、お使いのシステムとセットアップに応じてインストールしてください。
個別プロジェクトの管理を容易にし、依存関係間の互換性問題を回避するために、仮想環境を作成します。uv(Rust製のPythonパッケージおよびプロジェクトマネージャー)を使用して、仮想環境を作成し、Diffusersをインストールします。
uv venv my-env
source my-env/bin/activateDiffusersは、以下のいずれかの方法でインストールできます。
uv pip install diffusers["torch"] transformersNVIDIA Spark デバイス(RTX Spark ラップトップなど)上で ARM64 を実行している場合、PyTorch とともに Diffusers をインストールするには、NVIDIA PyPI インデックスから PyTorch をインストールしてください。これらのデバイスには、デフォルトの PyPI インデックスや標準的な PyTorch ウィールインデックスでは利用できない、NVIDIA による PyTorch の ARM64 ビルドが必要です。
以下のコマンドを実行して、システムがNVIDIA GPUを検出できるか確認してください。
nvidia-smi
NVIDIA PyPI インデックスから PyTorch をインストールし、その後 Diffusers をインストールします。
uv pip install torch --index-url https://pypi.nvidia.com uv pip install diffusers
conda install -c conda-forge diffusers
ソースからのインストールでは、最新のstableバージョンではなくmainバージョンがインストールされます。mainバージョンは最新の変更を常に追従するには有用ですが、常に安定しているとは限りません。問題が発生した場合は、Issueを開いてください。できるだけ早く解決できるよう努めます。
Accelerateがインストールされていることを確認してください。
uv pip install accelerate
以下のコマンドで、ソースからDiffusersをインストールします。
uv pip install git+https://github.com/huggingface/diffusers
必要に応じて、extras を指定してインストールしてください。diffusers["torch"] を指定すると、PyTorch と Accelerate がインストールされます。その他の extras には、量子化バックエンド、トレーニング、ドキュメントが含まれます。完全なリストは setup.py を参照してください。
デバイス
Diffusers は、PyTorch がサポートするすべてのアクセラレーターで動作します。ドキュメント内の例では、最も一般的なセットアップであるため "cuda" が使用されていますが、CUDA 固有の要素はありません。Intel GPU には "xpu"、Apple silicon には "mps"、CPU には "cpu" のように、お使いのハードウェアに対応するデバイス文字列に置き換えてください。
device = "cuda" # or "mps", "xpu", "cpu"
pipeline.to(device)ハードコードするのではなく、実行時にデバイスを選択するには、torch.acceleratorを使用します。
import torch
device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"編集可能なインストール
開発ワークフローや、ソースコードのmainバージョンを使用している場合は、editable install(編集可能なインストール)が推奨されます。クローンしたリポジトリとPythonライブラリのパスの間に特別なリンクが作成され、変更のたびにパッケージを再インストールする必要がなくなります。
以下のコマンドでリポジトリをクローンし、Diffusersをインストールします。
git clone https://github.com/huggingface/diffusers.git
cd diffusers
uv pip install -e ".[torch]"編集可能インストールでライブラリを継続して使用する場合、
diffusersフォルダを保持する必要があります。
以下のコマンドを実行して、クローンしたリポジトリを Diffusers の最新バージョンに更新してください。
cd ~/diffusers/
git pullキャッシュ
モデルの重みとファイルは、通常はホームディレクトリにあるキャッシュに、Hub からダウンロードされます。HF_HOME または HF_HUB_CACHE 環境変数を変更するか、from_pretrained() のようなメソッドで cache_dir パラメータを設定することで、キャッシュの保存場所を変更できます。
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"
)キャッシュされたファイルを使用すると、Diffusers をオフラインで利用できます。Diffusers がインターネットに接続しないようにするには、環境変数 HF_HUB_OFFLINE を 1 に設定してください。
export HF_HUB_OFFLINE=1
キャッシュの管理とクリーンアップの詳細については、キャッシュの仕組みガイドをご覧ください。
リポジトリ間でファイルを共有する
キャッシュは、複数の Hub リポジトリに同じファイルが含まれている場合でも、そのファイルのコピーを1つだけ保持します。多くのパイプラインは、T5 などの同じテキストエンコーダーを使用します。2 つ目のパイプラインのリポジトリに、すでにダウンロード済みのものと同じテキストエンコーダーファイルが含まれている場合、from_pretrained() は再ダウンロードせずに、ディスク上のコピーを使用します。Diffusers には、ファイル共有をデフォルトで有効にする huggingface_hub>=1.32.0 が必要です。
キャッシュはリポジトリ名やモデル名ではなく、Xetハッシュによってファイルを照合します。シャード化されたチェックポイントはシャード単位で照合されるため、他のシャードが異なっていても、一致したシャードは共有されます。
ファイルが共有されるのは、以下のすべての条件が真の場合のみです:
- 両方のリポジトリは、ファイルをXetで保存しています。
- 両方のダウンロードは、
HF_HUB_CACHEまたはcache_dirで設定される同じキャッシュディレクトリを使用します。 - ファイルシステムはシンボリックリンクをサポートしています。
- ファイルはバイト単位で完全に同一です。異なるdtypeに変換したり、異なる形式で保存したり、リシャーディングを行うと、ハッシュが変更されます。
旧バージョンの
huggingface_hubでダウンロードしたファイルは、新しいダウンロードと共有されません。共有ストアに追加されるのは、バージョン1.32.0以降でダウンロードしたファイルのみです。
ファイル共有はダウンロード時間とディスク容量を節約できますが、メモリは節約できません。読み込まれたモデルを複数のパイプラインで使用する方法については、複数のパイプラインでモデルを再利用するを参照してください。
ファイル共有を無効にするには、HF_HUB_DISABLE_SHARED_BLOBS=1を設定してください。読み込みは引き続き機能し、各リポジトリが独自のコピーを保持します。
export HF_HUB_DISABLE_SHARED_BLOBS=1
テレメトリのログ記録
Diffusers gathers telemetry information during from_pretrained() requests. The data gathered includes the Diffusers and PyTorch version, the requested model or pipeline class, and the path to a pretrained checkpoint if it is hosted on the Hub.
この使用データは、問題のデバッグや新機能の優先順位付けに役立てられています。 テレメトリは、Hubからモデルやパイプラインを読み込む場合のみ送信され、ローカルファイルを読み込む場合は収集されません。
HF_HUB_DISABLE_TELEMETRY 環境変数を使用して、テレメトリ収集をオプトアウトおよび無効にできます。
export HF_HUB_DISABLE_TELEMETRY=1set HF_HUB_DISABLE_TELEMETRY=1