Overview
Takes a product image and an optional brand color palette (hex strings) and renders a luxury-grade marketing composition. product_image_url is required — if missing or unreachable, the response returns asset_url_required with the upload link.
Auth
oauth-jwt
Returns
{ imageUrl, generationId, creditsCharged, creditsRemaining, lowCreditsWarning? }
Web client
src/app/[locale]/dashboard/creative-studio/tools/moodgrid/moodgrid-nine-panel-client.tsx
MCP handler
mcp-director/src/tools/studio.py
Quick start
Invoke the tool over Streamable HTTP at {MCP_BASE_URL}/mcp/. The request below assumes you already minted an MCP JWT via the OAuth flow.
MCPcurlTypeScript
Copy
{
"name": "studio_brandshot",
"arguments": {
"prompt": "<prompt>",
"product_image_url": "<product_image_url>"
}
}
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| promptrequired | string | — | Scene/composition description. |
| product_image_urlrequired | string | — | Public URL of the product reference. Fabricated URLs rejected. |
| brand_palette | string[] | — | Hex color strings (e.g. ["#0A0A0A", "#F5F0E6", "#C79A52"]). |
| model | string | "fal-ai/flux/dev" | Provider/model id. |
| aspect_ratio | string | — | Target aspect ratio. |
Examples
Luxury marketing shot
json
Copy
{
"name": "studio_brandshot",
"arguments": {
"prompt": "minimalist beige pedestal, soft window light, marble surface, shallow depth of field",
"product_image_url": "https://v3b.fal.media/files/.../bottle.jpg",
"brand_palette": ["#0A0A0A", "#F5F0E6", "#C79A52"],
"aspect_ratio": "1:1"
}
}