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/
This capability allows you to create a precise cutout of a product from any given image. This feature is especially valuable for eCommerce platforms and applications, serving as a fundamental building block for crafting a user-friendly interface.
This API endpoint supports content moderation via an optional parameter that can prevent processing if input images contain inappropriate content or if the modified output would contain inappropriate content.
The URL of the image containing the product to be cut out. 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 image file containing the product to be cut out, in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
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 output images:
https://engine.prod.bria-api.com/v1/product/cutout
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/cutout \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"sku": "12345",
"image_url": "URL"
}'
{ "result_url": "URL" }
The Product Pack Shot feature is designed to create professional standard pack shots. The output is a 2000x2000 px image, with the product size and location according to best practices. This feature can allow users to take any photo of a product and transform it into a professional pack shot, placing the product on a clean, seamless background, typically white but customizable to any color.
This API endpoint supports content moderation via an optional parameter that can prevent processing if input images contain inappropriate content or if the modified output would contain inappropriate content.
The URL of the product image or product cutout. 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 product image or product cutout file, in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
The background hex color code for the pack shot. Optionally, use 'transparent' for a transparent background. This parameter is optional.
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 output images:
https://engine.prod.bria-api.com/v1/product/packshot
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/packshot \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"sku": "12345",
"image_url": "URL",
"background_color": "#FFFFFF"
}'
{ "result_url": "URL" }
The Product Shadow API allows you to add consistent and customizable shadow to a product cutout. This feature is designed to work in combination with other capabilities like product cutout, product packshot and product lifestyle shots, enhancing the visual appeal of e-commerce and product imagery.
If the product image isn't a product cutout, you should use the product cutout API first. The product shadow API accepts a product cutout as input. Once you have a product cutout with a shadow, you can use it in product packshot or product lifestyle shot APIs, where needed.
This API endpoint supports content moderation via an optional parameter that can prevent processing if input images contain inappropriate content or if the modified output would contain inappropriate content.
The URL of the product image or product cutout. 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 input image must have a transparent background, could be obtained by using our background removal or cutout features.
The product image or product cutout file, in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB. The input image must have a transparent background, could be obtained by using our background removal or cutout features.
Specifies the type of shadow. It can be 'regular' or 'float'. This parameter is optional.
The background hex color code for the resulting image. If you would like to get a transparent background, don't include this parameter in the request. This parameter is optional.
Controls the position of the shadow relative to the object, in pixels. Accepts a tuple-like list [x, y]
where x and y can be positive or negative values. This parameter is optional.
Adjusts the intensity of the shadow. This parameter is optional.
Controls the blur level of the shadow's edges. This parameter is optional. Default for 'shadow_type'=regular is 15, while for 'shadow_type'=float is 20.
(For floating shadows) Controls the width of the elliptical shadow, in pixels that could be positive and negative. As default the value is according to the width of the product. This parameter is optional.
(For floating shadows) Controls the height of the elliptical shadow, in pixels that could be positive and negative. This parameter is optional.
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 output images:
https://engine.prod.bria-api.com/v1/product/shadow
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/shadow \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"sku": "12345",
"image_url": "URL"
}'
{ "result_url": "URL" }
Creates enriched product shots by placing them in various environments using textual descriptions.
This endpoint allows adjusting the background of a product by replacing it with a solid color. You can specify a hex color code (e.g., #FF5733) in the scene_description to control the background color. This feature is only available when generating a single result (num_results=1).
Additionally, you can change the image size of the final result as well as the positioning of the product in the image. This will enable you to create new and unique variations of your original image.
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 product shot to be placed in a lifestyle 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 product shot file to be placed in a lifestyle 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 product 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 lifestyle product 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/lifestyle_shot_by_text
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/lifestyle_shot_by_text \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "IMAGE_URL",
"scene_description": "In a living room interior, on a kitchen counter",
"placement_type": "original",
"num_results": 2,
"original_quality": true,
"optimize_description": true,
"sync": true
}'
Successful operation
The array contains the results created in the request. In each result, the first value represents the URL of the result, the second value represents the seed, and the third value represents the session id of the result. It will take a few seconds for the image to become available via the URL if sync=false. You can recreate the same result in the future by using the seed as part of the request.
When content_moderation is true:
{ "result": [ [ … ], [ … ] ] }
Generates enriched product shots by placing them in visually compelling environments, guided by a reference image.
Additionally, you can change the image size of the final result as well as the positioning of the product in the image. This will enable you to create new and unique variations of your original image. 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.
The URL of the product shot to be placed in a lifestyle 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 product shot file to be placed in a lifestyle shot, in base64 format. Used if image_url is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
The URL of the reference image to be used for generating the lifestyle shot. If both ref_image_urls and ref_image_file are provided, ref_image_urls will be used. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
The reference image file to be used for generating the lifestyle shot, in base64 format. Only a single refernce image is supported at the moment. Used if ref_image_urls is not provided. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB.
When set to True, enhances the reference image by applying adjustments, such as lighting, shadows, and texture refinements, to produce more realistic and visually cohesive results. When enabled, this may also incorporate subtle elements from the reference image into the generated background for added authenticity.
Controls the degree of similarity between the generated background and the reference image, where 0.0 produces minimal resemblance and 1.0 creates a highly similar output.
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 (and not the reference image 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/lifestyle_shot_by_image
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/lifestyle_shot_by_image \
-H 'Content-Type: application/json' \
-H 'api_token: string' \
-d '{
"image_url": "IMAGE_URL",
"ref_image_urls": "IMAGE_URL",
"placement_type": "original",
"num_results": 2,
"original_quality": true,
"optimize_description": true,
"sync": true
}'
Successful operation
The array contains the results created in the request. In each result, the first value represents the URL of the result, the second value represents the seed, and the third value represents the session id of the result. It will take a few seconds for the image to become available via the URL if sync=false. You can recreate the same result in the future by using the seed as part of the request.
When content_moderation is true:
{ "result": [ [ … ], [ … ] ] }
Description This feature allows users to create consistent product shots by providing either a textual description of a scene or an image, along with a group of product images. The resulting consistent product shots are ideal for use on social media, eCommerce websites, product catalogs, and other marketing materials, ensuring a uniform and professional appearance across all platforms.
https://engine.prod.bria-api.com/v1/products/consistent_shots
curl -i -X POST \
https://engine.prod.bria-api.com/v1/products/consistent_shots
Description This feature allows users to extract relevant keywords from an image and its context, focusing on the primary product rather than secondary elements. This capability enhances search optimization in eCommerce by ensuring that the keywords accurately represent the product being sold. It can be particularly useful for improving product searchability on eCommerce websites, enhancing SEO for product listings, automating content management, and optimizing social media marketing efforts.
https://engine.prod.bria-api.com/v1/product/contextual_keyword_extraction
curl -i -X POST \
https://engine.prod.bria-api.com/v1/product/contextual_keyword_extraction