Bria’s Product Shot Editing APIs gives builders powerful tools to streamline visual content creation — enabling developers to automate and enhance product shots with more control, flexibility, and realism.
Core capabilities include product cutouts, customizable backgrounds for professional packshots, consistent shadow rendering, and AI-powered lifestyle shots using both text and reference images.
Automotive Product Shot Editing
As a first step, we’ve introduced dedicated support for automotive workflows — adding vehicle-specific features such as realistic reflection generation, tire and wheel refinement, environmental effects (e.g., fog, dust, snow), and harmonization presets.
These capabilities are designed to reduce manual work and help teams create high-quality vehicle visuals faster, with more creative control. Support for additional product categories is coming soon.
https://engine.prod.bria-api.com/v1/
Creates enriched automotive product shots by placing vehicles in realistic environments using textual descriptions.
This endpoint includes vehicle-specific enhancements that adapt the background scene to match automotive contexts, specifically - snow, sand, and grass. It embeds the vehicle into the environment for a natural, grounded appearance.
You can adjust the image size and control the positioning of the vehicle within the frame. This allows you to generate new and unique variations of the original image for different commercial or creative needs.
This API endpoint supports content moderation via an optional parameter that can prevent processing if input images contain inappropriate content, and filters out unsafe modified images — the first blocked input image will fail the entire request.
Determines the response mode. When true, responses are synchronous. With false, responses are asynchronous, immediately providing URLs for images that are generated in the background. It is recommended to use sync=false for optimal performance. When generating more than 1 result, you should use the value false. When placement_type is automatic, sync has to be false.
Determines the generation mode. When true, the generation will utilize the fast mode which provides the best balance between speed and quality. The false, the regular mode will be utilized.
The URL of the vehicle to be placed in the shot. If both image_url and file are provided, image_url will be used. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
The vehicle file to be placed in the shot, in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
Text description of the new scene or background for the provided vehicle shot. Bria currently supports prompts in English only, excluding special characters.
When true, an additional logic takes the scene_description that was included and adjusts it to achieve optimal results. Built with Meta Llama 3.
The number of vehicle shots you would like to generate. You will get num_results x 10 results when placement_type=automatic and according to the number of required placements x num_results if placement_type=manual_placement.
Elements or features that should be excluded from the generated scene. This parameter is optional and is available only when fast=false. Bria currently supports descriptions in English only, excluding special characters.
This parameter allows you to control the positioning of the product in the image.
This flag is only relevant when placement_type=original. If true, the output image retains the original input image's size; otherwise, the image is scaled to 1 megapixel (1MP) while preserving its aspect ratio.
The desired size of the final product shot. For optimal results, the total number of pixels should be around 1,000,000. This parameter is only relevant when placement_type is automatic,manual_placement or custom_coordinates.
Specifies the desired dimensions of the foreground image within the generated output. The size is defined as an array of integers representing [width, height] in pixels. This parameter is only relevant when placement_type is custom_coordinates.
Specifies the desired [x, y] coordinates for positioning the foreground image within the full shot. The coordinates represent the upper-left corner of the foreground image. Values can extend outside the shot, in which case the input image will be cropped accordingly. This parameter is only relevant when placement_type is custom_coordinates.
If you've selected placement_type=manual_placement, you should use this parameter to specify which placements/positions you would like to use from the list. You can select more than one placement in one request.
The desired padding in pixels around the product, when using placement_type=manual_padding. The order of the values is [left, right, top, bottom]. For optimal results, the total number of pixels, including padding, should be around 1,000,000. It is recommended to first use the product cutout API, get the cutout and understand the size of the result, and then define the required padding and use the cutout as an input for this API.
Forces background removal, even if the original image already contains an alpha channel. Useful for refining existing foreground/background separation or ignoring unnecessary alpha channels.
When enabled, applies content moderation to both input visuals and modified outputs.
For input images:
For synchronous requests (sync=true):
For asynchronous requests (sync=false):
https://engine.prod.bria-api.com/v1/product/vehicle/shot_by_text
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/shot_by_text \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/car.png",
"scene_description": "A vehicle on a coastal road at sunset",
"placement_type": "original",
"num_results": 2,
"optimize_description": true,
"fast": true
}'
{ "result_url": "URL" }
Generates segmentation masks for specific vehicle parts from an input image, enabling further enhancements such as reflection generation or wheel refinement.
This endpoint returns separate binary masks for each segmented region, including windows, wheels, and body parts. If a specific part is not detected in the image, it will be returned with an empty URL.
The API supports input via image URL or base64-encoded image file, and also includes optional content moderation.
The URL of the image containing the vehicle to segment. If both image_url and file are provided, image_url will be used. Accepted formats are jpeg, jpg, png, webp. Max file size 12MB.
https://engine.prod.bria-api.com/v1/product/vehicle/segment
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/segment \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/car.jpeg"
}'
{ "windshield": "https://example.com/masks/windshield.png", "rear_window": "", "side_windows": "https://example.com/masks/side_windows.png", "body": "https://example.com/masks/body.png", "wheels": "https://example.com/masks/wheels.png", "hubcap": "https://example.com/masks/hubcap.png", "tires": "https://example.com/masks/tires.png" }
Generates realistic reflections on relevant surfaces of a product image, such as glass, metal, or glossy materials.
Reflection masks can be provided manually or generated automatically using our segmentation tools.
The output includes an updated image with applied reflections and optional reflection layers per region.
The URL of the vehicle shot. If both image_url and file are provided, image_url will be used. Accepted formats are jpeg, jpg, png, webp. Max file size 12MB.
The vehicle shot file in base64 format. Used only if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Max file size 12MB.
An object containing URLs to binary masks for each region to apply reflections on. Accepted keys are windshield
, rear_window
, side_windows
, body
, wheels
.
If true, returns separate images per region along with the full composite. If false, only the full image is returned.
https://engine.prod.bria-api.com/v1/product/vehicle/generate_reflections
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/generate_reflections \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/car.jpg",
"masks": {
"windshield": "https://example.com/masks/windshield.png",
"side_windows": "https://example.com/masks/side_windows.png",
"body": "https://example.com/masks/body.png",
"wheels": "https://example.com/masks/wheels.png"
},
"layers": true,
"seed": 42
}'
{ "url": "https://example.com/results/full_image_with_reflections.png", "seed": 123 }
The URL of the image containing the vehicle. If both image_url and file are provided, image_url takes precedence. Accepted formats are jpeg, jpg, png, webp.
The image file in base64 format. Used only if image_url is not provided. Accepted formats are jpeg, jpg, png, webp.
https://engine.prod.bria-api.com/v1/product/vehicle/refine_tires
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/refine_tires \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/car.jpg",
"masks": {
"tires": "https://example.com/masks/tires.png"
},
"layers": true
}'
{ "url": "https://example.com/results/full_image_refined_1.png", "seed": 123 }
The URL of the vehicle image. If both image_url and file are provided, image_url is used. Accepted formats are jpeg, jpg, png, webp.
The vehicle image in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp.
The visual effect to apply to the image. Supported values are dust, snow, fog, light leaks, lens flare.
If true, returns only the effect layer. If false, returns the full image with the effect composited.
https://engine.prod.bria-api.com/v1/product/vehicle/apply_effect
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/apply_effect \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/vehicle.jpg",
"effect": "fog",
"layers": false,
"seed": 42
}'
{ "url": "https://example.com/results/full_image_refined_1.png", "seed": 123 }
Applies predefined lighting and tone presets to match the product image with a desired environmental context.
Available presets include hot-day, cold-day, hot-night, and cold-night. These harmonization styles help unify the subject with its background for a consistent and visually appealing result.
The URL of the vehicle image. If both image_url and file are provided, image_url takes precedence. Accepted formats are jpeg, jpg, png, webp.
The vehicle image in base64 format. Used only if image_url is not provided. Accepted formats are jpeg, jpg, png, webp.
https://engine.prod.bria-api.com/v1/product/vehicle/harmonize
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/vehicle/harmonize \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "https://example.com/images/car_side_view.png",
"preset": "cold-day"
}'
{ "url": "https://example.com/results/full_image_refined_1.png" }