Transform, convert, watermark, and optimize existing images with deterministic Pillow operations.
Design & media
Bria Ai
Generate, edit, cut out, upscale, and stage images through Bria’s API.
What it does
Generate commercially safe, royalty-free images from text, edit existing images with natural-language instructions, and create transparent cutouts or product lifestyle scenes through Bria’s image API. It selects among 20+ endpoints, accepts local files or URLs, handles device-flow authentication and polling, and returns a result image URL.
When to use it
- Transparent product cutouts
- Text-generated banners and hero images
- Product lifestyle scenes
- Background replacement and photo upscaling
The skill document
Bria — AI Image Generation, Editing & Background Removal
Commercially safe, royalty-free image generation and editing through 20+ API endpoints.
For additional endpoint details, see the Bria API reference for agents.
When to Use This Skill
- Generate images — "create an image of...", "make me a banner", "generate a hero image", "I need a product photo"
- Edit images — "change the background", "make it look like winter", "add a vase to the table", "remove the person"
- Remove/replace backgrounds — "make the background transparent", "cut out the product", "replace with a studio background"
- Product photography — "create a lifestyle shot", "place this product in a kitchen scene", "e-commerce packshot"
- Enhance/transform — "upscale this image", "make it higher resolution", "restyle as oil painting", "change the lighting"
Setup — Authentication
Step 1: Check for existing credentials
if [ -f ~/.bria/credentials ]; then
BRIA_ACCESS_TOKEN=$(grep '^access_token=' "$HOME/.bria/credentials" | cut -d= -f2-)
BRIA_API_KEY=$(grep '^api_token=' "$HOME/.bria/credentials" | cut -d= -f2-)
fi
if [ -z "$BRIA_ACCESS_TOKEN" ]; then
echo "NO_CREDENTIALS"
elif [ -n "$BRIA_API_KEY" ]; then
echo "READY"
else
echo "CREDENTIALS_FOUND"
fi
READY→ skip to making API callsCREDENTIALS_FOUND→ skip to Step 3NO_CREDENTIALS→ proceed to Step 2
Step 2: Authenticate via device flow
Source the auth helper and run bria_auth:
source ~/.agents/skills/bria-ai/references/code-examples/bria_auth.sh
bria_auth
bria_auth will print SIGN_IN_URL=... and USER_CODE=.... Show the user exactly this — nothing more:
Connect your Bria account: Click here to sign in Your code is {USER_CODE} — it's already filled in.
Then wait; bria_auth polls automatically and prints AUTHENTICATED when done.
If it prints an error, the code expired — run bria_auth again.
Do not proceed with any API call until authentication is confirmed.
Step 3: Verify billing status and resolve API key
source ~/.agents/skills/bria-ai/references/code-examples/bria_auth.sh
bria_introspect
Interpret output:
BILLING_ERROR: ...— relay the message to the user verbatim and stop. Do not make any API calls.TOKEN_EXPIRED— tell the user their session expired and restart from Step 2.READY—BRIA_API_KEYis now cached in~/.bria/credentials. Proceed.
Decision Tree — Which Endpoint to Use
Transparent PNG / cutout / remove background?
→ /v2/image/edit/remove_background
Generate image from scratch (text → image)?
→ /v2/image/generate
Edit existing image with text instruction?
→ /v2/image/edit (use --key images)
Change / replace / blur background?
→ /v2/image/edit/replace_background (prompt: "blur" or describe new bg)
Place product in a lifestyle scene?
→ /v1/product/lifestyle_shot_by_text
Upscale / increase resolution?
→ /v2/image/edit/increase_resolution (scale: 2 or 4)
Anything else (restyle, relight, reseason, restore, colorize, sketch, blend, outpaint)?
→ See references/capabilities.md for the full endpoint list
How to Call Any Endpoint
source ~/.agents/skills/bria-ai/references/code-examples/bria_client.sh
# Generate (no image input)
RESULT=$(bria_call /v2/image/generate "" '"prompt": "your description", "aspect_ratio": "16:9", "sync": true')
# Remove background
RESULT=$(bria_call /v2/image/edit/remove_background "/path/to/local/image.png")
# Replace background
RESULT=$(bria_call /v2/image/edit/replace_background "https://example.com/img.jpg" '"prompt": "sunset beach"')
# Edit image (uses images array — pass --key images)
RESULT=$(bria_call /v2/image/edit "/path/to/image.png" --key images '"instruction": "make it look warmer"')
# Upscale
RESULT=$(bria_call /v2/image/edit/increase_resolution "https://example.com/img.jpg" '"scale": 4')
# Lifestyle shot
RESULT=$(bria_call /v1/product/lifestyle_shot_by_text "/path/to/product.png" '"scene_description": "modern kitchen countertop"')
echo "$RESULT"
Calling convention: bria_call [--key ] [extra JSON fields...]
- Pass a URL, local file path, or
""for endpoints without image input - Use
--key imageswhen the endpoint expects animagesarray instead ofimage - Returns the result image URL on success, or prints an error to stderr
Generation options: Aspect ratios 1:1, 16:9, 4:3, 9:16, 3:4. Resolution 1MP (default) or 4MP (more detail, +30s). Pass "sync": true for single images.
Advanced: For precise control over generation, use the vgl skill for structured VGL JSON prompts.
Common Failures
bria_callreturns empty / no URL →BRIA_API_KEYwas not set. Run Step 3 (bria_introspect) to cache it.- Async job times out → Some endpoints take 60–90s. If
bria_callreports a timeout, retry once; the job may have been queued. - ERROR 401 → API key is stale. Delete
~/.bria/credentialsand re-authenticate from Step 2. BILLING_ERROR→ Relay message to user verbatim, do not retry API calls.- Local file not found → Pass the absolute path;
bria_client.shhandles base64 encoding automatically. /v2/image/editreturns wrong result → Confirm--key imagesflag is present; this endpoint requires the images array format.
Resources
- Capabilities & Prompt Recipes — Full endpoint table, use-case recipes, and prompt engineering tips
- API Endpoints Reference — Complete parameter documentation for all 20+ endpoints
- Shell Client (bria_client.sh) —
bria_callhelper: auth, base64, JSON, polling - Auth Helper (bria_auth.sh) —
bria_authandbria_introspectfunctions - Full API docs for agents (llms.txt) — Agent-ready Bria API reference
Related Skills
- vgl — Structured VGL JSON prompts for precise, deterministic control over FIBO image generation
- image-utils — Classic image manipulation (resize, crop, composite, watermarks) for post-processing
Questions people ask
- What image tasks does it support?
- It covers text-to-image generation, instruction-based editing, background removal or replacement, product lifestyle shots, and 2× or 4× upscaling. Additional endpoints cover operations such as restyling, relighting, restoration, colorization, blending, and outpainting.
- Can it use local images as input?
- Yes. API calls can take a local file path or image URL; the included shell client automatically base64-encodes local files. Successful calls return the result image URL.
- How does authentication work?
- It uses a device sign-in flow, verifies billing status, resolves the API key, and caches credentials in ~/.bria/credentials. It stops before API calls if authentication is incomplete or a billing error is reported.
Related skills
Generate and edit images, character series, product visuals, and cohesive campaign sets from prompts or references.
Generate customizable adult portraits through an authenticated API with quota checks and multiple export formats.
Creates raster article covers with configurable composition, color, rendering, typography, mood, and aspect ratio.
Generate single images or parallel batches from prompts and references across multiple image APIs.
Creates approved brochure layouts, folded renders, and lifestyle mock-ups through a staged workflow.