FIBO
FIBO is a SOTA, first open-source, JSON-native text-to-image model built for controllable, predictable, and legally safe image generation.
Install / Use
/learn @Bria-AI/FIBOREADME
<p align="center">
<img src="assets/Bria-logo.svg" width="200"/>
</p>
<p align="center">
<!-- GitHub Repo -->
<a href="https://huggingface.co/briaai/FIBO" target="_blank">
<img
alt="Hugging Face model card"
src="https://img.shields.io/badge/Hugging%20Face-Model%20Card-FFD21E?logo=huggingface&logoColor=black&style=for-the-badge"
/>
</a>
<!-- Hugging Face Demo -->
<a href="https://huggingface.co/spaces/briaai/FIBO" target="_blank">
<img
alt="Hugging Face Demo"
src="https://img.shields.io/badge/Hugging%20Face-Demo-FFD21E?logo=huggingface&logoColor=black&style=for-the-badge"
/>
</a>
<!-- FIBO Demo on Bria (replace URL if you have a specific demo link) -->
<a href="https://platform.bria.ai/labs/fibo" target="_blank">
<img
alt="FIBO Demo on Bria"
src="https://img.shields.io/badge/FIBO%20Demo-Bria-6C47FF?style=for-the-badge"
/>
</a>
<!-- Bria Platform -->
<a href="https://platform.bria.ai" target="_blank">
<img
alt="Bria Platform"
src="https://img.shields.io/badge/Bria-Platform-0EA5E9?style=for-the-badge"
/>
</a>
<!-- Bria Discord -->
<a href="https://discord.com/invite/Nxe9YW9zHS" target="_blank">
<img
alt="Bria Discord"
src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=for-the-badge"
/>
</a>
<!-- Bria Paper -->
<a href="https://arxiv.org/abs/2511.06876" target="_blank">
<img
alt="Tech Paper"
src="https://img.shields.io/badge/Tech%20Paper-lightgrey?logo=arxiv&logoColor=red&style=for-the-badge"
/>
</a>
</p>
<p align="center">
<img src="assets/car.001.jpeg" width="1024"/>
</p>
<p align="center">
<b>FIBO is the first open-source, JSON-native text-to-image model trained exclusively on long structured captions.</b>
<br><br>
<i>Fibo sets a new standard for controllability, predictability, and disentanglement.</i>
</p>
<!-- ===================== MAIN CONTENT ===================== -->
<h2>🌍 What's FIBO?</h2>
<p>Most text-to-image models excel at imagination—but not control. <b>FIBO</b> is built for professional workflows, not casual use. Trained on <b>structured JSON captions up to 1,000+ words</b>, FIBO enables precise, reproducible control over lighting, composition, color, and camera settings. The structured captions foster native disentanglement, allowing targeted, iterative refinement without prompt drift. With only <b>8B parameters</b>, FIBO delivers high image quality, strong prompt adherence, and professional-grade control—<b>trained exclusively on licensed data</b>.</p>
<h2>🔑 Key Features</h2>
<ul>
<li><b>VLM guided JSON-native prompting</b>: Incorporates any VLM to transform short prompts into structured schemas with 1,000+ words (lighting, camera, composition, DoF).</li>
<li><b>Iterative controlled generation</b>: generate images from short prompts or keep refining and get inspiration from detailed JSONs and input images</li>
<li><b>Disentangled control</b>: tweak a single attribute (e.g., camera angle) without breaking the scene.</li>
<li><b>Enterprise-grade</b>: 100% licensed data; governance, repeatability, and legal clarity.</li>
<li><b>Strong prompt adherence</b>: high alignment on PRISM-style evaluations.</li>
<li><b>Built for production</b>: API endpoints (Bria Platform, Fal.ai, Replicate), ComfyUI nodes, and local inference.</li>
</ul>
<h2>🎨 Work with FIBO in Three Simple Modes</h2>
<ul>
<li>
<b>Generate:</b> Start with a quick idea. FIBO’s language model expands your short prompt into a rich, structured JSON prompt, then generates the image.
You get both the image and the expanded prompt.
</li>
<li>
<b>Refine:</b> Continue from a detailed structured prompt add a short instruction - for example, “backlit,” “85 mm,” or “warmer skin tones.”
FIBO updates <i>only</i> the requested attributes, re-generates the image, and returns the refined prompt alongside it.
</li>
<li>
<b>Inspire:</b> Provide an image instead of text. FIBO’s vision–language model extracts a detailed, structured prompt, blends it with your creative intent, and produces related images—ideal for inspiration without overreliance on the original.
</li>
</ul>
<h2> News</h2>
<ul>
<li>2025-11-11: Technical report is now available <a href="https://arxiv.org/abs/2511.06876">here</a> 🎉</li>
<li>2025-11-11: Fine-tuning code is now available <a href="src/fine_tuning/README.md">here</a> 🎉</li>
<li>2025-11-10: Add support for TeaCache to speed up generation by 3x with minimal quality loss 🏎️</li>
</ul>
<h2>⚡ Quick Start</h2>
</p>
<p align="center">
<a href="https://huggingface.co/spaces/briaai/FIBO" target="_blank" style="text-decoration:none;">
🚀 Try FIBO now →
</a>
</p>
<p>FIBO is available everywhere you build, either as source-code and weights, ComfyUI nodes or API endpoints.</p>
<p><b>API Endpoint:</b></p>
<ul>
<li><a href="https://docs.bria.ai/image-generation/v2-endpoints/image-generate">Bria.ai</a></li>
<li><a href="https://fal.ai/models/bria/fibo/generate">Fal.ai</a></li>
<li><a href="https://replicate.com/bria/fibo">Replicate</a></li>
</ul>
<p><b>ComfyUI:</b>
<ul>
<li><a href="https://github.com/Bria-AI/ComfyUI-BRIA-API/blob/main/nodes/generate_image_node_v2.py">Generate Node</a></li>
<li><a href="https://github.com/Bria-AI/ComfyUI-BRIA-API/blob/main/nodes/refine_image_node_v2.py">Refine Node</a></li>
</ul></p>
<p><b>Source-Code & Weights</b></p>
<ul>
<li>The model is open source for non-commercial use with <a href="https://creativecommons.org/licenses/by-nc/4.0/deed.en">this license</a> </li>
<li>For commercial use <a href="https://bria.ai/contact-us?hsCtaAttrib=114250296256">Click here</a>.</li>
</ul>
<h2>Quick Start Guide</h2>
<ol>
<li>
<p>Clone the repo</p>
<pre><code class="language-bash">git clone https://github.com/Bria-AI/FIBO.git
cd FIBO
</code></pre>
</li>
<li>
<p>Login to Hugging Face:</p>
<p>
Request model access at <a href="https://huggingface.co/briaai/FIBO" target="_blank">this link</a>
</p>
<pre><code class="language-bash">hf auth login</code></pre>
</li>
<li>
<p>Install <code>uv</code>:</p>
<p>Instructions taken from <a href="https://docs.astral.sh/uv/getting-started/installation/">here</a>.</p>
<p>For linux systems this should be:</p>
<pre><code class="language-bash">curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
</code></pre>
</li>
<li>
<p>Install the dependencies:</p>
<pre><code class="language-bash">uv sync
</code></pre>
</li>
<li>
<p>Activate your <code>.venv</code> and set the Python env:</p>
<pre><code class="language-bash">source .venv/bin/activate
export PYTHONPATH=${PYTHONPATH}:${PWD}
</code></pre>
</li>
</ol>
Development
This project uses a Makefile to streamline common development tasks.
To install dependencies and set up pre-commit hooks, run:
make install
The following commands are also available:
make lint: Run linters to check for code quality.make format: Format the code according to the project's style guidelines.make check: Run both linters and formatters.make clean: Remove the virtual environment.make help: Display a list of all available commands.
python generate.py --prompt "A hyper-detailed, ultra-fluffy owl sitting in the trees at night, looking directly at the camera with wide, adorable, expressive eyes. Its feathers are soft and voluminous, catching the cool moonlight with subtle silver highlights. The owl's gaze is curious and full of charm, giving it a whimsical, storybook-like personality." --seed 1 --output examples/outputs/generate.png
<p>To use the local VLM (FIBO-VLM) instead of Gemini, add <code>--model-mode local</code> to the command.</p>
python generate.py --prompt "A hyper-detailed, ultra-fluffy owl sitting in the trees at night, looking directly at the camera with wide, adorable, expressive eyes. Its feathers are soft and voluminous, catching the cool moonlight with subtle silver highlights. The owl's gaze is curious and full of charm, giving it a whimsical, storybook-like personality." --seed 1 --output examples/outputs/generate.png --model-mode local
<p><img src="assets/owl.png" alt="alt text" width="300"/></p>
<h3>Refine</h3>
<p>FIBO supports iterative generation. Given a structured prompt and an instruction, FIBO refines the output.</p>
python generate.py --structured-prompt examples/outputs/generate.json --prompt "make the owl brown" --output examples/outputs/refine.png
<table align="center">
<tr>
<td><img src="assets/make_owl_brown.png" alt="Make owl brown" width="100%"/><figcaption>Make owl brown</figcaption></td>
<td><img src="assets/turn_owl_into_a_lemur_.png" alt="Turn owl into a lemur" width="100%"/><f