Instructions to use diffusers/FLUX.1-dev-bnb-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use diffusers/FLUX.1-dev-bnb-4bit with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("diffusers/FLUX.1-dev-bnb-4bit", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps
- Draw Things
- DiffusionBee
| base_model: black-forest-labs/FLUX.1-dev | |
| library_name: diffusers | |
| base_model_relation: quantized | |
| tags: | |
| - quantization | |
| # Visual comparison of Flux-dev model outputs using BF16 and BnB 8-bit quantization | |
| <td style="text-align: center;"> | |
| BF16<br> | |
| <medium-zoom background="rgba(0,0,0,.7)"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/quantization-backends-diffusers/combined_flux-dev_bf16_combined.png" alt="Flux-dev output with BF16: Baroque, Futurist, Noir styles"></medium-zoom> | |
| </td> | |
| <td style="text-align: center;"> | |
| BnB 4-bit<br> | |
| <medium-zoom background="rgba(0,0,0,.7)"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/quantization-backends-diffusers/combined_flux-dev_bnb_4bit_combined.png" alt="Flux-dev output with BnB 4-bit: Baroque, Futurist, Noir styles"></medium-zoom> | |
| </td> | |
| # Usage with Diffusers | |
| To use this quantized FLUX.1 [dev] checkpoint, you need to install the 🧨 diffusers and bitsandbytes library: | |
| ``` | |
| pip install -U diffusers | |
| pip install -U bitsandbytes | |
| ``` | |
| After installing the required library, you can run the following script: | |
| ```python | |
| from diffusers import FluxPipeline | |
| pipe = FluxPipeline.from_pretrained( | |
| "diffusers/FLUX.1-dev-bnb-4bit", | |
| torch_dtype=torch.bfloat16 | |
| ) | |
| pipe.to("cuda") | |
| prompt = "Baroque style, a lavish palace interior with ornate gilded ceilings, intricate tapestries, and dramatic lighting over a grand staircase." | |
| pipe_kwargs = { | |
| "prompt": prompt, | |
| "height": 1024, | |
| "width": 1024, | |
| "guidance_scale": 3.5, | |
| "num_inference_steps": 50, | |
| "max_sequence_length": 512, | |
| } | |
| image = pipe( | |
| **pipe_kwargs, generator=torch.manual_seed(0), | |
| ).images[0] | |
| image.save("flux.png") | |
| ``` | |
| # How to generate this quantized checkpoint ? | |
| This checkpoint was created with the following script using "black-forest-labs/FLUX.1-dev" checkpoint: | |
| ```python | |
| import torch | |
| from diffusers import FluxPipeline | |
| from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig | |
| from diffusers.quantizers import PipelineQuantizationConfig | |
| from transformers import BitsAndBytesConfig as TransformersBitsAndBytesConfig | |
| pipeline_quant_config = PipelineQuantizationConfig( | |
| quant_mapping={ | |
| "transformer": DiffusersBitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16), | |
| "text_encoder_2": TransformersBitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16), | |
| } | |
| ) | |
| pipe = FluxPipeline.from_pretrained( | |
| "black-forest-labs/FLUX.1-dev", | |
| quantization_config=pipeline_quant_config, | |
| torch_dtype=torch.bfloat16 | |
| ) | |
| pipe.save_pretrained("FLUX.1-dev-bnb-4bit") | |
| ``` |