Instructions to use moonbox-dev/FLUX.1-Fill-dev-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use moonbox-dev/FLUX.1-Fill-dev-MLX with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download moonbox-dev/FLUX.1-Fill-dev-MLX --local-dir FLUX.1-Fill-dev-MLX
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
File size: 21,397 Bytes
9f2b1fb 070b6ec 1714f9e 9f2b1fb 070b6ec 1714f9e 9f2b1fb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | ---
base_model: black-forest-labs/FLUX.1-Fill-dev
base_model_relation: quantized
license: other
license_name: flux-1-dev-non-commercial-license
license_link: LICENSE.md
pipeline_tag: image-to-image
library_name: mlx
tags:
- mlx
- moonbox
- flux
- inpainting
- outpainting
- flux-fill
---
# FLUX.1 Fill Dev MLX
MLX builds of [FLUX.1 Fill Dev](https://huggingface.co/black-forest-labs/FLUX.1-Fill-dev), made by Moonbox for Apple Silicon Macs. Each precision is a folder; keep a folder's
files together. Only the parts listed below are converted: the rest of the pipeline comes from the original
repository unless the section below says otherwise.
## Files
The last column is how far each build is from the original PyTorch model on the same inputs (see the section below
for what was measured).
| Precision | File | Size | sha256 | Checked against the original |
|---|---|---|---|---|
| 8bit | [`8bit/mflux_model.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/mflux_model.json) | 0.4 kB | `f4ff5fbab1ee` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder/0.safetensors) | 130.9 MB | `29daf483b500` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder/model.safetensors.index.json) | 25.0 kB | `2496ca8b591e` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder_2/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder_2/0.safetensors) | 2.15 GB | `c93d0244058a` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder_2/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder_2/1.safetensors) | 2.15 GB | `49b24e32092e` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder_2/2.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder_2/2.safetensors) | 767.7 MB | `4a896dfbcca7` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/text_encoder_2/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/text_encoder_2/model.safetensors.index.json) | 44.1 kB | `310dde2f9694` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/tokenizer/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/tokenizer/tokenizer.json) | 3.6 MB | `6d9109cc8389` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/tokenizer/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/tokenizer/tokenizer_config.json) | 0.4 kB | `d0eda7377bb9` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/tokenizer_2/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/tokenizer_2/tokenizer.json) | 2.4 MB | `2432e8aa8341` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/tokenizer_2/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/tokenizer_2/tokenizer_config.json) | 2.5 kB | `e31ed19bc545` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/0.safetensors) | 2.14 GB | `4c1b79237ceb` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/1.safetensors) | 2.13 GB | `56a82a0053d3` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/2.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/2.safetensors) | 2.13 GB | `b2b5f93d2ea6` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/3.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/3.safetensors) | 2.13 GB | `09efe1817336` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/4.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/4.safetensors) | 2.11 GB | `632c4607b56b` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/5.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/5.safetensors) | 2.03 GB | `68a5b71bbc50` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/transformer/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/transformer/model.safetensors.index.json) | 0.1 MB | `a47d31736f65` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/vae/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/vae/0.safetensors) | 165.7 MB | `6ddcda403d28` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 8bit | [`8bit/vae/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/8bit/vae/model.safetensors.index.json) | 17.4 kB | `0a98a344cba2` | reference build: not compared with bf16 (doesn't run in 24 GB); inpaints correctly on the 3 photos |
| 6bit | [`6bit/mflux_model.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/mflux_model.json) | 0.4 kB | `9171d42971d1` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/text_encoder/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/text_encoder/0.safetensors) | 100.2 MB | `021972a101b1` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/text_encoder/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/text_encoder/model.safetensors.index.json) | 25.0 kB | `bb76a6a32514` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/text_encoder_2/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/text_encoder_2/0.safetensors) | 2.15 GB | `d48839ac576b` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/text_encoder_2/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/text_encoder_2/1.safetensors) | 1.72 GB | `4a9a542456a7` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/text_encoder_2/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/text_encoder_2/model.safetensors.index.json) | 44.1 kB | `ac2d435419f7` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/tokenizer/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/tokenizer/tokenizer.json) | 3.6 MB | `6d9109cc8389` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/tokenizer/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/tokenizer/tokenizer_config.json) | 0.4 kB | `d0eda7377bb9` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/tokenizer_2/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/tokenizer_2/tokenizer.json) | 2.4 MB | `2432e8aa8341` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/tokenizer_2/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/tokenizer_2/tokenizer_config.json) | 2.5 kB | `e31ed19bc545` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/0.safetensors) | 2.12 GB | `ff829e699345` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/1.safetensors) | 2.15 GB | `10eb8c736234` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/2.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/2.safetensors) | 2.13 GB | `e551955f75c7` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/3.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/3.safetensors) | 2.14 GB | `f2c528bcbb50` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/4.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/4.safetensors) | 1.14 GB | `c7ee01b73467` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/transformer/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/transformer/model.safetensors.index.json) | 0.1 MB | `302702931b26` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/vae/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/vae/0.safetensors) | 165.2 MB | `5fb147b7776d` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 6bit | [`6bit/vae/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/6bit/vae/model.safetensors.index.json) | 17.4 kB | `20fb1f73bf5e` | below threshold (experimental): vs 8bit PSNR 37.8 dB mean, LPIPS 0.056 mean / 0.163 worst |
| 4bit | [`4bit/mflux_model.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/mflux_model.json) | 0.4 kB | `9a500615e1c2` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/text_encoder/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/text_encoder/0.safetensors) | 69.4 MB | `80401ef4d0cb` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/text_encoder/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/text_encoder/model.safetensors.index.json) | 25.0 kB | `87918a51d110` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/text_encoder_2/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/text_encoder_2/0.safetensors) | 2.15 GB | `daf9b170b819` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/text_encoder_2/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/text_encoder_2/1.safetensors) | 533.3 MB | `3db2a6e9309a` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/text_encoder_2/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/text_encoder_2/model.safetensors.index.json) | 44.1 kB | `03f5a8751ab8` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/tokenizer/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/tokenizer/tokenizer.json) | 3.6 MB | `6d9109cc8389` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/tokenizer/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/tokenizer/tokenizer_config.json) | 0.4 kB | `d0eda7377bb9` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/tokenizer_2/tokenizer.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/tokenizer_2/tokenizer.json) | 2.4 MB | `2432e8aa8341` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/tokenizer_2/tokenizer_config.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/tokenizer_2/tokenizer_config.json) | 2.5 kB | `e31ed19bc545` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/transformer/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/transformer/0.safetensors) | 2.13 GB | `dbf7be651fcf` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/transformer/1.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/transformer/1.safetensors) | 2.14 GB | `ae7fa499db8e` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/transformer/2.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/transformer/2.safetensors) | 2.13 GB | `0bdccd27d8fb` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/transformer/3.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/transformer/3.safetensors) | 297.6 MB | `6437f5d4cba1` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/transformer/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/transformer/model.safetensors.index.json) | 0.1 MB | `ef05979b2043` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/vae/0.safetensors`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/vae/0.safetensors) | 164.7 MB | `53aa93d75594` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
| 4bit | [`4bit/vae/model.safetensors.index.json`](https://huggingface.co/moonbox-ai/FLUX.1-Fill-dev-MLX/blob/main/4bit/vae/model.safetensors.index.json) | 17.4 kB | `56348f08a8c9` | vs 8bit PSNR 32.0 dB mean, LPIPS 0.051 mean / 0.107 worst |
## How to run
Each folder is the whole FLUX.1 Fill [dev] pipeline (T5 and CLIP text encoders, transformer, VAE, tokenizers) saved
by [mflux](https://github.com/filipstrand/mflux) 0.24.0 from the original weights at the revision below. Run it
with mflux; the mask is white where the picture should be repainted:
```bash
pip install mflux==0.24.0
hf download moonbox-ai/FLUX.1-Fill-dev-MLX --include "8bit/*" --local-dir fill
mflux-generate-fill --model fill/8bit --base-model dev-fill --image-path photo.png --masked-image-path mask.png \
--prompt "an empty street" --steps 20 --seed 7 --output out.png
```
Add `--low-ram` on a 24 GB Mac. `8bit/`, `6bit/` and `4bit/` quantize the transformer's and text encoders' linear
layers (MLX affine, group size 64); the VAE stays bf16.
**No `bf16/` folder.** The lab's Mac (24 GB) can't run the 12B transformer unquantized (it thrashes swap), so a bf16
build couldn't be checked, and building it needs ~85 GB of free disk. The original repo's weights are already bf16
and mflux runs them directly (`--model black-forest-labs/FLUX.1-Fill-dev`).
**How they were checked.** Three photos with their subject masked out, 512x512, guidance 30, 20 steps, the same
seed: `6bit/` and `4bit/` against `8bit/` (nothing bigger fits in 24 GB). Pass: LPIPS <= 0.15 on every picture.
`8bit/` itself wasn't compared with bf16; it fills the masked areas correctly.
| Precision | Size | PSNR vs 8bit (mean) | LPIPS (mean / worst) | Status |
|---|---|---|---|---|
| `8bit/` | 17.0 GB | reference | - | not compared with bf16 |
| `6bit/` | 13.8 GB | 37.8 dB | 0.056 / 0.163 | **just below threshold, experimental** |
| `4bit/` | 9.6 GB | 32.0 dB | 0.051 / 0.107 | passes |
About 5 minutes per 512x512 picture (20 steps) for `8bit/` on an Apple M5 with 24 GB in low-RAM mode.
## How these were made
From [FLUX.1 Fill Dev](https://huggingface.co/black-forest-labs/FLUX.1-Fill-dev) at revision `358293da03`: the original weights loaded in MLX and stored as bf16 or fp16, or
quantized with MLX's affine quantization (`8bit`, `6bit`, `4bit`, group size 64; layers MLX can't quantize, such as
convolutions and norms, stay bf16). Every build was checked against the original before upload; the `sha256` column
above is what the files must hash to.
## License
FLUX.1-dev Non-Commercial (gated). These files are a derivative of the original model and carry its license: it is copied in this
repository, and it governs your use of these files. The original model card follows unchanged.
---
# Original model card

`FLUX.1 Fill [dev]` is a 12 billion parameter rectified flow transformer capable of filling areas in existing images based on a text description.
For more information, please read our [blog post](https://blackforestlabs.ai/flux-1-tools/).
# Key Features
1. Cutting-edge output quality, second only to our state-of-the-art model `FLUX.1 Fill [pro]`.
2. Blends impressive prompt following with completing the structure of your source image.
3. Trained using guidance distillation, making `FLUX.1 Fill [dev]` more efficient.
4. Open weights to drive new scientific research, and empower artists to develop innovative workflows.
5. Generated outputs can be used for personal, scientific, and commercial purposes as described in the [`FLUX.1 [dev]` Non-Commercial License](https://huggingface.co/black-forest-labs/FLUX.1-dev/blob/main/LICENSE.md).
# Usage
We provide a reference implementation of `FLUX.1 Fill [dev]`, as well as sampling code, in a dedicated [github repository](https://github.com/black-forest-labs/flux).
Developers and creatives looking to build on top of `FLUX.1 Fill [dev]` are encouraged to use this as a starting point.
## API Endpoints
The FLUX.1 models are also available in our API [bfl.ml](https://docs.bfl.ml/)

## Diffusers
To use `FLUX.1 Fill [dev]` with the 🧨 diffusers python library, first install or upgrade diffusers
```shell
pip install -U diffusers
```
Then you can use `FluxFillPipeline` to run the model
```python
import torch
from diffusers import FluxFillPipeline
from diffusers.utils import load_image
image = load_image("https://huggingface.co/datasets/diffusers/diffusers-images-docs/resolve/main/cup.png")
mask = load_image("https://huggingface.co/datasets/diffusers/diffusers-images-docs/resolve/main/cup_mask.png")
pipe = FluxFillPipeline.from_pretrained("black-forest-labs/FLUX.1-Fill-dev", torch_dtype=torch.bfloat16).to("cuda")
image = pipe(
prompt="a white paper cup",
image=image,
mask_image=mask,
height=1632,
width=1232,
guidance_scale=30,
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]
image.save(f"flux-fill-dev.png")
```
To learn more check out the [diffusers](https://huggingface.co/docs/diffusers/main/en/api/pipelines/flux) documentation
---
# Limitations
- This model is not intended or able to provide factual information.
- As a statistical model this checkpoint might amplify existing societal biases.
- The model may fail to generate output that matches the prompts.
- Prompt following is heavily influenced by the prompting-style.
- There may be slight-color shifts in areas that are not filled in
- Filling in complex textures may produce lines at the edges of the filled-area.
# Out-of-Scope Use
The model and its derivatives may not be used
- In any way that violates any applicable national, federal, state, local or international law or regulation.
- For the purpose of exploiting, harming or attempting to exploit or harm minors in any way; including but not limited to the solicitation, creation, acquisition, or dissemination of child exploitative content.
- To generate or disseminate verifiably false information and/or content with the purpose of harming others.
- To generate or disseminate personal identifiable information that can be used to harm an individual.
- To harass, abuse, threat
|