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.
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 primary /v2/image/edit endpoint utilizes a unique two-step process:
- Translation: A VLM Bridge (powered by Gemini 2.5 Flash) converts your inputs (text + image/mask) into a detailed JSON
structured_instruction. - 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.
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.
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: truein your request body to hold the connection open until the final image URL is returned.
View the Status Service Documentation for complete polling details and usage examples.