fal-ai-medialisted
Install: claude install-skill Mixard/fable-pack
# fal.ai Media Generation
## MCP Setup
Add to `~/.claude.json` (API key from fal.ai):
```json
"fal-ai": {
"command": "npx",
"args": ["-y", "fal-ai-mcp-server"],
"env": { "FAL_KEY": "YOUR_FAL_KEY_HERE" }
}
```
MCP tools: `search` (find models by keyword), `find` (model details/parameters), `generate` (run a model), `result` / `status` (async job state), `cancel`, `estimate_cost`, `models` (list popular), `upload` (upload local files for use as inputs).
## Image Models
| app_id | Use for |
|--------|---------|
| `fal-ai/nano-banana-2` | fast iteration, drafts, image editing |
| `fal-ai/nano-banana-pro` | production quality, realism, typography |
```
generate(
app_id: "fal-ai/nano-banana-2",
input_data: {
"prompt": "a futuristic cityscape at sunset, cyberpunk style",
"image_size": "landscape_16_9",
"num_images": 1,
"seed": 42
}
)
```
Image parameters:
| Param | Type | Values | Notes |
|-------|------|--------|-------|
| `prompt` | string | required | |
| `image_size` | string | `square`, `portrait_4_3`, `landscape_16_9`, `portrait_16_9`, `landscape_4_3` | |
| `num_images` | number | 1-4 | |
| `seed` | number | any integer | reproducibility |
| `guidance_scale` | number | 1-20 | higher = more literal prompt adherence |
| `image_url` | string | URL | source image for editing/style transfer |
Image editing (inpainting, outpainting, style transfer) with Nano Banana 2: `upload(file_path: "/path/to/image.png")` first, then pass the returned URL as