| | --- |
| | language: |
| | - en |
| | base_model: |
| | - briaai/FIBO |
| | pipeline_tag: text-to-image |
| | library_name: diffusers |
| | license: other |
| | license_name: bria-fibo |
| | license_link: https://creativecommons.org/licenses/by-nc/4.0/deed.en |
| |
|
| | extra_gated_description: >- |
| | Bria AI Model weights are open source for non commercial use only, per the |
| | provided [license](https://creativecommons.org/licenses/by-nc/4.0/deed.en). |
| | extra_gated_heading: Fill in this form to immediatly access the model for non commercial use |
| | extra_gated_fields: |
| | Name: text |
| | Email: text |
| | Company/Org name: text |
| | Company Website URL: text |
| | Discord user: text |
| | I agree to BRIA’s Privacy policy, Terms & conditions, and acknowledge Non commercial use to be Personal use / Academy / Non profit (direct or indirect): checkbox |
| |
|
| |
|
| | --- |
| | <!-- ===================== HEADER ===================== --> |
| |
|
| | <p align="center"> |
| | <img src="assets/Bria-logo.svg" width="200"/> |
| | </p> |
| |
|
| | <p align="center"> |
| | <!-- GitHub Repo --> |
| | <a href="https://github.com/Bria-AI/FIBO" target="_blank"> |
| | <img |
| | alt="GitHub Repo" |
| | src="https://img.shields.io/badge/GitHub-Repo-181717?logo=github&logoColor=white&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.gg/Jjazu7Gn" target="_blank"> |
| | <img |
| | alt="Bria Discord" |
| | src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=for-the-badge" |
| | /> |
| | </a> |
| | |
| | |
| | <!-- Tech Paper (arXiv placeholder) --> |
| | <a href="https://arxiv.org/" target="_blank"> |
| | <img |
| | alt="Tech Paper" |
| | src="https://img.shields.io/badge/Tech%20Paper-arXiv-B31B1B?logo=arxiv&logoColor=white&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 structred 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>⚡ Quick Start</h2> |
| |
|
| | </p> |
| |
|
| | <!-- change it to a nice button --> |
| | <p align="center"> |
| | 🚀 <a href="https://platform.bria.ai/labs/fibo">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/endpoints/text-to-image-base">Bria.ai</a></li> |
| | <li><a href="https://fal.ai/models/bria/fibo/generate">Fal.ai (Soon) </a></li> |
| | <li><a href="https://replicate.com/bria/fibo">Replicate (Soon)</a></li> |
| | </ul> |
| |
|
| | <p><b>ComfyUI:</b> <a href="https://github.ecom/Bria-AI/ComfyUI-FIBO-API">Use it in workflows (Soon)</a></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> |
| | <details> |
| | <summary>Install Diffusers</summary> |
| | <p>Install Diffusers from the source code:</p> |
| | <pre><code class="language-bash">pip install git+https://github.com/huggingface/diffusers |
| | </code></pre> |
| | </details> |
| | <h3>Generate</h3> |
| | |
| | <p>FIBO is using transforming short prompts into detailed structured prompts that are used to generate images. You can use the following code to generate images using a local VLM (FIBO-VLM):</p> |
| |
|
| | ```python |
| | import json |
| | import torch |
| | from diffusers import BriaFiboPipeline, BriaFiboVLMPromptToJson |
| | |
| | # ------------------------------- |
| | # Section: Initialization |
| | # ------------------------------- |
| | torch.set_grad_enabled(False) |
| | vlm_block = BriaFiboVLMPromptToJson(model_id="briaai/vlm-processor-new") |
| | vlm_pipe = vlm_block.init_pipeline() |
| | |
| | pipe = BriaFiboPipeline.from_pretrained( |
| | "briaai/GAIA-Alpha-diffusers", |
| | trust_remote_code=True, |
| | torch_dtype=torch.bfloat16, |
| | ) |
| | pipe.to("cuda") |
| | |
| | # ------------------------------- |
| | # Section: Image Generation |
| | # ------------------------------- |
| | |
| | # 1. Create a prompt to generate an initial image |
| | output = vlm_pipe(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.") |
| | json_prompt_generate = output.values["json_prompt"] |
| | |
| | # Generate the image from the structured json prompt |
| | results_generate = pipe( |
| | prompt=json_prompt_generate, num_inference_steps=50, guidance_scale=5 |
| | ) |
| | results_generate.images[0].save("image_generate.png") |
| | with open("image_generate_json_prompt.json", "w") as f: |
| | json.dump(json_prompt_generate, f) |
| | ``` |
| |
|
| | <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 |
| | output = vlm_pipe( |
| | json_prompt=json_prompt_generate, prompt="make the owl brown" |
| | ) |
| | json_prompt_refine_from_image = output.values["json_prompt"] |
| | |
| | results_refine_from_image = pipe( |
| | prompt=json_prompt_refine_from_image, num_inference_steps=50, guidance_scale=5 |
| | ) |
| | results_refine_from_image.images[0].save("image_refine_from_image.png") |
| | with open("image_refine_from_image_json_prompt.json", "w") as f: |
| | json.dump(json_prompt_refine_from_image, f) |
| | ``` |
| | <style> |
| | .image-row { |
| | display: flex; |
| | gap: 20px; |
| | justify-content: center; |
| | flex-wrap: wrap; /* allows wrapping on smaller screens */ |
| | } |
| | .image-row figure { |
| | text-align: center; |
| | font-size: 0.9em; |
| | } |
| | .image-row img { |
| | width: 300px; |
| | border-radius: 4px; |
| | } |
| | </style> |
| | |
| | <div class="image-row"> |
| | <figure> |
| | <img src="assets/make_owl_brown.png" alt="Make owl brown"/> |
| | <figcaption>--> Make the owl brown</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/turn_owl_into_a_lemur_.png" alt="Turn owl into a lemur"/> |
| | <figcaption>--> Turn the owl into a lemur</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/add_jungle_vegetation_to_the_dark_background.png" alt="Add jungle vegetation"/> |
| | <figcaption>--> Add jungle vegetation</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/add_sunlight.png" alt="Add sunlight"/> |
| | <figcaption>--> Add sunlight</figcaption> |
| | </figure> |
| | </div> |
| | |
| | <h3>Inspire</h3> |
| | <p>Start from an image as inspiration and let Fibo regenerate a variation of it or merge your creative intent into the next generation</p> |
| | |
| | ```python |
| | output = vlm_pipe( |
| | image=original_astronaut_image, prompt="") |
| | json_prompt_inspire = output.values["json_prompt"] |
| | |
| | results_inspire = pipe( |
| | prompt=json_prompt_inspire, num_inference_steps=50, guidance_scale=5 |
| | ) |
| | results_inspire.images[0].save("image_inspire.png") |
| | with open("image_inspire_json_prompt.json", "w") as f: |
| | json.dump(json_prompt_inspire, f) |
| | |
| | output = vlm_pipe( |
| | image=original_astronaut_image, prompt="Add green to the helmet color") |
| | json_prompt_inspire = output.values["json_prompt"] |
| | |
| | results_inspire = pipe( |
| | prompt=json_prompt_inspire, num_inference_steps=50, guidance_scale=5 |
| | ) |
| | results_inspire.images[0].save("image_inspire.png") |
| | with open("image_inspire_json_prompt.json", "w") as f: |
| | json.dump(json_prompt_inspire, f) |
| | ``` |
| | |
| | <div class="image-row"> |
| | <figure> |
| | <img src="assets/original.png" alt="original image"/> |
| | <figcaption>original image</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/no_prompt.png" alt="No prompt"/> |
| | <figcaption>Inspire #1: No prompt</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/add_green_to_the_helmet_color.png" alt="Add green to the helmet color"/> |
| | <figcaption>Inspire #2: Add green to the helmet color</figcaption> |
| | </figure> |
| | <figure> |
| | <img src="assets/make_futuristic.png" alt="Make futuristic"/> |
| | <figcaption>Inspire #3: Make futuristic</figcaption> |
| | </figure> |
| | |
| | </div> |
| | |
| | <h3>Advanced Usage</h3> |
| | <details> |
| | <summary>Gemini Setup [optional]</summary> |
| | |
| | <p>FIBO supports any VLM as part of the pipeline. To use Gemini as VLM backbone for FIBO, follow these instructions:</p> |
| | |
| | <ol> |
| | <li> |
| | <p><b>Obtain a Gemini API Key</b><br/> |
| | Sign up for the <a href="https://aistudio.google.com/app/apikey">Google AI Studio (Gemini)</a> and create an API key.</p> |
| | </li> |
| | <li> |
| | <p><b>Set the API Key as an Environment Variable</b><br/> |
| | Store your Gemini API key in the <code>GEMINI_API_KEY</code> environment variable:</p> |
| | <pre><code class="language-bash">export GEMINI_API_KEY=your_gemini_api_key |
| | </code></pre> |
| | <p>You can add the above line to your <code>.bashrc</code>, <code>.zshrc</code>, or similar shell profile for persistence.</p> |
| | </li> |
| | </ol> |
| | |
| | </details> |
| | |
| | <p>see the examples in the <a href="examples">examples</a> directory for more details.</p> |
| | |
| | <h2>🧠 Training and Architecture</h2> |
| | |
| | <p><strong>FIBO</strong> is an 8B-parameter DiT-based, flow-matching text-to-image model trained <strong>exclusively on licensed data</strong> and on <strong>>100M long, structured JSON captions</strong> (~1,000 words each), enabling strong prompt adherence and professional-grade control. It uses <strong>SmolLM3-3B</strong> as the text encoder with a novel <strong>DimFusion</strong> conditioning architecture for efficient long-caption training, and <strong>Wan 2.2</strong> as the VAE. The structured supervision promotes native disentanglement for targeted, iterative refinement without prompt drift, while VLM-assisted prompting expands short user intents, fills in missing details, and extracts/edits structured prompts from images using our fine-tuned <strong>Qwen-2.5</strong>-based VLM or <strong>Gemini 2.5 Flash</strong>. For reproducibility, we provide the assistant system prompt and the structured-prompt JSON schema across the “Generate,” “Refine,” and “Inspire” modes.</p> |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | <h2 id="data-distribution">Data Distribution</h2> |
| | |
| | <p>FIBO was trained on over 100M licensed image–caption pairs as shown in the dataset distribution. All assets are vetted for commercial use, attribution traceability, and regional compliance under GDPR and the EU AI Act. This broad and balanced dataset ensures FIBO’s ability to generalize across a wide range of visual domains, from realistic human imagery to graphic design and product visualization, while maintaining full licensing compliance.</p> |
| | |
| | <p><img src="assets/DataAttr.png" alt="alt text" width="450"/></p> |
| | |
| | <h2 id="Evaluation">Evaluation</h2> |
| | |
| | <!-- ===================== BENCHMARK TABLE FIGURE ===================== --> |
| | <h3 id="PRISM Benchmark model-comparison">PRISM Benchmark Model Comparison</h3> |
| | |
| | <p>Using a licensed-data subset of PRISM-Bench, we evaluate image–text alignment and aesthetics. <strong>FIBO</strong> outperforms comparable open-source baselines, suggesting strong prompt adherence, controllability and aesthetics from structured-caption training.</p> |
| | |
| | <figure role="group" aria-labelledby="table-title" style="max-width:900px;margin:0 auto;"> |
| | <img src="assets/PRISM Benchmark.png" alt="Benchmark Chart" style="width:100%;border-radius:12px;margin-bottom:16px;"/> |
| | <div style="text-align:left;margin-bottom:12px;"> |
| | <h4 id="table-title" style="font-weight:700;font-size:22px;margin:0;">Benchmark Table</h4> |
| | </div> |
| | <table style="width:100%;border-collapse:separate;border-spacing:0;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;"> |
| | <thead> |
| | <tr style="background:#f9fafb;color:#374151;border-bottom:1px solid #e5e7eb;"> |
| | <th style="text-align:center;padding:10px 12px;font-size:14px;">#</th> |
| | <th style="text-align:left;padding:10px 12px;font-size:14px;">Model (Size)</th> |
| | <th style="text-align:center;padding:10px 12px;font-size:14px;">Text-Alignment</th> |
| | <th style="text-align:center;padding:10px 12px;font-size:14px;">Aesthetics</th> |
| | </tr> |
| | </thead> |
| | <tbody> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">1</td><td style="font-weight:600;text-align:left;padding:10px 12px;">FIBO (8B)</td><td style="text-align:center;padding:10px 12px;">87.8</td><td style="text-align:center;padding:10px 12px;">82.1</td></tr> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">2</td><td style="font-weight:600;text-align:left;padding:10px 12px;">Qwen-Image (20B)</td><td style="text-align:center;padding:10px 12px;">84.1</td><td style="text-align:center;padding:10px 12px;">81.5</td></tr> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">3</td><td style="font-weight:600;text-align:left;padding:10px 12px;">FLUX.1-Krea-dev (12B)</td><td style="text-align:center;padding:10px 12px;">79.7</td><td style="text-align:center;padding:10px 12px;">79.7</td></tr> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">4</td><td style="font-weight:600;text-align:left;padding:10px 12px;">HiDream-I1-Full (17B)</td><td style="text-align:center;padding:10px 12px;">80.0</td><td style="text-align:center;padding:10px 12px;">79.1</td></tr> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">5</td><td style="font-weight:600;text-align:left;padding:10px 12px;">FLUX.1-dev (12B)</td><td style="text-align:center;padding:10px 12px;">77.0</td><td style="text-align:center;padding:10px 12px;">78.7</td></tr> |
| | <tr><td style="text-align:right;color:#6b7280;padding:10px 12px;">6</td><td style="font-weight:600;text-align:left;padding:10px 12px;">SD3.5-Large (12B)</td><td style="text-align:center;padding:10px 12px;">77.9</td><td style="text-align:center;padding:10px 12px;">77.6</td></tr> |
| | </tbody> |
| | </table> |
| | </figure> |
| | |
| | <h3 id="prism-benchmark">Prism Benchmark</h3> |
| | |
| | |
| | <p><img src="assets/PRISM.png" alt="alt text" width="650"/></p> |
| | |
| | <!-- <h3 id="overall-preference-benchmark">Overall Preference Benchmark</h3> ---> |
| | |
| | |
| | |
| | <p>If you have questions about this repository, feedback to share, or want to contribute directly, we welcome your issues and pull requests on GitHub. Your contributions help make FIBO better for everyone.</p> |
| | |
| | <p>If you're passionate about fundamental research, we're hiring full-time employees (FTEs) and research interns. Don't wait - reach out to us at hr@bria.ai</p> |
| | |
| | <p align="center"><b>⭐ Star FIBO on GitHub and join the movement for responsible generative AI!</b></p> |