# インストール

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/v0.43.0/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)ガイドをご覧ください。

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

Diffusers gathers telemetry information during [from_pretrained()](/docs/diffusers/v0.43.0/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
```

