FIBO-Edit brings the power of structured prompt generation to image editing.
Built on Fibo's foundation and of JSON-native control, FIBO-Edit delivers precise, deterministic, and fully controllable edits. No ambiguity, no surprises.
🌍 What's Fibo Edit?
Most image editing models rely on loose, ambiguous text prompts, but not FIBO-Edit. FIBO-Edit introduces a new paradigm of structured control, operating on structured JSON inputs paired with a source image (and optionally a mask). This enables explicit, interpretable, and repeatable editing workflows optimized for professional production environments.
Developed by Bria AI, FIBO-Edit prioritizes transparency, legal safety, and granular control: ranking among the top models in open benchmarks for prompt adherence and quality.
📄 Technical report coming soon. For architecture details, see FIBO.
📐 The VGL Paradigm
FIBO-Edit is natively built on Visual GenAI Language (VGL). VGL standardizes image generation by replacing vague natural language descriptions with explicit, human-machine-readable JSON. By disentangling visual elements—such as lighting, composition, style, and camera parameters—VGL transforms editing from a probabilistic guessing game into a deterministic engineering task. Fibo-Edit reads these structured blueprints to perform precise updates without prompt drift, ensuring the output matches your exact specifications.
News
- 2026-1-16: Fibo Edit released on Hugging Face 🎉
- 2026-1-16: Integrated with Diffusers library 🧨
🔑 Key Features
- Structured JSON Control: Move beyond "prompt drift." Define edits with explicit parameters (lighting, composition, style) using a structured JSON format for deterministic results.
- Native Masking: Built-in support for mask-based editing allows you to target specific regions of an image with pixel-perfect precision, leaving the rest untouched.
- Production-Ready Architecture: At 8B parameters, the model balances high-fidelity output with the speed and efficiency required for commercial pipelines.
- Deep Customization: The lightweight architecture empowers researchers to build specialized "Edit" models for domain-specific tasks without compromising quality.
- Responsible & Licensed: Trained exclusively on fully licensed data, ensuring zero copyright infringement risks for commercial users.
⚡ Quick Start
Fibo Edit is available everywhere you build, either as source-code and weights, ComfyUI nodes or API endpoints.
API Endpoint:
Source-Code & Weights
- The model is open source for non-commercial use with this license
- For commercial use Click here.
Quick Start Guide
clone the repository and install the requirements
git clone https://github.com/Bria-AI/Fibo-Edit.git
cd Fibo-Edit
install the requirements
uv sync
source .venv/bin/activate
export PYTHONPATH=.
Promptify Setup
The repository supports two modes for generating structured JSON prompts:
API Mode (default): Uses Gemini as the VLM. Set your API key:
export GEMINI_API_KEY="your-api-key"
Local Mode: Uses a local VLM model (briaai/FIBO-edit-prompt-to-JSON) via diffusers ModularPipelineBlocks. Runs locally on your GPU.
Note: Local VLM mode does not support mask-based editing. Use API mode for masked edits.
Image + Mask (API Mode)
import torch
from diffusers import BriaFiboEditPipeline
from PIL import Image
from src.edit_promptify import get_prompt
# Generate structured JSON using API mode
image = Image.open("photo.jpg")
mask_image = Image.open("mask.jpg").convert("L")
edit_json = get_prompt(image=image, instruction="make it look vintage", mask_image=mask_image)
# Use with Fibo Edit
pipe = BriaFiboEditPipeline.from_pretrained(
"briaai/Fibo-Edit",
torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
result = pipe(
image=image,
mask=mask,
prompt=edit_json,
num_inference_steps=50,
guidance_scale=5
).images[0]
result.save("edited.png")
Only Image (API Mode)
import torch
from diffusers import BriaFiboEditPipeline
from PIL import Image
from src.edit_promptify import get_prompt
# Generate structured JSON using API mode
image = Image.open("photo.jpg")
edit_json = get_prompt(image, "make it look vintage")
# Use with Fibo Edit
pipe = BriaFiboEditPipeline.from_pretrained(
"briaai/Fibo-Edit",
torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
result = pipe(
image=image,
prompt=edit_json,
num_inference_steps=50,
guidance_scale=5
).images[0]
result.save("edited.png")
Only Image (Local VLM Mode)
import torch
from diffusers import BriaFiboEditPipeline
from PIL import Image
from src.edit_promptify import get_prompt
# Generate structured JSON using local VLM
image = Image.open("photo.jpg")
edit_json = get_prompt(
image=image,
instruction="make it look vintage",
vlm_mode="local",
model="briaai/FIBO-edit-prompt-to-JSON"
)
# Use with Fibo Edit
pipe = BriaFiboEditPipeline.from_pretrained(
"briaai/Fibo-Edit",
torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
result = pipe(
image=image,
prompt=edit_json,
num_inference_steps=50,
guidance_scale=5
).images[0]
result.save("edited.png")
CLI Usage
# API mode (default)
python src/example_edit.py --images photo.jpg --instructions "change the car color to green"
# Local VLM mode
python src/example_edit.py --vlm-mode local --vlm-model briaai/FIBO-edit-prompt-to-JSON \
--images photo.jpg --instructions "change the car color to green"
More Examples
|
|
|
|
Advanced Usage
VLM Options
FIBO supports multiple VLM options for generating structured JSON prompts:
Option 1: Gemini API (Default)
To use Gemini as VLM backbone for FIBO, follow these instructions:
-
Obtain a Gemini API Key
Sign up for the Google AI Studio (Gemini) and create an API key. -
Set the API Key as an Environment Variable
Store your Gemini API key in theGEMINI_API_KEYenvironment variable:export GEMINI_API_KEY=your_gemini_api_keyYou can add the above line to your
.bashrc,.zshrc, or similar shell profile for persistence.
# API mode is the default edit_json = get_prompt(image=image, instruction="your edit instruction")Or explicitly specify
edit_json = get_prompt( image=image, instruction="your edit instruction", vlm_mode="api", model="gemini/gemini-2.5-flash" )
Option 2: Local VLM
Use the briaai/FIBO-edit-prompt-to-JSON model locally.
edit_json = get_prompt(
image=image,
instruction="your edit instruction",
vlm_mode="local",
model="briaai/FIBO-edit-prompt-to-JSON"
)
Note: Local mode does not support mask-based editing.
see the examples in the examples directory for more details.
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.
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
Citation
@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}
}
❤️ FIBO model card and ⭐ Star FIBO on GitHub to join the movement for responsible generative AI!
- Downloads last month
- 187
Model tree for briaai/Fibo-Edit
Unable to build the model tree, the base model loops to the model itself. Learn more.