set_product_image
ActiveTool of Hermoso
Lock an image as the ad's real PRODUCT photo so every render grounds on the true packaging. Pass `imageUrl` = a product shot's URL — an image from a prior research result (an organic Instagram/TikTok post, a scraped page image), a workspace / list_product_photos url, or any public product photo. The server downloads it and runs a product+safety check: a lifestyle/scene shot with no clear product, or an off-category / unsafe image, is REJECTED and NOTHING is locked (the summary says why). On PASS it persists the photo to a DURABLE url and returns it — pass that url as a reference to generate_image / render_ad. Bills one vision check. Reads YOUR saved brand for the category match (pass brandId to target a specific brand — switches this key's active brand like use_brand).
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"imageUrl"
],
"properties": {
"brandId": {
"type": "string",
"description": "a brand id/name from list_brands to lock the product for; omit to use the active brand"
},
"imageUrl": {
"type": "string",
"description": "the image URL to lock as the product (from a research result, a workspace / list_product_photos url, or any public product photo)"
},
"source_note": {
"type": "string",
"description": "a short note on where it came from, e.g. \"from their IG post\""
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Hermoso
https://github.com/hermoso-ai/hermoso
1/7 registries