Shot by Image - Manual Placement
Put the product where you say
- image
- ref_image
- output_image
ShotByImageManualPlacement (shown as Shot by Image - Manual Placement) is the product-shot node for when the automatic composition keeps missing the mark. Same engine as the rest of the ShotByImage family - product photo plus reference image, Bria builds the scene - but instead of the model deciding where the product sits, you pick from ten named positions, and the scene is generated around that placement.
Automatic variants are great for scouting. But when you need the product anchored top-right for a text overlay, or dead-center for a thumbnail, guessing is a wasted API call. This node turns placement into a dropdown, and the model works the background around your choice rather than the other way around.
How it works
Inputs: image (product), ref_image (scene reference), shot_size (default 1000, 1000 as width, height), and manual_placement_selection - one of ten positions:
upper_left,upper_right,bottom_left,bottom_rightleft_center,right_center,upper_center,bottom_centercenter_vertical,center_horizontal
It calls Bria's /v1/product/lifestyle_shot_by_image endpoint with the manual_placement placement type. The shared controls apply: enhance_ref_image (default true), ref_image_influence (0–1, default 1.0), force_rmbg, content_moderation. One output: output_image.
Installing it
Part of the BRIA AI API nodes pack (Bria-AI/ComfyUI-BRIA-API). ComfyUI Manager → search BRIA API → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Bria-AI/ComfyUI-BRIA-API
Restart ComfyUI; it's under API Nodes. No model downloads, no GPU - cloud call needing a BRIA API token from platform.bria.ai, billed per generation.
Practical notes
The ten positions are a fixed vocabulary - there's no "a bit to the left of center" option. If a named position is close but not exact, remember the Custom Coordinates variant lets you type the exact pixel location instead. And shot_size still sets the canvas, so position + size together define the composition; if the product comes out larger or smaller than you imagined, that's the shot_size you set, not a flaw in the placement. Keep seed fixed while you tune so you're comparing like for like.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | BRIA_API_TOKEN | — |
| image | IMAGE | — | |
| ref_image | IMAGE | — | |
| shot_size | STRING | 1000, 1000 | — |
| manual_placement_selection | COMBO | upper_left | 10 options: upper_left, upper_right, bottom_left, bottom_right, right_center, left_center, +4 |
| force_rmbgopt | BOOLEAN | false | — |
| content_moderationopt | BOOLEAN | false | — |
| enhance_ref_imageopt | BOOLEAN | true | — |
| ref_image_influenceopt | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_image | IMAGE | — |