vm0-ai

fal.ai

fal.ai AI image generation. Use this skill when you need to use fal, fal.ai, or generate images from text prompts using AI text-to-image models.

vm0-ai 77 19 Updated 8mo ago
GitHub

Install

npx skillscat add vm0-ai/vm0-skills/fal-ai

Install via the SkillsCat registry.

About this skill

We need to produce a 2-3 sentence plain-text summary, objective, factual, no marketing language, no superlatives, no calls to action, no bullet points, no headings, no markdown formatting, no quotes. At most 60 words. Must be only the summary text. We need to explain what the skill does, what problem it solves, when to use it. So something like: "The skill provides access to the fal.ai API for generating images from textual prompts. It solves the need to create visual content programmatically without managing model infrastructure.

SKILL.md

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

  1. Sign up at fal.ai
  2. 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

1. 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'

2. 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'

3. 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'

4. 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'

5. 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

6. 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'

7. 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'

8. 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:

  1. Be specific - Describe the subject clearly
  2. Add style hints - "modern", "minimalist", "photorealistic", "digital art", "cinematic"
  3. Specify colors/mood - "blue and purple gradient", "warm tones", "dark and moody"
  4. Keep it concise - Clear and focused descriptions work better