mcpbeat Sign in

Fal AI Image Skill for Claude

Generate/edit images via fal.ai. Supports Google Nano Banana Pro and OpenAI GPT Image 2 selected from config/.env. Supports reference images and strong text rendering. ALWAYS read SKILL.md before first use.

12k tokens
context cost
the whole folder, loaded on every use
14
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
175
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/artwist-polyakov/polyakov-claude-skills --skill fal-ai-image

What comes with it

41 123 bytes besides the instruction
.gitignore
config/.env.example
config/README.md
references/EDITING.md
references/MODELS.md
scripts/common.sh
scripts/edit.sh
scripts/generate.sh
scripts/tests/run.sh
scripts/tests/test_config_selector.sh
scripts/tests/test_edit_openai_mask.sh
scripts/tests/test_openai_image_size.sh
scripts/upload.sh

The instruction itself

16 sections, as written by the author

fal-ai-image

Generate images via fal.ai. The skill now supports two fal-hosted models:

  • Google Nano Banana Pro (fal-ai/nano-banana-pro) — default, backward-compatible
  • OpenAI GPT Image 2 (openai/gpt-image-2) — enabled from config/.env

Synonyms the agent should treat as equivalent:

  • gpt = openai = GPT Image 2
  • nano banana = google = gemini = Nano Banana Pro

Best for: infographics, text rendering, banners, photo edits, reference-based compositions.

STOP — Read Before Acting

  • DO NOT use Pillow, ImageMagick, or post-processing for text/logo overlay unless the user explicitly asked for that workflow
  • DO NOT use Generate mode when the user provided reference images — use Edit mode
  • DO NOT assume GPT is active — check config/README.md logic; if no selector is configured, the skill stays on Nano Banana
  • DO NOT guess provider-specific params — Nano Banana and GPT Image 2 use different schemas
  • DO pass --model ... when the user explicitly asks for a specific model/provider or asks to compare providers
  • DO NOT skip uploading local files — run upload.sh first to get URLs for edit.sh

Quick Start Decision

Reference images provided?  -> Edit mode   (upload.sh -> edit.sh)
Text-only generation?       -> Generate mode (generate.sh)

Model comes from config/.env:
  no selector set           -> Nano Banana Pro
  FAL_IMAGE_PROVIDER=openai -> GPT Image 2
  FAL_IMAGE_MODEL=...       -> exact override

Config

Requires FAL_KEY in config/.env or the environment.

Model selection:

  • --model — one-off override for the current command
  • FAL_IMAGE_MODEL — exact override in config
  • FAL_IMAGE_PROVIDERgoogle or openai
  • nothing set — default to Nano Banana Pro

Use --model whenever the user explicitly says things like:

  • "сделай через GPT"
  • "используй OpenAI"
  • "сделай через Google / Gemini / Nano Banana"
  • "какие тут есть провайдеры?"

Answer that the skill supports two choices and map the command like this:

  • --model gpt for OpenAI GPT Image 2
  • --model gemini or --model nano-banana for Nano Banana

OpenAI quality default:

  • FAL_IMAGE_OPENAI_QUALITY=medium unless overridden with --quality
  • this skill intentionally uses medium as the default for GPT to avoid expensive exploratory runs

Full setup and troubleshooting: config/README.md.

Read references only when needed:

  • references/MODELS.md — selector precedence, aliases, cost heuristics
  • references/EDITING.md — generate vs edit, mask_url, inpainting behavior

Model Notes

Nano Banana Pro

Strengths:

  • lower-friction default for existing installs
  • strong text rendering, including Cyrillic
  • good at infographics, banners, and mixed text/image layouts
  • supports --web-search in generate mode

Main params:

  • --aspect-ratio
  • --resolution
  • --web-search (generate only)

OpenAI GPT Image 2

Strengths:

  • stronger prompt adherence and fine-grained edits
  • better photorealism and product-style renders
  • native quality control
  • uses the same FAL_KEY through fal, no separate OpenAI key
  • current fal pricing is size/quality-dependent; a rough high-quality mental model is about $0.18 per image, but check the live model page before quoting an exact number

Main params:

  • --image-size
  • --quality

Compatibility layer:

  • if --image-size is omitted, the scripts derive a valid OpenAI image_size from --aspect-ratio + --resolution
  • this lets old prompts continue working after the provider switch in config

Workflow

Generate mode

  • Decide model from config
  • Clarify missing params only if needed:
  • Nano Banana: aspect ratio, resolution
  • GPT Image 2: image size and quality
  • Propose save path based on project structure
  • Run generate.sh
  • Parse result JSON, report URL and local files if downloaded

