|
<!--Copyright 2024 The HuggingFace Team. All rights reserved. |
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with |
|
the License. You may obtain a copy of the License at |
|
|
|
http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on |
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
|
specific language governing permissions and limitations under the License. |
|
--> |
|
|
|
# Installation |
|
|
|
π€ Diffusers is tested on Python 3.8+, PyTorch 1.7.0+, and Flax. Follow the installation instructions below for the deep learning library you are using: |
|
|
|
- [PyTorch](https://pytorch.org/get-started/locally/) installation instructions |
|
- [Flax](https://flax.readthedocs.io/en/latest/) installation instructions |
|
|
|
## Install with pip |
|
|
|
You should install π€ Diffusers in a [virtual environment](https://docs.python.org/3/library/venv.html). |
|
If you're unfamiliar with Python virtual environments, take a look at this [guide](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/). |
|
A virtual environment makes it easier to manage different projects and avoid compatibility issues between dependencies. |
|
|
|
Start by creating a virtual environment in your project directory: |
|
|
|
```bash |
|
python -m venv .env |
|
``` |
|
|
|
Activate the virtual environment: |
|
|
|
```bash |
|
source .env/bin/activate |
|
``` |
|
|
|
You should also install π€ Transformers because π€ Diffusers relies on its models: |
|
|
|
|
|
<frameworkcontent> |
|
<pt> |
|
Note - PyTorch only supports Python 3.8 - 3.11 on Windows. |
|
```bash |
|
pip install diffusers["torch"] transformers |
|
``` |
|
</pt> |
|
<jax> |
|
```bash |
|
pip install diffusers["flax"] transformers |
|
``` |
|
</jax> |
|
</frameworkcontent> |
|
|
|
## Install with conda |
|
|
|
After activating your virtual environment, with `conda` (maintained by the community): |
|
|
|
```bash |
|
conda install -c conda-forge diffusers |
|
``` |
|
|
|
## Install from source |
|
|
|
Before installing π€ Diffusers from source, make sure you have PyTorch and π€ Accelerate installed. |
|
|
|
To install π€ Accelerate: |
|
|
|
```bash |
|
pip install accelerate |
|
``` |
|
|
|
Then install π€ Diffusers from source: |
|
|
|
```bash |
|
pip install git+https://github.com/huggingface/diffusers |
|
``` |
|
|
|
This command installs the bleeding edge `main` version rather than the latest `stable` version. |
|
The `main` version is useful for staying up-to-date with the latest developments. |
|
For instance, if a bug has been fixed since the last official release but a new release hasn't been rolled out yet. |
|
However, this means the `main` version may not always be stable. |
|
We strive to keep the `main` version operational, and most issues are usually resolved within a few hours or a day. |
|
If you run into a problem, please open an [Issue](https://github.com/huggingface/diffusers/issues/new/choose) so we can fix it even sooner! |
|
|
|
## Editable install |
|
|
|
You will need an editable install if you'd like to: |
|
|
|
* Use the `main` version of the source code. |
|
* Contribute to π€ Diffusers and need to test changes in the code. |
|
|
|
Clone the repository and install π€ Diffusers with the following commands: |
|
|
|
```bash |
|
git clone https://github.com/huggingface/diffusers.git |
|
cd diffusers |
|
``` |
|
|
|
<frameworkcontent> |
|
<pt> |
|
```bash |
|
pip install -e ".[torch]" |
|
``` |
|
</pt> |
|
<jax> |
|
```bash |
|
pip install -e ".[flax]" |
|
``` |
|
</jax> |
|
</frameworkcontent> |
|
|
|
These commands will link the folder you cloned the repository to and your Python library paths. |
|
Python will now look inside the folder you cloned to in addition to the normal library paths. |
|
For example, if your Python packages are typically installed in `~/anaconda3/envs/main/lib/python3.10/site-packages/`, Python will also search the `~/diffusers/` folder you cloned to. |
|
|
|
<Tip warning={true}> |
|
|
|
You must keep the `diffusers` folder if you want to keep using the library. |
|
|
|
</Tip> |
|
|
|
Now you can easily update your clone to the latest version of π€ Diffusers with the following command: |
|
|
|
```bash |
|
cd ~/diffusers/ |
|
git pull |
|
``` |
|
|
|
Your Python environment will find the `main` version of π€ Diffusers on the next run. |
|
|
|
## Cache |
|
|
|
Model weights and files are downloaded from the Hub to a cache which is usually your home directory. You can change the cache location by specifying the `HF_HOME` or `HUGGINFACE_HUB_CACHE` environment variables or configuring the `cache_dir` parameter in methods like [`~DiffusionPipeline.from_pretrained`]. |
|
|
|
Cached files allow you to run π€ Diffusers offline. To prevent π€ Diffusers from connecting to the internet, set the `HF_HUB_OFFLINE` environment variable to `True` and π€ Diffusers will only load previously downloaded files in the cache. |
|
|
|
```shell |
|
export HF_HUB_OFFLINE=True |
|
``` |
|
|
|
For more details about managing and cleaning the cache, take a look at the [caching](https://huggingface.co/docs/huggingface_hub/guides/manage-cache) guide. |
|
|
|
## Telemetry logging |
|
|
|
Our library gathers telemetry information during [`~DiffusionPipeline.from_pretrained`] requests. |
|
The data gathered includes the version of π€ Diffusers and PyTorch/Flax, the requested model or pipeline class, |
|
and the path to a pretrained checkpoint if it is hosted on the Hugging Face Hub. |
|
This usage data helps us debug issues and prioritize new features. |
|
Telemetry is only sent when loading models and pipelines from the Hub, |
|
and it is not collected if you're loading local files. |
|
|
|
We understand that not everyone wants to share additional information,and we respect your privacy. |
|
You can disable telemetry collection by setting the `DISABLE_TELEMETRY` environment variable from your terminal: |
|
|
|
On Linux/MacOS: |
|
```bash |
|
export DISABLE_TELEMETRY=YES |
|
``` |
|
|
|
On Windows: |
|
```bash |
|
set DISABLE_TELEMETRY=YES |
|
``` |
|
|