# インストール

DiffusersにはPython 3.10以上が必要であり、PyTorch 2.6以上でテストされています。[PyTorch](https://pytorch.org/get-started/locally/)は、お使いのシステムとセットアップに応じてインストールしてください。

個別プロジェクトの管理を容易にし、依存関係間の互換性問題を回避するために、[仮想環境](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/)を作成します。[uv](https://docs.astral.sh/uv/)（Rust製のPythonパッケージおよびプロジェクトマネージャー）を使用して、仮想環境を作成し、Diffusersをインストールします。

```bash
uv venv my-env
source my-env/bin/activate
```

Diffusersは、以下のいずれかの方法でインストールできます。

```bash
uv pip install diffusers["torch"] transformers
```

NVIDIA Spark デバイス（RTX Spark ラップトップなど）上で ARM64 を実行している場合、PyTorch とともに Diffusers をインストールするには、NVIDIA の PyPI インデックスから PyTorch をインストールしてください。これらのデバイスには、デフォルトの PyPI インデックスや標準的な PyTorch ウィールインデックスでは利用できない、NVIDIA による PyTorch の ARM64 ビルドが必要です。

以下のコマンドを実行して、システムがNVIDIA GPUを検出できるか確認してください。

```bash
nvidia-smi
```

NVIDIA PyPI インデックスから PyTorch をインストールし、その後 Diffusers をインストールします。

```bash
uv pip install torch --index-url https://pypi.nvidia.com
uv pip install diffusers
```

```bash
conda install -c conda-forge diffusers
```

ソースからのインストールでは、最新の`stable`バージョンではなく`main`バージョンがインストールされます。`main`バージョンは最新の変更を常に追従するには有用ですが、常に安定しているとは限りません。問題が発生した場合は、[Issue](https://github.com/huggingface/diffusers/issues/new/choose)を開いてください。できるだけ早く解決できるよう努めます。

[Accelerate](https://huggingface.co/docs/accelerate/index)がインストールされていることを確認してください。

```bash
uv pip install accelerate
```

以下のコマンドで、ソースからDiffusersをインストールします。

```bash
uv pip install git+https://github.com/huggingface/diffusers
```

必要に応じて、extras を指定してインストールしてください。`diffusers["torch"]` を指定すると、PyTorch と Accelerate がインストールされます。その他の extras には、量子化バックエンド、トレーニング、ドキュメントが含まれます。完全なリストは [`setup.py`](https://github.com/huggingface/diffusers/blob/main/setup.py) を参照してください。

## デバイス

Diffusers は、PyTorch がサポートするすべてのアクセラレーターで動作します。ドキュメント内の例では、最も一般的なセットアップであるため `"cuda"` が使用されていますが、CUDA 固有の要素はありません。Intel GPU には `"xpu"`、Apple silicon には `"mps"`、CPU には `"cpu"` のように、お使いのハードウェアに対応するデバイス文字列に置き換えてください。

```py
device = "cuda"  # or "mps", "xpu", "cpu"
pipeline.to(device)
```

ハードコードするのではなく、実行時にデバイスを選択するには、[torch.accelerator](https://docs.pytorch.org/docs/stable/accelerator.html)を使用します。

```py
import torch

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"
```

## 編集可能なインストール

開発ワークフローや、ソースコードの`main`バージョンを使用している場合は、editable install（編集可能なインストール）が推奨されます。クローンしたリポジトリとPythonライブラリのパスの間に特別なリンクが作成されます。これにより、変更のたびにパッケージを再インストールする必要がなくなります。

以下のコマンドでリポジトリをクローンし、Diffusersをインストールします。

```bash
git clone https://github.com/huggingface/diffusers.git
cd diffusers
uv pip install -e ".[torch]"
```

> [!WARNING]
> 編集可能インストールでライブラリを継続して使用する場合、`diffusers`フォルダを保持する必要があります。

以下のコマンドを実行して、クローンしたリポジトリを Diffusers の最新バージョンに更新してください。

```bash
cd ~/diffusers/
git pull
```

## キャッシュ

モデルの重みとファイルは、通常はホームディレクトリにあるキャッシュに、Hub からダウンロードされます。[HF_HOME](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables#hfhome) または [HF_HUB_CACHE](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables#hfhubcache) 環境変数を変更するか、[from_pretrained()](/docs/diffusers/main/ja/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) のようなメソッドで `cache_dir` パラメータを設定することで、キャッシュの保存場所を変更できます。

```bash
export HF_HOME="/path/to/your/cache"
export HF_HUB_CACHE="/path/to/your/hub/cache"
```

```py
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](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables#hfhuboffline) を `1` に設定してください。

```shell
export HF_HUB_OFFLINE=1
```

キャッシュの管理とクリーンアップの詳細については、[キャッシュの仕組み](https://huggingface.co/docs/huggingface_hub/guides/manage-cache)ガイドをご覧ください。

### リポジトリ間でファイルを共有する

キャッシュは、複数の Hub リポジトリに同じファイルが含まれている場合でも、そのファイルのコピーを1つだけ保持します。多くのパイプラインは、T5 などの同じテキストエンコーダーを使用します。2 つ目のパイプラインのリポジトリに、すでにダウンロード済みのものと同じテキストエンコーダーファイルが含まれている場合、[from_pretrained()](/docs/diffusers/main/ja/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) は再ダウンロードせずに、ディスク上のコピーを使用します。Diffusers には、ファイル共有をデフォルトで有効にする `huggingface_hub>=1.32.0` が必要です。

キャッシュはリポジトリ名やモデル名ではなく、[Xet](https://huggingface.co/docs/hub/xet/index)ハッシュによってファイルを照合します。シャード化されたチェックポイントはシャード単位で照合されるため、他のシャードが異なっていても、一致したシャードは共有されます。

ファイルが共有されるのは、以下のすべての条件が真の場合のみです:

- 両方のリポジトリは、ファイルをXetで保存しています。
- 両方のダウンロードは、`HF_HUB_CACHE`または`cache_dir`で設定される同じキャッシュディレクトリを使用します。
- ファイルシステムはシンボリックリンクをサポートしています。
- ファイルはバイト単位で完全に同一です。異なるdtypeに変換したり、異なる形式で保存したり、リシャーディングを行うと、ハッシュが変更されます。

> [!NOTE]
> 旧バージョンの`huggingface_hub`でダウンロードしたファイルは、新しいダウンロードと共有されません。共有ストアに追加されるのは、バージョン1.32.0以降でダウンロードしたファイルのみです。

ファイル共有はダウンロード時間とディスク容量を節約できますが、メモリは節約できません。読み込まれたモデルを複数のパイプラインで使用する方法については、[複数のパイプラインでモデルを再利用する](./using-diffusers/loading#reusing-models-in-multiple-pipelines)を参照してください。

ファイル共有を無効にするには、`HF_HUB_DISABLE_SHARED_BLOBS=1`を設定してください。読み込みは引き続き機能し、各リポジトリが独自のコピーを保持します。

```shell
export HF_HUB_DISABLE_SHARED_BLOBS=1
```

## テレメトリのログ記録

Diffusers gathers telemetry information during [from_pretrained()](/docs/diffusers/main/ja/api/pipelines/overview#diffusers.DiffusionPipeline.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](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables#hfhubdisabletelemetry) 環境変数を使用して、テレメトリ収集をオプトアウトおよび無効にできます。

```bash
export HF_HUB_DISABLE_TELEMETRY=1
```

```bash
set HF_HUB_DISABLE_TELEMETRY=1
```

