Workflows
Composable recipes that chain Widemile MCP tools end-to-end — from a single prompt all the way to a finished brand campaign.
One ask, full campaign
The MCP exposes individual tools (studio_generate_image, studio_brandshot, studio_generate_video, …) and the LLM orchestrates them. Ask Claude something like “research product X and build a full brand campaign” and it will plan and fire the right sequence on its own — each call returns a hosted asset URL the next call consumes.
User: Research the AirPods Pro 3 and build me a full brand campaign —
hero shot, 3 angle variants, an in-context lifestyle image, and a 5s motion ad.
Claude (plans + fires tool calls automatically):
1. (web_search) → product info + reference image URL
2. studio_brandshot → hero shot
3. studio_camera_angles × 3 → low / dutch / over-the-shoulder
4. studio_ugc_room → desk-in-context lifestyle still
5. studio_generate_video (image-to-video) → 5s motion ad from the hero
Returned to user: 5 hosted asset URLs + creditsRemaining.Generate → refine
The bread-and-butter pipeline: prompt → image → composition refinement.
// 1. Generate
{ "name": "studio_generate_image",
"arguments": {
"prompt": "espresso machine on a marble counter, soft morning light",
"model": "fal-ai/flux/dev",
"aspect_ratio": "4:3"
} }
// 2. Expand the returned image URL for a wider layout
{ "name": "studio_expand_image",
"arguments": {
"image_url": "https://v3b.fal.media/files/.../out.jpg",
"direction": "horizontal",
"amount_pixels": 384
} }Photo → angle exploration
Each call renders one shot from one explicit camera descriptor. To explore an angle set, fire the tool repeatedly with different camera values (low angle, dutch tilt, over-the-shoulder, …). Claude does this fan-out automatically when you ask for “multiple angles”.
{
"name": "studio_camera_angles",
"arguments": {
"prompt": "intimate portrait, cinematic 35mm look",
"camera": "low angle",
"image_url": "https://v3b.fal.media/files/.../portrait.jpg"
}
}{
"name": "studio_brandshot",
"arguments": {
"prompt": "premium espresso, slow rituals, modernist still life, calm editorial mood",
"product_image_url": "https://v3b.fal.media/files/.../packshot.jpg",
"brand_palette": ["#3B2A20", "#F5EFE6", "#C79A52"],
"aspect_ratio": "1:1"
}
}Cast a character → UGC
Cast once with studio_casting, then reuse the front portrait as a character lock for UGC variations.
// 1. Cast a character from a structured profile (no photo needed)
{ "name": "studio_casting",
"arguments": {
"character_name": "Maya",
"prompt": "studio portrait, soft Rembrandt lighting",
"character_profile": {
"genderIdentity": "female",
"hairStyle": "shoulder-length wavy",
"hairColor": "auburn",
"outfitStyle": "tailored beige trench coat",
"characterArchetype": "detective"
}
} }
// 2. UGC scene with the product
{ "name": "studio_ugc_room",
"arguments": {
"prompt": "morning commute, focused-work vibes, soft city light",
"product_image_url": "https://v3b.fal.media/files/.../headphones.jpg",
"room_style": "minimalist home office"
} }Image → video
Lift a still into motion with an image-to-video model.
// 1. Image to video
{ "name": "studio_generate_video",
"arguments": {
"prompt": "slow dolly-in, golden hour reflection on the mug",
"model": "fal-ai/kling-video/v2.6/pro/image-to-video",
"image_url": "https://v3b.fal.media/files/.../mug.jpg",
"duration": 5
} }Image → 3D asset
Turn a packshot into a GLB suitable for AR or engine import.
{
"name": "studio_convert_to_3d",
"arguments": {
"image_url": "https://v3b.fal.media/files/.../sneaker.jpg"
}
}