File size: 20,149 Bytes
b3c38d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
---
license: other
license_name: bria-fibo
license_link: https://creativecommons.org/licenses/by-nc/4.0/deed.en
language:
- en
library_name: diffusers
pipeline_tag: text-to-image
tags:
- image-editing
- text-to-image
- image-to-image
- inpainting
- multi-reference
- fine-tuning
- structured-prompts
- vgl
- fibo
---
> Mirror of [briaai/Fibo-2.0-dev](https://huggingface.co/briaai/Fibo-2.0-dev). All credit to Bria AI. Not an official release from them. License unchanged: [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.en), non-commercial use only. Commercial use requires a separate agreement with Bria AI.

<p align="center">
  <img src="https://bria-public.s3.us-east-1.amazonaws.com/Bria-logo.svg" width="200"/>
</p>

<p align="center">
  <a href="https://platform.bria.ai/"><img src="https://img.shields.io/badge/Bria-Platform-0EA5E9?style=for-the-badge"/></a>
  <a href="https://discord.com/invite/Nxe9YW9zHS"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=for-the-badge"/></a>
  <a href="https://arxiv.org/abs/2511.06876"><img src="https://img.shields.io/badge/Tech%20Paper-lightgrey?logo=arxiv&logoColor=red&style=for-the-badge"/></a>
</p>

# Fibo 2.0 Dev

πŸ† **#1 in image editing** and πŸ₯ˆ **#2 in text-to-image** among open-weights models on [Artificial Analysis](https://artificialanalysis.ai) (October 20, 2026).

**One model to edit and generate images, and the foundation to build your own.**

Fibo 2.0 is the next generation of Bria's FIBO family. For the first time, **image editing and image generation live in a single unified model**. It keeps the foundation that made FIBO the most controllable open image model: training on long, structured captions through the [Visual GenAI Language (VGL)](https://docs.bria.ai/vgl). On top of that foundation it adds high-quality, general-purpose editing and a leap in text rendering, texture and anatomy. Like every FIBO model, it is trained exclusively on licensed data.

**Fibo 2.0 Dev** is the full, non-distilled base model. It runs with classifier-free guidance for maximum quality and control, and it is the starting point for **professional fine-tuning**. For few-step production editing, use [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo).

πŸš€ **Coming soon: multi-turn editing.** Chain edit after edit, each one building on the last, while the rest of the image stays pixel-stable.

---

## πŸ–ΌοΈ Text-to-Image

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/fibo2_t2i_collage_opd.jpg" width="75%"/>
</p>

---

## ✏️ Image Editing

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/fibo2_edit_strip.jpg" width="100%"/>
</p>

<!-- TODO: confirm the exact edit instructions used; add them as captions if desired. -->

---

## ✨ What's New in Fibo 2.0

| | |
|---|---|
| 🎯 **High-quality general editing** | Instruction-based edits that generalize across a wide range of tasks while preserving everything you didn't ask to change: identity, layout, lighting and fine detail. Masked and multi-reference edits are supported. |
| πŸ”€ **Unified editing + generation** | A single model handles image editing, text-to-image and iterative refinement. One deployment covers both. |
| πŸ”€ **Better text, texture and anatomy** | Clear gains in legible in-image typography, realistic material and surface texture, and correct human anatomy (hands, faces, poses). |
| ⚑ **Dev and Edit Turbo variants** | **[Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo)** is distilled for few-step, low-latency image editing. **Dev** (this model) is the full-quality base, built for professional fine-tuning and research. |
| πŸ“ **Still structured, still state of the art** | Still trained on structured captions, which gives Fibo 2.0 state-of-the-art prompt adherence and controllability among open models. |
| πŸ›‘οΈ **Still 100% licensed** | Trained exclusively on licensed data, like every FIBO release. |

---

## πŸ›£οΈ Coming Soon

Fibo 2.0 is a platform, and we're already building on it:

| Release | What it does |
|---|---|
| πŸ” **Multi-Turn Local Editing LoRA** | Chain many localized edits in a row while the rest of the image stays pixel-stable, for true conversational editing. |
| βœ‚οΈ **Background Removal** | Clean, production-grade subject cutouts, built natively on Fibo 2.0. |
| πŸ“¦ **Product Shot LoRA** | Studio-quality product photography and placement for e-commerce and catalogs. |
| πŸ“· **Boring Reality Style** | Authentic, unpolished, everyday photo realism that looks captured, not generated. |
| 🧽 **Eraser by Mask** | Paint a mask and remove any object, with seamless, context-aware fill. |
| πŸ–ΌοΈ **Image Expansion** | Extend images beyond their borders (outpainting) to any aspect ratio, with a coherent continuation of the scene. |

Follow [Bria on Hugging Face](https://huggingface.co/briaai) and join our [Discord](https://discord.com/invite/Nxe9YW9zHS) to be the first to know.

---

## 🌍 What's Fibo?

Most image models excel at imagination but not at control. FIBO was built for professional workflows. It was trained on structured JSON captions of up to 1,000+ words that describe lighting, composition, color, camera and depth of field explicitly. This gives the model **native disentanglement**: you can change one attribute, such as the camera angle, the time of day or a subject's outfit, without the rest of the scene drifting.

Fibo 2.0 applies the same principle to editing. An edit is a precise, structured change to a visual blueprint, not a loose text prompt, so the results are **explicit, interpretable and repeatable**.

### πŸ“ The VGL Paradigm

Fibo 2.0 is natively built on **[Visual GenAI Language (VGL)](https://docs.bria.ai/vgl)**. VGL replaces vague natural-language descriptions with explicit JSON that both humans and machines can read. Lighting, composition, style, camera parameters and every object in the scene are separate, addressable fields. Generation becomes "render this blueprint," and editing becomes "apply this diff to the blueprint."

You never have to write JSON by hand. [`bria-vgl`](https://github.com/Bria-AI/vgl), the same open-source package behind Bria's API, turns short prompts and plain-language edit instructions into full structured prompts for you.

---

## 🎨 One Model, Every Workflow

| Mode | Input | What happens |
|---|---|---|
| **Edit** ✨ | Source image + instruction | Add, remove or replace objects, or change style, lighting, background, materials or text. Everything you didn't ask to change is preserved. |
| **Masked edit** ✨ | Source image + mask + instruction | The edit is confined to the masked region, and the rest of the image is left untouched. |
| **Multi-reference** ✨ | Up to 4 reference images + instruction | Information from every reference is combined into one result, for reference-guided composition, virtual try-on, product integration, and style or appearance transfer. |
| **Generate** | Short text prompt | The VLM expands your idea into a rich structured prompt, and Fibo 2.0 renders it. You get the image *and* the full JSON. |
| **Inspire** | Reference image + short prompt | A new structured prompt borrows the reference's subject, style or composition; Fibo 2.0 generates it from text and never sees the image. |

---

## πŸ”‘ Key Features

- **Built for fine-tuning.** The full, non-distilled base model with classifier-free guidance. Train LoRAs or full fine-tunes for your own domain, style or editing task.
- **Unified architecture.** One set of weights for image editing *and* text-to-image: one model, one pipeline, one deployment.
- **High-fidelity editing.** Strong preservation of identity, structure and untouched regions across a wide range of edit types, with native mask and multi-reference support.
- **Structured JSON control.** Define images and edits with explicit parameters (lighting, composition, camera, style) for deterministic, reproducible results.
- **Disentangled refinement.** Tweak a single attribute without breaking the scene, and iterate without prompt drift.
- **Improved realism.** Sharper text rendering, richer textures and more reliable anatomy than previous FIBO releases.
- **Enterprise-grade.** 100% licensed training data, with governance, attribution traceability and legal clarity for commercial use.
- **Built for production.** At 8B parameters, it balances high-fidelity output with efficiency. Available as open weights, API endpoints and ComfyUI nodes.

---

## πŸ“Š Evaluation

<!-- TODO: add benchmark results once available (editing benchmarks, T2I alignment/aesthetics, text rendering, Turbo vs. Dev quality/latency). -->

πŸ† **#1 in image editing** and πŸ₯ˆ **#2 in text-to-image** among open-weights models on the [Artificial Analysis](https://artificialanalysis.ai) Image Arena.

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/benchmarks/aa_image_editing_v2.1.png" width="49%"/>
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/benchmarks/aa_image_t2i_v2.1.png" width="49%"/>
</p>

<p align="center"><sub>Rankings as of October 20, 2026.</sub></p>

### 🎯 Prompt Alignment

<table>
<tr>
<td width="30%"><img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/still_life_alignment.png" width="100%"/></td>
<td>

*"On a white windowsill, a row of exactly **five red apples** and **one green pear**, the pear in the **second position from the left**. A **small brass bell** sits on top of the third apple from the right. Morning light, minimal still life."*

Structured captions make Fibo 2.0 follow counts, positions and attributes precisely.

</td>
</tr>
</table>

---

## ⚑ Quick Start

| | Text-to-image | Image editing |
|---|---|---|
| πŸš€ **Try it now** | [Generate sandbox](https://platform.bria.ai/image-generation/fibo-generate/sandbox) | [Edit sandbox](https://platform.bria.ai/image-editing/fibo-image-edit/sandbox) |
| ⚑ **Fal.ai** | [bria/fibo-2/generate](https://fal.ai/models/bria/fibo-2/generate) | [bria/fibo-2/edit](https://fal.ai/models/bria/fibo-2/edit) |
| πŸ€— **Hugging Face Space** | [Fibo-2.0-T2I](https://huggingface.co/spaces/briaai/Fibo-2.0-T2I) | [Fibo-2.0-editing](https://huggingface.co/spaces/briaai/Fibo-2.0-editing) (runs Edit Turbo) |

**Bria API:** [docs.bria.ai](https://docs.bria.ai/) Β· **Bria Create:** [create.bria.ai](https://create.bria.ai/)

**ComfyUI:** [Bria ComfyUI nodes](https://github.com/Bria-AI/ComfyUI-BRIA-API) Β· **Agents:** [Bria agent skill](https://github.com/Bria-AI/bria-skill)

**License:** Creative Commons Attribution–Non-Commercial (CC BY-NC 4.0)<br>
The model is released under a CC BY-NC 4.0 license for non-commercial use.<br>
Commercial use is subject to a commercial agreement with BRIA. Available [here](https://platform.bria.ai/licensing/pricing?model=fibo-2).

### Installation

`BriaFibo2Pipeline` is being added to diffusers ([PR #14991](https://github.com/huggingface/diffusers/pull/14991)). Until it is merged, install diffusers from the PR branch. [`bria-vgl`](https://github.com/Bria-AI/vgl) writes the structured prompts, with the same prompts and model as the Bria API and fal endpoints.

```bash
pip install -U "git+https://github.com/muhammadali-afridi/diffusers@ali/fibo2" torch torchvision transformers accelerate
```

Install `bria-vgl` with pip or uv:

```bash
pip install bria-vgl
# or
uv add bria-vgl
```

`bria-vgl` runs on Gemini; set your key ([get one here](https://aistudio.google.com/apikey)):

```bash
export GEMINI_API_KEY="your-api-key"
```

> πŸ› οΈ **Full base model.** Use `num_inference_steps=50` and `guidance_scale=5.0`. For few-step, guidance-free editing, use [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo).

### Setup

Fibo 2.0 reads structured VGL captions. `bria-vgl` turns a short prompt, or images plus a plain-language instruction, into one: `create()` for generation, `modify()` for edits.

```python
import json
import torch
from PIL import Image
from diffusers import BriaFibo2Pipeline
from huggingface_hub import hf_hub_download
from bria_vgl import create, modify
from bria_vgl.dialects.thales import EditImages, EditImageWithMask, Generate, Inspire

pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
# On Hopper GPUs (H100), FlashAttention-3 is faster:
# pipe.transformer.set_attention_backend("_flash_3_varlen_hub")

# Fibo 2.0 sees each text in the caption drawn as a small image.
fonts = [hf_hub_download("briaai/Fibo-2.0-dev", name, subfolder="fonts") for name in ("Aileron-Regular.otf", "DejaVuSans.ttf")]

# Negative prompts: text-to-image steers away from soft, featureless, artifact-laden images; edits use the empty caption the model was trained with.
NEGATIVE_T2I = '{"short_description":"","objects":[{"description":"the main subject","texture":"smooth, featureless, plastic-like, airbrushed, no fine surface detail","appearance_details":"soft blurred edges, simplified shapes, no fine detail","skin_tone_and_texture":"waxy airbrushed skin, poreless, plastic smooth"}],"background_setting":"a plain seamless studio backdrop, perfectly smooth gradient, blurred and featureless, no visible texture","lighting":{},"aesthetics":{"artifacts":["oversaturated colours","neon colour cast","overexposed highlights","lens flare","slight blur","motion blur","haze"]},"photographic_characteristics":{"depth_of_field":"shallow, heavy bokeh obscuring most of the frame","focus":"soft, slightly out of focus, lacking fine texture"},"style_medium":"","context":"","artistic_style":""}'
NEGATIVE_EDIT = '{"short_description":"","objects":[],"background_setting":"","lighting":{},"aesthetics":{},"photographic_characteristics":{},"style_medium":"","context":"","artistic_style":""}'


# bria-vgl's scene as the JSON prompt the pipeline reads
def vgl(scene) -> str:
    return json.dumps(scene.model_dump(exclude_none=True), ensure_ascii=False)
```

### Generate (text-to-image)

```python
scene = create(Generate(prompt="An origami whale swimming through paper clouds"), seed=0)
image = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_T2I, width=1424, height=800, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
image.save("generate.png")
```

`width` and `height` set the output size. Use multiples of 16 at about one megapixel, the area Fibo 2.0 was trained at: for example `1024Γ—1024` (the default), `1424Γ—800` (16:9) or `1248Γ—832` (3:2).

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/origami_whale.png" width="75%"/>
</p>

You get the image *and* its full structured caption (`scene`), which you can inspect, edit and render again.

### Edit

```python
source = Image.open("photo.jpg").convert("RGB")
scene = modify(EditImages(prompt="replace the jacket with a red leather one", images=[source]), seed=0)
print(scene.edit_instruction)  # the instruction, rewritten in the form Fibo 2.0 was trained on

edited = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=source, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
edited.save("edited.png")
```

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/red_jacket.png" width="100%"/>
</p>

### Masked edit

White marks the region to regenerate; everything else is kept. The mask goes to both `bria-vgl` and the pipeline.

```python
source = Image.open("suitcase.png").convert("RGB")
mask = Image.open("suitcase_mask.png").convert("L")  # same size as the source
scene = modify(EditImageWithMask(prompt="replace the suitcase with a vintage brown leather one", image=source, mask=mask), seed=0)
edited = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=source, mask=mask, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
```

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/masked_suitcase.png" width="100%"/>
</p>

### Multiple references

Up to 4 images, referred to in order as `<image_1>`, `<image_2>`, and so on.

```python
references = [Image.open("person.png").convert("RGB"), Image.open("dress.png").convert("RGB")]
scene = modify(EditImages(prompt="dress the person in <image_1> in the dress from <image_2>", images=references), seed=0)
result = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=references, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
```

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/multiref_dress.png" width="100%"/>
</p>

### Inspire

Text-to-image with a reference image. `bria-vgl` looks at the image and writes a structured prompt for the scene you describe, carrying over what you ask for from the reference: its subject, style, colours or composition. The pipeline then generates from that prompt alone, without seeing the image, so the result is inspired by the reference rather than a copy of it.

```python
reference = Image.open("generate.png").convert("RGB")  # the whale from the Generate example
scene = create(Inspire(prompt="the same scene, the whale is blue and the clouds are orange", image=reference), seed=0)
image = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_T2I, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
```

<p align="center">
  <img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/inspire_blue_whale.png" width="50%"/>
</p>

---

## πŸ› οΈ Fine-Tuning

Generation and editing share one set of weights, so a single fine-tune can teach Fibo 2.0 Dev a new style or domain *and* how to edit within it. Typical uses:

- **Brand and style LoRAs** that lock in a visual identity across every generated and edited asset.
- **Domain specialists** for product photography, fashion, interiors, food, or any vertical with its own visual language.
- **Task-specific editors**: narrow, highly reliable edit operations, like the upcoming Fibo 2.0 LoRAs.

Fine-tuning code: [`fine_tuning/`](fine_tuning/README.md) holds a single-GPU LoRA trainer for editing and text-to-image, with a guide to preparing data.

---

## 🧠 Training and Architecture

Fibo 2.0 is an **8B-parameter flow-matching model** operating in the latent space of the **FLUX.2 VAE**. Prompts are encoded by **Qwen3-VL-4B-Instruct**, and context images for editing are encoded by both the VLM and the VAE. A two-layer Perceiver resampler compresses the VLM output into **256–512 "gist" tokens**, with more tokens for longer prompts. These are prepended to the image tokens (the noisy latent and, when editing, the clean context latents) and processed by a **single-stream DiT with 44 blocks**. Internal VLM layers also feed five of those blocks directly through cross-attention.

Fibo 2.0 Dev is the base checkpoint of the release. [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo) is distilled from it for few-step editing, with the same architecture.

**Data:** trained exclusively on licensed data, curated from Bria's ~1B-image dataset and paired with long, structured captions.

---

FIBO is inspired by the Fibonacci sequence, where math meets beauty through the golden ratio, nature's and design's timeless key to harmony.

If you have questions, feedback or want to contribute, we welcome your discussions and pull requests in this model's [Community tab](https://huggingface.co/briaai/Fibo-2.0-dev/discussions). If you're passionate about fundamental research, we're hiring full-time employees and research interns. Reach out to us at hr@bria.ai.

## Citation

```bibtex
@article{gutflaish2025generating,
  title={Generating an Image From 1,000 Words: Enhancing Text-to-Image With Structured Captions},
  author={Gutflaish, Eyal and Kachlon, Eliran and Zisman, Hezi and Hacham, Tal and Sarid, Nimrod and Visheratin, Alexander and Huberman, Saar and Davidi, Gal and Bukchin, Guy and Goldberg, Kfir and others},
  journal={arXiv preprint arXiv:2511.06876},
  year={2025}
}
```