Bria — Generate, Edit & Remove Background from Images with AI
Generate, edit, create product images with AI. Remove or replace backgrounds, lifestyle shots, transparent PNGs, visual assets, batch generation, illustrations. Controllable image editing with Bria.ai commercially-safe models — fine-grained control over what gets generated, edited, or removed. Edit by text instruction, mask specific regions, add/replace/remove individual objects, control lighting, season, and style. Use for e-commerce product photography, background removal, image upscaling, style transfer, hero images, icons, banners, and pipeline workflows. Triggers on AI image generation, controllable editing, background removal, or visual asset creation.
Setup — API Key Check
Before making any Bria API call, check for the API key and help the user set it up if missing:
Step 1: Check if the key exists (without printing the key)
if [ -z "$BRIA_API_KEY" ]; then
echo "BRIA_API_KEY is not set"
else
echo "BRIA_API_KEY is set"
fi
If the output is not empty, skip to the next section.
Step 2: If the key is missing, guide the user
Tell the user exactly this:
To use image generation, you need a free Bria API key.
- Go to https://platform.bria.ai/console/account/api-keys
- Sign up or log in
- Click Create API Key
Wait for the user to provide their API key. Do not proceed until they give you the key.
Do not proceed with any image generation or editing until the API key is confirmed set.
Core Capabilities
| Need | Capability | Use Case |
|---|---|---|
| Generate images from text | FIBO Generate | Hero images, product shots, illustrations, social media images, banners |
| Edit images by text instruction | FIBO-Edit | Change colors, modify objects, transform scenes |
| Edit image region with mask | GenFill/Erase | Precise inpainting, add/replace specific regions |
| Add/Replace/Remove objects | Text-based editing | Add vase, replace apple with pear, remove table |
| Remove background (transparent PNG) | RMBG-2.0 | Extract subjects for overlays, logos, cutouts |
| Replace/blur/erase background | Background ops | Change, blur, or remove backgrounds |
| Expand/outpaint images | Outpainting | Extend boundaries, change aspect ratios |
| Upscale image resolution | Super Resolution | Increase resolution 2x or 4x |
| Enhance image quality | Enhancement | Improve lighting, colors, details |
| Restyle images | Restyle | Oil painting, anime, cartoon, 3D render |
| Change lighting | Relight | Golden hour, spotlight, dramatic lighting |
| Change season | Reseason | Spring, summer, autumn, winter |
| Composite/blend images | Image Blending | Apply textures, logos, merge images |
| Restore old photos | Restoration | Fix old/damaged photos |
| Colorize images | Colorization | Add color to B&W, or convert to B&W |
| Sketch to photo | Sketch2Image | Convert drawings to realistic photos |
| Create product lifestyle shots | Lifestyle Shot | Place products in scenes for e-commerce |
| Integrate products into scenes | Product Integrate | Embed products at exact coordinates |
Quick Reference
Generate an Image (FIBO)
curl -X POST "https://engine.prod.bria-api.com/v2/image/generate" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"prompt": "your description",
"aspect_ratio": "16:9",
"resolution": "1MP",
"sync": true
}'
Aspect ratios: 1:1 (square), 16:9 (hero/banner), 4:3 (presentation), 9:16 (mobile/story), 3:4 (portrait)
Resolution: 1MP (default) or 4MP (improved details for photorealism, adds ~30s latency)
Sync mode: Pass "sync": true in the request body for single image generation to get the result directly in the response. For batch/multiple image generation, omit sync (or set false) and use polling instead.
Advanced: For precise, deterministic control over generation, use VGL structured prompts instead of natural language. VGL defines every visual attribute (objects, lighting, composition) as explicit JSON.
Remove Background (RMBG-2.0)
curl -X POST "https://engine.prod.bria-api.com/v2/image/edit/remove_background" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{"image": "https://..."}'
Returns PNG with transparency.
Edit Image (FIBO-Edit) - No Mask Required
curl -X POST "https://engine.prod.bria-api.com/v2/image/edit" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"images": ["https://..."],
"instruction": "change the mug to red"
}'
Edit Image Region with Mask (GenFill)
curl -X POST "https://engine.prod.bria-api.com/v2/image/edit/gen_fill" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"image": "https://...",
"mask": "https://...",
"prompt": "what to generate in masked area"
}'
Expand Image (Outpainting)
curl -X POST "https://engine.prod.bria-api.com/v2/image/edit/expand" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"image": "base64-or-url",
"aspect_ratio": "16:9",
"prompt": "coffee shop background, wooden table"
}'
Upscale Image
curl -X POST "https://engine.prod.bria-api.com/v2/image/edit/increase_resolution" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{"image": "https://...", "scale": 2}'
Create Product Lifestyle Shot
curl -X POST "https://engine.prod.bria-api.com/v1/product/lifestyle_shot_by_text" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"image": "https://product-with-transparent-bg.png",
"prompt": "modern kitchen countertop, natural morning light"
}'
Integrate Products into Scene
Place one or more products at exact coordinates in a scene. Products are automatically cut out and matched to the scene's lighting and perspective.
curl -X POST "https://engine.prod.bria-api.com/image/edit/product/integrate" \
-H "api_token: $BRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "User-Agent: BriaSkills/1.2.7" \
-d '{
"scene": "https://scene-image-url",
"products": [
{
"image": "https://product-image-url",
"coordinates": {"x": 100, "y": 200, "width": 300, "height": 400}
}
]
}'
Response Handling
Sync (single image generation)
For single image requests, pass "sync": true in the request body. The response returns the result directly — no polling needed.
Async with polling (batch generation)
For batch or multiple image generation, omit sync (or set "sync": false). The response returns a status URL to poll:
{
"request_id": "uuid",
"status_url": "https://engine.prod.bria-api.com/v2/status/uuid"
}
Poll the status_url until status: "COMPLETED", then get result.image_url.
import requests, time
def get_result(status_url, api_key):
while True:
r = requests.get(status_url, headers={"api_token": api_key, "User-Agent": "BriaSkills/1.2.7"})
data = r.json()
if data["status"] == "COMPLETED":
return data["result"]["image_url"]
if data["status"] == "FAILED":
raise Exception(data.get("error"))
time.sleep(2)
Prompt Engineering Tips
- Style: "professional product photography" vs "casual snapshot", "flat design illustration" vs "3D rendered"
- Lighting: "soft natural light", "studio lighting", "dramatic shadows"
- Background: "white studio", "gradient", "blurred office", "transparent"
- Composition: "centered", "rule of thirds", "negative space on left for text"
- Quality keywords: "high quality", "professional", "commercial grade", "4K", "sharp focus"
- Negative prompts: "blurry, low quality, pixelated", "text, watermark, logo"
API Reference
See references/api-endpoints.md for complete endpoint documentation.
Key Endpoints
Image Generation
| Endpoint | Purpose |
|---|---|
POST /v2/image/generate | Generate images from text (FIBO) |
Edit by Text (No Mask)
| Endpoint | Purpose |
|---|---|
POST /v2/image/edit | Edit image with natural language instruction |
POST /v2/image/edit/add_object_by_text | Add objects to image |
POST /v2/image/edit/replace_object_by_text | Replace objects in image |
POST /v2/image/edit/erase_by_text | Remove objects by name |
Edit with Mask
| Endpoint | Purpose |
|---|---|
POST /v2/image/edit/gen_fill | Inpaint/generate in masked region |
POST /v2/image/edit/erase | Erase masked region |
Background Operations
| Endpoint | Purpose |
|---|---|
POST /v2/image/edit/remove_background | Remove background (RMBG-2.0) |
POST /v2/image/edit/replace_background | Replace with AI-generated background |
POST /v2/image/edit/blur_background | Apply blur to background |
POST /v2/image/edit/erase_foreground | Remove foreground, fill background |
POST /v2/image/edit/crop_foreground | Crop tightly around subject |
Image Transformation
| Endpoint | Purpose |
|---|---|
POST /v2/image/edit/expand | Outpaint to new aspect ratio |
POST /v2/image/edit/enhance | Enhance quality and details |
POST /v2/image/edit/increase_resolution | Upscale 2x or 4x |
POST /v2/image/edit/blend | Blend/merge images or textures |
POST /v2/image/edit/reseason | Change season/weather |
POST /v2/image/edit/restyle | Transform artistic style |
POST /v2/image/edit/relight | Modify lighting |
Restoration
| Endpoint | Purpose |
|---|---|
POST /v2/image/edit/sketch_to_colored_image | Convert sketch to photo |
POST /v2/image/edit/restore | Restore old/damaged photos |
POST /v2/image/edit/colorize | Colorize B&W or convert to B&W |
Product Photography
| Endpoint | Purpose |
|---|---|
POST /v1/product/lifestyle_shot_by_text | Create product lifestyle shots by text |
POST /image/edit/product/integrate | Integrate products into scene at exact coordinates |
Utilities
| Endpoint | Purpose |
|---|---|
POST /v2/structured_instruction/generate | Generate JSON instruction (no image) |
GET /v2/status/{id} | Check async request status |
Authentication
All requests need api_token header:
api_token: YOUR_BRIA_API_KEY
User-Agent: BriaSkills/<version>
Required: Always include the
User-Agent: BriaSkills/<version>header (where<version>is the current skill version frompackage.json, e.g.BriaSkills/1.2.7) in every API call, including status polling requests.
Additional Resources
- API Endpoints Reference — Complete endpoint documentation with request/response formats
- Workflows & Pipelines — Batch generation, parallel pipelines, integration examples
- Python Client — Full-featured async Python client
- TypeScript Client — Typed Node.js client
- Bash/curl Reference — Shell functions for all endpoints
Related Skills
- vgl — Write structured VGL JSON prompts for precise, deterministic control over FIBO image generation
- image-utils — Classic image manipulation (resize, crop, composite, watermarks) for post-processing