Overview

Renders a single character casting portrait from a structured profile. Accepts WM Studio's casting schema (genderIdentity, raceEthnicity, eyeColor, hairStyle, outfitStyle, cinematicGenre, characterArchetype, eraSetting, …). All profile keys are optional and unknown keys are sanitized away. No reference image required.

Auth

oauth-jwt

Returns

{ imageUrl, generationId, creditsCharged, creditsRemaining, lowCreditsWarning? }

Web client

src/app/[locale]/dashboard/creative-studio/tools/casting/casting-tool-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_casting",
  "arguments": {
    "character_name": "<character_name>",
    "prompt": "<prompt>"
  }
}

Parameters

Name Type Default Description
character_name string — Display name for the character (e.g. Ada).
prompt string — Casting brief (e.g. studio portrait, soft Rembrandt lighting, neutral grey backdrop).
character_profile object — WM Studio casting schema keys: characterType, genderIdentity, raceEthnicity, eyeColor, heightCm, weightKg, bodyType, hairStyle, hairTexture, hairColor, facialHair, outfitStyle, outfitDetails, cinematicGenre, characterArchetype, eraSetting.
model string "fal-ai/flux/dev" Provider/model id.
aspect_ratio string — Target aspect ratio.

Examples

Cast a noir detective

json

Copy

{
  "name": "studio_casting",
  "arguments": {
    "character_name": "Ada",
    "prompt": "studio portrait, soft Rembrandt lighting, neutral grey backdrop",
    "character_profile": {
      "genderIdentity": "female",
      "eyeColor": "hazel",
      "hairStyle": "shoulder-length wavy",
      "hairColor": "auburn",
      "outfitStyle": "tailored beige trench coat",
      "cinematicGenre": "noir",
      "characterArchetype": "detective"
    }
  }
}