|
--- |
|
license: other |
|
license_name: flux-1-dev-non-commercial-license |
|
license_link: https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/LICENSE.md |
|
base_model: |
|
- black-forest-labs/FLUX.1-dev |
|
pipeline_tag: text-to-image |
|
library_name: diffusers |
|
tags: |
|
- flux |
|
- text-to-image |
|
--- |
|
|
|
!!! Experimental supported by [gpustack/llama-box v0.0.84+](https://github.com/gpustack/llama-box) only !!! |
|
|
|
**Model creator**: [Freepik](https://huggingface.co/Freepik)<br/> |
|
**Original model**: [flux.1-lite-8B-alpha](https://huggingface.co/Freepik/flux.1-lite-8B-alpha)<br/> |
|
**GGUF quantization**: based on stable-diffusion.cpp [ac54e](https://github.com/leejet/stable-diffusion.cpp/commit/ac54e0076052a196b7df961eb1f792c9ff4d7f22) that patched by llama-box. |
|
|
|
| Quantization | OpenAI CLIP ViT-L/14 Quantization | Google T5-xxl Quantization | VAE Quantization | |
|
| --- | --- | --- | --- | |
|
| FP16 | FP16 | FP16 | FP16 | |
|
| Q8_0 | FP16 | Q8_0 | FP16 | |
|
| (pure) Q8_0 | Q8_0 | Q8_0 | FP16 | |
|
| Q4_1 | FP16 | Q8_0 | FP16 | |
|
| Q4_0 | FP16 | Q8_0 | FP16 | |
|
| (pure) Q4_0 | Q4_0 | Q4_0 | FP16 | |
|
|
|
--- |
|
|
|
![Flux.1 Lite](sample_images/flux1-lite-8B_sample.png) |
|
|
|
# Flux.1 Lite |
|
|
|
We are thrilled to announce the alpha release of Flux.1 Lite, an 8B parameter transformer model distilled from the FLUX.1-dev model. This version uses 7 GB less RAM and runs 23% faster while maintaining the same precision (bfloat16) as the original model. |
|
|
|
![Flux.1 Lite vs FLUX.1-dev](sample_images/models_comparison.png) |
|
|
|
## Text-to-Image |
|
|
|
Flux.1 Lite is ready to unleash your creativity! For the best results, we strongly **recommend using a `guidance_scale` of 3.5 and setting `n_steps` between 22 and 30**. |
|
|
|
```python |
|
import torch |
|
from diffusers import FluxPipeline |
|
|
|
base_model_id = "Freepik/flux.1-lite-8B-alpha" |
|
torch_dtype = torch.bfloat16 |
|
device = "cuda" |
|
|
|
# Load the pipe |
|
model_id = "Freepik/flux.1-lite-8B-alpha" |
|
pipe = FluxPipeline.from_pretrained( |
|
model_id, torch_dtype=torch_dtype |
|
).to(device) |
|
|
|
# Inference |
|
prompt = "A close-up image of a green alien with fluorescent skin in the middle of a dark purple forest" |
|
|
|
guidance_scale = 3.5 # Keep guidance_scale at 3.5 |
|
n_steps = 28 |
|
seed = 11 |
|
|
|
with torch.inference_mode(): |
|
image = pipe( |
|
prompt=prompt, |
|
generator=torch.Generator(device="cpu").manual_seed(seed), |
|
num_inference_steps=n_steps, |
|
guidance_scale=guidance_scale, |
|
height=1024, |
|
width=1024, |
|
).images[0] |
|
image.save("output.png") |
|
``` |
|
|
|
## Motivation |
|
|
|
Inspired by [Ostris](https://ostris.com/2024/09/07/skipping-flux-1-dev-blocks/) findings, we analyzed the mean squared error (MSE) between the input and output of each block to quantify their contribution to the final result, revealing significant variability. |
|
|
|
![Flux.1 Lite generated image](sample_images/skip_blocks/generated_img.png) |
|
![MSE MMDIT](sample_images/skip_blocks/mse_mmdit_img.png) |
|
![MSE DIT](sample_images/skip_blocks/mse_dit_img.png) |
|
|
|
As Ostris pointed out, not all blocks contribute equally. While skipping just one of the early MMDiT or late DiT blocks can significantly impact model performance, skipping any single block in between does not have a significant impact over the final image quality. |
|
|
|
![Skip one MMDIT block](sample_images/skip_blocks/skip_one_MMDIT_block.png) |
|
![Skip one DIT block](sample_images/skip_blocks/skip_one_DIT_block.png) |
|
|
|
## Future work |
|
|
|
Stay tuned! Our goal is to distill FLUX.1-dev further until it can run smoothly on 24 GB consumer-grade GPU cards, maintaining its original precision (bfloat16), and running even faster, making high-quality AI models accessible to everyone. |
|
|
|
## ComfyUI |
|
|
|
We've also crafted a ComfyUI workflow to make using Flux.1 Lite even more seamless! Find it in `comfy/flux.1-lite_workflow.json`. |
|
![ComfyUI workflow](comfy/flux.1-lite_workflow.png) |
|
|
|
The safetensors checkpoint is available here: [flux.1-lite-8B-alpha.safetensors](flux.1-lite-8B-alpha.safetensors) |
|
|
|
## HF spaces 🤗 |
|
You can also test the model on [Flux.1 Lite HF space](https://huggingface.co/spaces/TheAwakenOne/flux1-lite-8B-alpha) thanks to [TheAwakenOne](https://huggingface.co/TheAwakenOne) |
|
|
|
## Try it out at Freepik! |
|
|
|
Our [AI generator](https://www.freepik.com/pikaso/ai-image-generator) is now powered by Flux.1 Lite! |
|
|
|
## 🔥 News 🔥 |
|
|
|
* Oct 28, 2024. Flux.1 Lite 8B Alpha HF space available on [HF Space](https://huggingface.co/spaces/TheAwakenOne/flux1-lite-8B-alpha) thanks to [TheAwakenOne](https://huggingface.co/TheAwakenOne) |
|
* Oct 23, 2024. Alpha 8B checkpoint is publicly available on [HuggingFace Repo](https://huggingface.co/Freepik/flux.1-lite-8B-alpha). |
|
|
|
## Citation |
|
|
|
If you find our work helpful, please cite it! |
|
|
|
```bibtex |
|
@article{flux1-lite, |
|
title={Flux.1 Lite: Distilling Flux1.dev for Efficient Text-to-Image Generation}, |
|
author={Daniel Verdú, Javier Martín}, |
|
email={[email protected], [email protected]}, |
|
year={2024}, |
|
} |
|
``` |
|
|
|
## Attribution notice |
|
|
|
The FLUX.1 [dev] Model is licensed by Black Forest Labs. Inc. under the FLUX.1 [dev] Non-Commercial License. Copyright Black Forest Labs. Inc. |
|
|
|
Our model weights are released under the FLUX.1 [dev] Non-Commercial License. |
|
|
|
|
|
|