flux.1-dev-int8-pkg / README.md
sayakpaul's picture
sayakpaul HF staff
Create README.md
c8b6ff7 verified
---
library_name: diffusers
license: other
license_name: flux-1-dev-non-commercial-license
license_link: LICENSE.md
---
## Running Flux.1-dev under 12GBs
This repository contains the mixed int8 params for the T5 and transformer of Flux.1-Dev.
This is how the checkpoints were obtained:
```python
import torch
from diffusers import BitsAndBytesConfig, FluxTransformer2DModel
from transformers import T5EncoderModel, BitsAndBytesConfig
from huggingface_hub import create_repo, upload_folder
import tempfile
model_id = "black-forest-labs/FLUX.1-dev"
config = BitsAndBytesConfig(load_in_8bit=True)
transformer = FluxTransformer2DModel.from_pretrained(
model_id, subfolder="transformer", quantization_config=config, torch_dtype=torch.float16
)
config = BitsAndBytesConfig(load_in_8bit=True)
t5 = T5EncoderModel.from_pretrained(
model_id, subfolder="text_encoder_2", quantization_config=config, torch_dtype=torch.float16
)
repo_id = create_repo("sayakpaul/flux.1-dev-int8-pkg", exist_ok=True).repo_id
with tempfile.TemporaryDirectory() as tmpdirname:
transformer.save_pretrained(tmpdirname)
upload_folder(repo_id=repo_id, folder_path=tmpdirname, path_in_repo="transformer")
with tempfile.TemporaryDirectory() as tmpdirname:
t5.save_pretrained(tmpdirname)
upload_folder(repo_id=repo_id, folder_path=tmpdirname, path_in_repo="text_encoder_2")
```
Respective `diffusers` PR: https://github.com/huggingface/diffusers/pull/9213/.
> [!NOTE]
> The checkpoints of this repository were optimized to run on a T4 notebook. More specifically, the compute datatype of the quantized checkpoints was kept to FP16. In practice, if you have a GPU card that supports BF16, you should change the compute datatype to BF16 (`bnb_4bit_compute_dtype`).