Skip to main content
ArtEmotion
Image

Bria Product Shot

Credit-based pricing. Supports reference images, batch up to 4.

Bria Product Shot preview
Output
image
Max batch
4

Inputs

  • Reference image (required)
  • Batch up to 4 per request

Example prompt

Rustic wooden kitchen counter with fresh herbs and warm morning light
Try this prompt →
LLM-ready

API & LLM schema

Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/bria/product-shot.

POST/api/v1/generate27 fields · 2 required
FieldTypeRequirementContract
model_idconstantRequiredArtEmotion model identifier.
extraobjectOptionalModel-specific settings may also be nested here.
max_creditsnumberOptionalReject before submission if the estimated list price exceeds this cap. · Range: 1–…
webhook_urlstringOptionalFormat: uri
webhook_secretstringOptionalOptional model input.
folder_idstringOptionalOptional model input.
promptstringOptionalOptional model input.
modestringOptionalFast is quickest; High Control follows the scene description most closely. · Allowed: fast, base, high_control · Default: fast
placement_typestringOptionalControls how the product is positioned in the output image. · Allowed: original, automatic, automatic_aspect_ratio, manual_placement, manual_padding, custom_coordinates · Default: original
manual_placement_selectionstringOptionalWhich position to use when placement_type is manual_placement. · Allowed: upper_left, upper_right, bottom_left, bottom_right, right_center, left_center, upper_center, bottom_center, center_vertical, center_horizontal · Default: upper_left
shot_widthnumberOptionalWidth of the output product shot in pixels. · Default: 1000 · Range: 256–2048
shot_heightnumberOptionalHeight of the output product shot in pixels. · Default: 1000 · Range: 256–2048
padding_topnumberOptionalTop padding in pixels (only used when Placement Type = Manual Padding). · Default: 0 · Range: 0–2048
padding_rightnumberOptionalRight padding in pixels (Manual Padding only). · Default: 0 · Range: 0–2048
padding_bottomnumberOptionalBottom padding in pixels (Manual Padding only). · Default: 0 · Range: 0–2048
padding_leftnumberOptionalLeft padding in pixels (Manual Padding only). · Default: 0 · Range: 0–2048
optimize_descriptionbooleanOptionalLet Bria refine the scene description for better results. · Default: true
exclude_elementsstringOptionalElements to keep out of the generated scene (only applied when Optimize Description is on).
original_qualitybooleanOptionalPreserve the original product resolution/quality in the composite. · Default: false
force_rmbgbooleanOptionalRe-run background removal on the product image even if it already has an alpha channel. · Default: false
aspect_ratiostringOptionalOutput aspect ratio (only used when Placement Type = Automatic (Aspect Ratio)). · Allowed: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 · Default: 1:1
fg_widthnumberOptionalProduct width in pixels (Custom Coordinates only). · Default: 500 · Range: 1–2048
fg_heightnumberOptionalProduct height in pixels (Custom Coordinates only). · Default: 500 · Range: 1–2048
fg_xnumberOptionalProduct left offset in pixels (Custom Coordinates only). · Default: 0 · Range: 0–2048
fg_ynumberOptionalProduct top offset in pixels (Custom Coordinates only). · Default: 0 · Range: 0–2048
num_imagesintegerOptionalRange: 1–4
reference_image_urlsarray<string>RequiredItems: 0–2
Minimal request example
{
  "model_id": "fal-ai/bria/product-shot",
  "reference_image_urls": []
}
Raw JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fbria%2Fproduct-shot",
  "title": "Bria Product Shot generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/bria/product-shot.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/bria/product-shot",
      "description": "ArtEmotion model identifier."
    },
    "extra": {
      "type": "object",
      "additionalProperties": true,
      "description": "Model-specific settings may also be nested here."
    },
    "max_credits": {
      "type": "number",
      "minimum": 1,
      "description": "Reject before submission if the estimated list price exceeds this cap."
    },
    "webhook_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048
    },
    "webhook_secret": {
      "type": "string",
      "maxLength": 512
    },
    "folder_id": {
      "type": "string"
    },
    "prompt": {
      "type": "string"
    },
    "mode": {
      "title": "Mode",
      "description": "Fast is quickest; High Control follows the scene description most closely.",
      "default": "fast",
      "type": "string",
      "enum": [
        "fast",
        "base",
        "high_control"
      ]
    },
    "placement_type": {
      "title": "Placement Type",
      "description": "Controls how the product is positioned in the output image.",
      "default": "original",
      "type": "string",
      "enum": [
        "original",
        "automatic",
        "automatic_aspect_ratio",
        "manual_placement",
        "manual_padding",
        "custom_coordinates"
      ]
    },
    "manual_placement_selection": {
      "title": "Placement Position",
      "description": "Which position to use when placement_type is manual_placement.",
      "default": "upper_left",
      "type": "string",
      "enum": [
        "upper_left",
        "upper_right",
        "bottom_left",
        "bottom_right",
        "right_center",
        "left_center",
        "upper_center",
        "bottom_center",
        "center_vertical",
        "center_horizontal"
      ]
    },
    "shot_width": {
      "title": "Shot Width",
      "description": "Width of the output product shot in pixels.",
      "default": 1000,
      "type": "number",
      "minimum": 256,
      "maximum": 2048,
      "multipleOf": 1
    },
    "shot_height": {
      "title": "Shot Height",
      "description": "Height of the output product shot in pixels.",
      "default": 1000,
      "type": "number",
      "minimum": 256,
      "maximum": 2048,
      "multipleOf": 1
    },
    "padding_top": {
      "title": "Padding Top",
      "description": "Top padding in pixels (only used when Placement Type = Manual Padding).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "padding_right": {
      "title": "Padding Right",
      "description": "Right padding in pixels (Manual Padding only).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "padding_bottom": {
      "title": "Padding Bottom",
      "description": "Bottom padding in pixels (Manual Padding only).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "padding_left": {
      "title": "Padding Left",
      "description": "Left padding in pixels (Manual Padding only).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "optimize_description": {
      "title": "Optimize Description",
      "description": "Let Bria refine the scene description for better results.",
      "default": true,
      "type": "boolean"
    },
    "exclude_elements": {
      "title": "Exclude Elements",
      "description": "Elements to keep out of the generated scene (only applied when Optimize Description is on).",
      "type": "string"
    },
    "original_quality": {
      "title": "Original Quality",
      "description": "Preserve the original product resolution/quality in the composite.",
      "default": false,
      "type": "boolean"
    },
    "force_rmbg": {
      "title": "Force Background Removal",
      "description": "Re-run background removal on the product image even if it already has an alpha channel.",
      "default": false,
      "type": "boolean"
    },
    "aspect_ratio": {
      "title": "Scene Aspect Ratio",
      "description": "Output aspect ratio (only used when Placement Type = Automatic (Aspect Ratio)).",
      "default": "1:1",
      "type": "string",
      "enum": [
        "1:1",
        "2:3",
        "3:2",
        "3:4",
        "4:3",
        "4:5",
        "5:4",
        "9:16",
        "16:9"
      ]
    },
    "fg_width": {
      "title": "Product Width",
      "description": "Product width in pixels (Custom Coordinates only).",
      "default": 500,
      "type": "number",
      "minimum": 1,
      "maximum": 2048,
      "multipleOf": 1
    },
    "fg_height": {
      "title": "Product Height",
      "description": "Product height in pixels (Custom Coordinates only).",
      "default": 500,
      "type": "number",
      "minimum": 1,
      "maximum": 2048,
      "multipleOf": 1
    },
    "fg_x": {
      "title": "Product X",
      "description": "Product left offset in pixels (Custom Coordinates only).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "fg_y": {
      "title": "Product Y",
      "description": "Product top offset in pixels (Custom Coordinates only).",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 2048,
      "multipleOf": 1
    },
    "num_images": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 2
    }
  },
  "required": [
    "model_id",
    "reference_image_urls"
  ],
  "additionalProperties": false
}

FAQ

How much does Bria Product Shot cost on ArtEmotion?

Credit-based pricing. You pay in ArtEmotion credits — every plan and top-up converts USD to credits at a fixed rate.

Do I get my credits back if Bria Product Shot fails?

Yes — failed generations are never charged. The credits are released back to your balance automatically.

Can I call Bria Product Shot from the API?

Yes. Use POST /api/v1/generate with model_id: "fal-ai/bria/product-shot". See the API reference for the full schema.

Where are my generations stored?

Every output is saved to your personal Library. You can export or delete everything any time from Privacy & deletion.

Ready to generate with Bria Product Shot?

Start now →

No commitment. New accounts get 50 free credits on signup. See pricing.