fal.ai Image Generator
Use the fal.ai API to generate images from text prompts.
Official docs: https://fal.ai/docs
When to Use
Use this skill when you need to:
-
Generate images from text descriptions
-
Create illustrations or visual content
-
Generate blog headers, thumbnails, or social media images
Prerequisites
-
Sign up at fal.ai
-
Get your API key from the dashboard
export FAL_KEY="your-api-key"
Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...' . Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.
bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'
How to Use
- Generate Image (nano-banana-pro - fast)
Write to /tmp/fal_request.json :
{ "prompt": "A futuristic city at sunset, cyberpunk style" }
Then run:
bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Generate Image (flux/schnell - fast)
Write to /tmp/fal_request.json :
{ "prompt": "A cute cat eating a cookie" }
Then run:
bash -c 'curl -s -X POST "https://fal.run/fal-ai/flux/schnell" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Generate Image (recraft-v3 - high quality)
Write to /tmp/fal_request.json :
{ "prompt": "Abstract art, vibrant colors" }
Then run:
bash -c 'curl -s -X POST "https://fal.run/fal-ai/recraft-v3" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Generate with Custom Size
Write to /tmp/fal_request.json :
{ "prompt": "Mountain landscape", "image_size": "landscape_16_9" }
Then run:
bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Download Generated Image
Write to /tmp/fal_request.json :
{ "prompt": "A minimalist workspace" }
Then run:
bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url' | xargs curl -sL -o /tmp/image.png
- Pipe Prompt from Echo (JSON escaped)
echo "A dragon breathing fire, epic fantasy art" | jq -Rs '{prompt: .}' > /tmp/fal_request.json bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Pipe Prompt from File (JSON escaped)
cat /tmp/prompt.txt | jq -Rs '{prompt: .}' > /tmp/fal_request.json bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
- Pipe with Additional Parameters
echo "Neon city at night" | jq -Rs '{prompt: ., image_size: "landscape_16_9"}' > /tmp/fal_request.json bash -c 'curl -s -X POST "https://fal.run/fal-ai/nano-banana-pro" --header "Authorization: Key ${FAL_KEY}" --header "Content-Type: application/json" -d @/tmp/fal_request.json' | jq -r '.images[0].url'
Available Models
Model Description
nano-banana-pro
Fast, good quality (recommended)
flux/schnell
Fast generation
flux-pro
High quality
recraft-v3
High quality vector/illustration
See more at: https://fal.ai/models
Image Sizes
Size Aspect Ratio
square
1:1
square_hd
1:1 (high res)
portrait_4_3
4:3
portrait_16_9
16:9
landscape_4_3
3:4
landscape_16_9
9:16
Prompt Guidelines
For best results:
-
Be specific - Describe the subject clearly
-
Add style hints - "modern", "minimalist", "photorealistic", "digital art", "cinematic"
-
Specify colors/mood - "blue and purple gradient", "warm tones", "dark and moody"
-
Keep it concise - Clear and focused descriptions work better