bria/product-shot
Product Shot by Bria - AI-powered image editing, style transfer, and transformation. Edit photos with natural language instructions, remove backgrounds, change styles, and enhance images effortlessly.
PNG, JPEG, WebP, or GIF · 20 MiB maximum
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Example output — click Run to generate your own
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
https://api.sandbase.ai/v1/runbria/product-shotInput Schema
11 parameters · 1 required · 10 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
image | string | Required | The URL of the product shot to be placed in a lifestyle shot. If both image_url and image_file are provided, image_url will be used. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB. |
fast | boolean | Optional | Whether to use the fast model · Default: true |
shot_size | integer[] | Optional | 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=automatic or placement_type=manual_placement. · Default: [1000,1000] |
num_results | integer | Optional | 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. · Min: 1 · Max: 4 · Default: 1 |
ref_image_url | string | Optional | The URL of the reference image to be used for generating the new scene or background for the product shot. Use "" to leave empty.Either ref_image_url or scene_description has to be provided but not both. If both ref_image_url and ref_image_file are provided, ref_image_url will be used. Accepted formats are jpeg, jpg, png, webp. · Default: "" |
padding_values | integer[] | Optional | 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. |
placement_type | string | Optional | This parameter allows you to control the positioning of the product in the image. Choosing 'original' will preserve the original position of the product in the image. Choosing 'automatic' will generate results with the 10 recommended positions for the product. Choosing 'manual_placement' will allow you to select predefined positions (using the parameter 'manual_placement_selection'). Selecting 'manual_padding' will allow you to control the position and size of the image by defining the desired padding in pixels around the product. · Options: original, automatic, manual_placement, manual_padding · Default: "manual_placement" originalautomaticmanual_placementmanual_padding |
original_quality | boolean | Optional | 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. · Default: false |
scene_description | string | Optional | Text description of the new scene or background for the provided product shot. Bria currently supports prompts in English only, excluding special characters. |
optimize_description | boolean | Optional | Whether to optimize the scene description · Default: true |
manual_placement_selection | string | Optional | 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. · Options: upper_left, upper_right, bottom_left, bottom_right, right_center, left_center, upper_center, bottom_center, center_vertical, center_horizontal · Default: "bottom_center" upper_leftupper_rightbottom_leftbottom_rightright_centerleft_centerupper_centerbottom_centercenter_verticalcenter_horizontal |
Output Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom the completed response
Code Examples
Ready-to-run snippets
# Step 1: Submit
curl -X POST https://api.sandbase.ai/v1/run \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "bria/product-shot",
"fast": true,
"image": "https://static.sandbase.ai/examples/bria/product-shot/input_image_1.jpg",
"shot_size": [
1000,
1000
],
"num_results": 1,
"ref_image_url": "https://static.sandbase.ai/examples/bria/product-shot/input_ref_image_url_0.jpg",
"placement_type": "manual_placement",
"original_quality": false,
"scene_description": "on a rock, next to the ocean, dark theme",
"optimize_description": true,
"manual_placement_selection": "bottom_center",
"prompt": "a beautiful sunset over mountains"
}'
# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
-H "Authorization: Bearer YOUR_API_KEY"API README
Bria Product Shot
Bria Product Shot is built for turning a product asset into a polished studio-style merchandising image. It gives creative and production teams a focused way to move from an approved brief or source asset to a reviewable result without fragmenting the job across unrelated tools. The model is most valuable when visual intent, brand suitability, and downstream usability all matter, because its output can enter an editorial, campaign, product, or content pipeline as a purposeful asset rather than an isolated experiment.
In practice, teams can use Bria Product Shot during a structured cycle of briefing, generation, comparison, and refinement. Establish the subject, audience, visual objective, and acceptance criteria first; prepare any reference media at suitable quality; then evaluate alternatives for composition, continuity, realism, and communication value before delivery. This workflow keeps creative judgment central while making repeated production easier to review, reproduce, and scale for the specific bria/product-shot task.
Highlights
Studio lighting synthesis. Studio lighting synthesis gives bria › product shot a recognizable technical advantage: reviewers can assess this property directly in the generated asset instead of inferring it from request mechanics.
Product-detail preservation. bria › product shot applies product-detail preservation to the visual or temporal result itself, helping artists make a meaningful quality decision during selection and refinement.
Clean commercial framing. For bria › product shot, clean commercial framing supports coherent assets across the intended creative workflow and distinguishes this capability from a simple format or delivery option.
Catalog-ready presentation. The practical value of catalog-ready presentation is visible in the finished media from bria › product shot, where it supports repeatable art direction rather than merely exposing another request setting.
Pricing
| Billing basis | Price |
|---|---|
| Per request | $0.040000 |
When to Use
| ✅ Good fit | ❌ Consider alternatives |
|---|---|
| Use it when turning a product asset into a polished studio-style merchandising image is the central production goal | Choose a different model when the required media task is fundamentally different |
| The team needs several reviewable creative alternatives | Exact deterministic reproduction is mandatory |
| Visual quality and practical downstream use both matter | Editable source layers or native project files are required |
| A managed generation step fits the delivery workflow | A live frame-by-frame interactive editor is essential |
| The documented inputs cover the available source assets | Required source media or controls fall outside the documented fields |
Prompt Guide
State the intended result first, then describe the subject, environment, action, visual treatment, and delivery constraints. Keep instructions concrete, avoid conflicting directions, and change one creative variable at a time when comparing outputs. For source-driven work, describe what should remain recognizable as clearly as what should change.
{
"image": "https://static.sandbase.ai/examples/bria/product-shot/input_image_1.jpg"
}
Technical Specs
| Property | Details |
|---|---|
fast | Type / options: boolean<br>Required: No<br>Description: Whether to use the fast model |
image | Type / options: string<br>Required: Yes<br>Description: The URL of the product shot to be placed in a lifestyle shot. If both image_url and image_file are provided, image_url will be used. Accepted formats are jpeg, jpg, png, webp. Maximum file size 12MB. |
shot_size | Type / options: array<br>Required: No<br>Description: 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=automatic or placement_type=manual_placement. |
num_results | Type / options: integer · 1–4<br>Required: No<br>Description: 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. |
ref_image_url | Type / options: string<br>Required: No<br>Description: The URL of the reference image to be used for generating the new scene or background for the product shot. Use "" to leave empty.Either ref_image_url or scene_description has to be provided but not both. If both ref_image_url and ref_image_file are provided, ref_image_url will be used. Accepted formats are jpeg, jpg, png, webp. |
padding_values | Type / options: array<br>Required: No<br>Description: 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. |
placement_type | Type / options: string · original / automatic / manual_placement / manual_padding<br>Required: No<br>Description: This parameter allows you to control the positioning of the product in the image. Choosing 'original' will preserve the original position of the product in the image. Choosing 'automatic' will generate results with the 10 recommended positions for the product. Choosing 'manual_placement' will allow you to select predefined positions (using the parameter 'manual_placement_selection'). Selecting 'manual_padding' will allow you to control the position and size of the image by defining the desired padding in pixels around the product. |
original_quality | Type / options: boolean<br>Required: No<br>Description: 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. |
scene_description | Type / options: string<br>Required: No<br>Description: Text description of the new scene or background for the provided product shot. Bria currently supports prompts in English only, excluding special characters. |
optimize_description | Type / options: boolean<br>Required: No<br>Description: Whether to optimize the scene description |
manual_placement_selection | Type / options: string · upper_left / upper_right / bottom_left / bottom_right / right_center / left_center / upper_center / bottom_center / center_vertical / center_horizontal<br>Required: No<br>Description: 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. |
Related Models
bria/background/removebria/background/replacebria/embed-product

