Product Shot Editing is built to automate “commerce-grade” workflows: cutouts, packshots, consistent shadows, and lifestyle scenes (via text or reference image).
Before using the specific endpoints, it helps to understand the recommended workflow. Think in building blocks:
- Cutout (creates a clean alpha)
- Shadow (optional: adds consistent grounding)
- Output (creates a Packshot or Lifestyle scene)
Q: Why is this pipeline important?
The /shadow endpoint is explicitly designed to work with /cutout, /packshot, or Lifestyle endpoints. If your input isn’t already a clean cutout with a transparent background, you must use /cutout first to ensure high-quality edges in the final render.
The general recommendation is sync: false (async) for optimal performance. Async is required when using placement_type: automatic or when num_results > 1. Use sync: true only for simple single-result requests where you need an immediate response (like quick prototyping).
Use this whenever you need a clean product foreground (alpha channel) for reliable downstream composition. The output image is automatically cropped around the subject. The v2 cutout endpoint produces identical results with the v2 contract (async, image input, webhooks); new integrations should prefer it.
Q: What makes cutouts look better downstream?
Best practices for input photos:
- High contrast between product and background (even if the background is messy).
- Avoid motion blur on edges (handles, hair-like fibers, transparent glass rims).
- Ensure the product is fully inside the frame (no cropped edges).
Q: When should I force background removal even if there’s already an alpha channel?
Use force_rmbg=true if the input alpha channel is low-quality (haloing / jagged edges) or if the alpha includes unwanted transparent regions.
Add a shadow when you want the product to feel grounded and consistent across a catalog. Requires a transparent-background cutout (alpha) as input.
Q: “Regular” vs “Float” shadow — which should users choose?
Use type="regular" for products that naturally sit on a surface (bottles, boxes, shoes). Use type="float" for “hover” aesthetics, beauty ads, or when you want an elliptical studio shadow.
Q: What are the 3 most important knobs for realism?
- shadow_offset: Keep consistent direction across your whole catalog (e.g., [0, 15] default).
- shadow_blur: Softer edges = more studio-like; too sharp looks cut-out.
- shadow_intensity: Keep modest; over-dark shadows look pasted.
Avoid adding a standalone shadow if your next step is /image/edit/product/integrate or /product/lifestyle_shot_by_text. Those endpoints handle blending and shadowing natively.
Use when you need a “store-ready” catalog asset. The endpoint outputs a professional standard 2000×2000 image with best-practice product sizing and placement.
Q: What is the best workflow to create a professional packshot?
Use this three-step pipeline:
/product/cutout— isolate the product with a clean alpha./product/shadow— add a realistic, consistent shadow./product/packshot— output the final asset.
Skipping cutout risks poor edge quality. Skipping shadow produces a floating, ungrounded look.
Q: How do users get the cleanest packshots?
Start from a clean cutout, avoid extreme perspective distortion (like wide-angle phone shots), and use background_color intentionally (e.g., #FFFFFF for marketplaces, a brand hex code for hero tiles, or transparent for UI compositing).
Use when you want Bria to generate a fitting lifestyle background around your product based on a text description. Crucially, it preserves full product integrity—the product itself isn’t regenerated, keeping labels, textures, and logos exactly as-is.
Q: What's the best workflow for exploring and finalizing a lifestyle shot?
Use a three-phase approach:
- Phase A (Explore): Use
placement_type: automatic,high_controlmode, andoptimize_description: trueto generate multiple layout and scene variants. - Phase B (Lock composition): Pick the best placement and switch to
manual_placementormanual_paddingfor precision. - Phase C (Finalize): Lock the placement and description, then vary
num_resultsto generate final alternatives.
Q: What's the single most important rule for writing a `scene_description`?
Write it like a photography brief: Product + Scene + Connection + Lighting + Palette + Framing.
The connection is especially important. Describe how the product physically relates to the surface (e.g., "resting on", "surrounded by"). Example: "A dark glass perfume bottle resting on a marble bathroom shelf, surrounded by soft eucalyptus sprigs. Soft diffused morning light from the left..."
Q: Which background generation mode should users pick?
Use high_control (~90–110 words) for polished, creative marketing results. Use fast or base (~50–60 words) when high-throughput speed and strict product preservation are the top priorities.
The placement_type controls both the product position and the canvas size/whitespace.
Q: How should users choose the right placement mode?
- original: Keep product framing exactly as-is.
- automatic: Explore multiple layout options at once.
- manual_placement: Use predictable marketing compositions (Rule of Thirds).
- manual_padding: Control exact whitespace around the product.
- custom_coordinates: Match exact design templates.
- automatic_aspect_ratio: Generate assets for a specific ratio (e.g., 16:9, 9:16).
When using manual_placement, selecting left_center, right_center, upper_center, or bottom_center automatically aligns the product with the Rule of Thirds grid. This is highly recommended for ads, social media, and banners that require copy space.
Q: Which size parameter should I use?
It depends on your placement type:
- original: No size parameter needed.
- automatic, manual_placement, custom_coordinates: Use
shot_size(e.g., [1000, 1000]). - automatic_aspect_ratio: Use
aspect_ratio. - manual_padding: Size is implicitly defined by your padding values `[left, right, top, bottom]`.
Use when you have a reference image that defines the scene (room, surface, visual style) and want the result to inherit that look rather than describing it in words.
Q: How does this differ from Lifestyle by Text?
There is no scene_description and no generation modes (fast/high_control). Instead, it uses ref_image_influence to control similarity (0.0 to 1.0).
Q: What are the best practices for reference strength?
If you want the exact positioning/place, start high (0.75–0.9). If you want an abstract style match without copying literal objects, start mid (0.5–0.75).
Q: What does `enhance_ref_image` do?
When true, it refines lighting, shadows, and textures for authenticity. However, if it introduces unwanted artifacts or hallucinates details, set it to false.
Embed one or more products into a predefined scene at exact user-defined coordinates, while matching lighting, perspective, and aesthetics.
Q: How do users get realistic integration?
Make sure coordinates match the scene perspective (e.g., product size must be consistent with table depth). Iterate with a fixed seed until placement is correct, then vary the seed for alternative harmonizations.
When the workflow needs extra automation upstream (prompting, layout planning, QA) rather than just better pixels, consider integrating other models alongside Bria:
Q: How can LLMs improve Bria workflows?
- Prompt Generation: Use an LLM to generate 10–30
scene_descriptionvariants from a brand brief, then run Bria inhigh_controlmode. (Note: Bria already includesoptimize_descriptionbuilt with Meta Llama 3). - Automatic Placement: Use a vision model to detect surfaces/planes in an image, then feed those exact coordinates to
/image/edit/product/integrate. - Batch QA: Use a vision model to score generated outputs for artifacts or brand rules before publishing.