# Overview

Bria's Image Editing API equips builders with a comprehensive suite of tools for manipulating and enhancing images. Powered by the **FIBO models family**, the API supports everything from open-ended natural language edits to highly controlled, deterministic JSON workflows.

## Core Capabilities

### General Image Editing (FIBO Edit)

Our newest `v2` endpoints enable powerful editing using either natural language instructions or strict JSON structures.

* **Global Edits:** Modify the style, lighting, or atmosphere of an entire image.
* **Localized Edits:** Utilize native masking support for precise regional edits. The masking logic acts as a **generative replacement**, creating entirely new content within the masked area based on your instruction without altering the surrounding pixels.
* **Disentangled Control:** Convert text instructions into a detailed `structured_instruction` (JSON) to achieve deterministic, auditable, and reproducible results.


### The FIBO Architecture

The primary `/v2/image/edit` endpoint utilizes a unique two-step process:

1. **Translation:** A VLM Bridge (powered by Gemini 2.5 Flash) converts your inputs (text + image/mask) into a detailed JSON `structured_instruction`.
2. **Generation:** The FIBO Edit model performs the final, deterministic render based on that JSON.


Developers can decouple this process by using the `/v2/structured_instruction/generate` endpoint to intercept, edit, or programmatically build the JSON before passing it to the final render step.

### Specialized Single-Purpose Tools

For focused, high-volume tasks, the API provides optimized endpoints:

* **Background Operations:** Remove, replace, or blur backgrounds (powered by Bria RMBG 2.0).
* **Content Manipulation:** Erase objects or perform generative fill.
* **Image Transformation:** Expand (outpaint) images to specific aspect ratios or increase resolution safely.
* **Person/Object Tools:** Extract masks or modify presenter attributes.


### Asynchronous Processing

By default, all Bria `v2` endpoints process requests asynchronously. The API will immediately return a `request_id` and a `status_url` instead of the final result. You must poll the Status Service to track progress.

> **ℹ️ Need synchronous responses?** > If your integration is simple and low-throughput, you can pass `sync: true` in your request body to hold the connection open until the final image URL is returned.


[View the Status Service Documentation](https://docs.bria.ai/status) for complete polling details and usage examples.