Edit mode

  • Get reference images:
  • URL already available -> use directly
  • local file -> upload.sh
  • Decide model from config
  • Clarify edit intent
  • Run edit.sh
  • Parse result JSON, report URL and local files if downloaded

Scripts

generate.sh

Nano Banana example:

sh scripts/generate.sh \
  --model "gemini" \
  --prompt "infographic about coffee brewing" \
  --aspect-ratio "9:16" \
  --resolution "1K" \
  --output-dir "./images" \
  --filename "coffee_infographic"

GPT Image 2 example:

sh scripts/generate.sh \
  --model "gpt" \
  --prompt "realistic product hero shot with sharp packaging text" \
  --image-size "landscape_4_3" \
  --quality "medium" \
  --output-dir "./images" \
  --filename "product_hero"

Compatibility example for GPT:

sh scripts/generate.sh \
  --model "openai" \
  --prompt "editorial portrait, window light, magazine cover layout" \
  --aspect-ratio "4:3" \
  --resolution "2K"

| Param | Required | Default | Notes |

|-------|----------|---------|-------|

| --prompt | yes | - | text prompt |

| --model | no | config / Nano Banana fallback | nano-banana, google, gemini, gpt, openai, or exact endpoint |

| --aspect-ratio | no | 1:1 | Nano native; for GPT used only when --image-size is omitted |

| --resolution | no | 1K | Nano native; for GPT used only when --image-size is omitted |

| --image-size | no | derived from ratio/resolution | GPT only; preset (landscape_4_3) or WIDTHxHEIGHT |

| --quality | no | medium via config | GPT only; low, medium, high |

| --num-images | no | 1 | 1-4 |

| --output-format | no | png | jpeg, png, webp |

| --output-dir | no | - | local path |

| --filename | no | generated | base filename |

| --web-search | no | false | Nano only; ignored for GPT |

edit.sh

Nano Banana example:

sh scripts/edit.sh \
  --model "gemini" \
  --prompt "combine these into a collage" \
  --image-urls "https://example.com/img1.png,https://example.com/img2.png" \
  --aspect-ratio "16:9" \
  --output-dir "./images" \
  --filename "collage"

GPT Image 2 example:

sh scripts/edit.sh \
  --model "gpt" \
  --prompt "make this product shot look like a premium studio campaign" \
  --image-urls "https://example.com/source.png" \
  --mask-url "https://example.com/mask.png" \
  --image-size "auto" \
  --quality "medium" \
  --output-dir "./images" \
  --filename "studio_edit"

| Param | Required | Default | Notes |

|-------|----------|---------|-------|

| --prompt | yes | - | edit instruction |

| --image-urls | yes | - | comma-separated URLs |

| --model | no | config / Nano Banana fallback | nano-banana, google, gemini, gpt, openai, or exact endpoint |

| --mask-url | no | - | GPT edit only; optional mask for targeted edits |

| --aspect-ratio | no | auto | Nano native; for GPT used only when --image-size is omitted |

| --resolution | no | 1K | Nano native; for GPT used only when --image-size is omitted |

| --image-size | no | derived from ratio/resolution / auto | GPT only |

| --quality | no | medium via config | GPT only |

| --num-images | no | 1 | 1-4 |

| --output-format | no | png | jpeg, png, webp |

| --output-dir | no | - | local path |

| --filename | no | edited | base filename |

upload.sh

# Get hosted URL for local file
URL=$(sh scripts/upload.sh --file /path/to/image.png)

# Get base64 data URI for manual API work
URI=$(sh scripts/upload.sh --file /path/to/image.png --base64)

Cost Guidance

  • Nano Banana Pro is the cheaper and safer default for quick iterations
  • GPT Image 2 cost depends heavily on quality and image_size
  • this skill defaults GPT to medium quality to reduce surprise spend

For current pricing, check fal's model pages in config/README.md.

Notes

  • result URLs expire in roughly one hour — download locally if you need persistence
  • uploaded files on fal storage are temporary
  • edit.sh now polls the same /edit queue endpoints documented by fal

Other skills for the same job

different authors, same section of the catalogue
Canvas Design
by anthropics
vendor ×13

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

1388k tokens
Algorithmic Art
by anthropics
vendor ×10

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

15k tokens scripts
Image Enhancer
by frostant
×6

Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.

635 tokens
Video Downloader
by CommandCodeAI
×4

Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.

671 tokens
Histolab
by christophacham
×3

Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.

18k tokens
Omero Integration
by christophacham
×3

Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.

32k tokens
Pydicom
by christophacham
×3

Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.

13k tokens scripts
Transformers
by christophacham
×3

This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.

13k tokens

How to use it

Copy the folder

Take artwist-polyakov/fal-ai-image from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.