## Overview

Conditions on a reference image plus a free-form camera descriptor (e.g. `low angle`, `dutch tilt`, `over-the-shoulder`). WM Studio's prompt-engineer composes the final prompt downstream. `image_url` is required — if missing or unreachable, the response returns `asset_url_required` with the public upload link.

Auth

oauth-jwt

Returns

{ imageUrl, generationId, creditsCharged, creditsRemaining, lowCreditsWarning? } — or `asset_url_required` / `upgrade_required` on gate failure.

Web client

src/app/[locale]/dashboard/creative-studio/tools/camera-angles/camera-angles-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_camera_angles",
  "arguments": {
    "prompt": "<prompt>",
    "camera": "<camera>",
    "image_url": "<image_url>"
  }
}
```

## Parameters

| Name                | Type   | Default | Description                                                          |
| ------------------- | ------ | ------- | -------------------------------------------------------------------- |
| promptrequired      | string | —       | Text description of the desired shot.                                |
| camerarequired      | string | —       | Free-form camera descriptor (`low angle`, `dutch tilt`, `over-the-shoulder`, …). |
| image_urlrequired   | string | —       | Public URL of the source image. Fabricated URLs are rejected by HEAD preflight. |
| model               | string | "fal-ai/flux/dev" | Provider/model id.                                               |
| aspect_ratio        | string | —       | Target aspect ratio.                                               |

## Examples

Low-angle hero shot

json

Copy

```
{
  "name": "studio_camera_angles",
  "arguments": {
    "prompt": "product hero shot, dramatic side light",
    "camera": "low angle",
    "image_url": "https://v3b.fal.media/files/.../product.jpg"
  }
}
```
