## 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"
  }
}
```
