Back to Skills
    🦞

    fal-text-to-image

    Generate, remix, and edit images using fal.ai's AI

    By @delorenj
    View on GitHub
    SKILL.md
    ---
    name: fal-text-to-image
    description: Generate, remix, and edit images using fal.ai's AI models. Supports text-to-image generation, image-to-image remixing, and targeted inpainting/editing.
    ---
    
    # fal.ai Image Generation & Editing Skill
    
    Professional AI-powered image workflows using fal.ai's state-of-the-art models including FLUX, Recraft V3, Imagen4, and more.
    
    ## Three Modes of Operation
    
    ### 1. Text-to-Image (fal-text-to-image)
    Generate images from scratch using text prompts
    
    ### 2. Image Remix (fal-image-remix)
    Transform existing images while preserving composition
    
    ### 3. Image Edit (fal-image-edit)
    Targeted inpainting and masked editing
    
    ## When to Use This Skill
    
    Trigger when user:
    - Requests image generation from text descriptions
    - Wants to transform/remix existing images with AI
    - Needs to edit specific regions of images (inpainting)
    - Wants to create images with specific styles (vector, realistic, typography)
    - Needs high-resolution professional images (up to 2K)
    - Wants to use a reference image for style transfer
    - Mentions specific models like FLUX, Recraft, or Imagen
    - Asks for logo, poster, or brand-style image generation
    - Needs object removal or targeted modifications
    
    ## Quick Start
    
    ### Text-to-Image: Generate from Scratch
    ```bash
    # Basic generation
    uv run python fal-text-to-image "A cyberpunk city at sunset with neon lights"
    
    # With specific model
    uv run python fal-text-to-image -m flux-pro/v1.1-ultra "Professional headshot"
    
    # With style reference
    uv run python fal-text-to-image -i reference.jpg "Mountain landscape" -m flux-2/lora/edit
    ```
    
    ### Image Remix: Transform Existing Images
    ```bash
    # Transform style while preserving composition
    uv run python fal-image-remix input.jpg "Transform into oil painting"
    
    # With strength control (0.0=original, 1.0=full transformation)
    uv run python fal-image-remix photo.jpg "Anime style character" --strength 0.6
    
    # Premium quality remix
    uv run python fal-image-remix -m flux-1.1-pro image.jpg "Professional portrait"
    ```
    
    ### Image Edit: Targeted Modifications
    ```bash
    # Edit with mask image (white=edit area, black=preserve)
    uv run python fal-image-edit input.jpg mask.png "Replace with flowers"
    
    # Auto-generate mask from text
    uv run python fal-image-edit input.jpg --mask-prompt "sky" "Make it sunset"
    
    # Remove objects
    uv run python fal-image-edit photo.jpg mask.png "Remove object" --strength 1.0
    
    # General editing (no mask)
    uv run python fal-image-edit photo.jpg "Enhance lighting and colors"
    ```
    
    ## Model Selection Guide
    
    The script intelligently selects the best model based on task context:
    
    ### **flux-pro/v1.1-ultra** (Default for High-Res)
    - **Best for**: Professional photography, high-resolution outputs (up to 2K)
    - **Strengths**: Photo realism, professional quality
    - **Use when**: User needs publication-ready images
    - **Endpoint**: `fal-ai/flux-pro/v1.1-ultra`
    
    ### **recraft/v3/text-to-image** (SOTA Quality)
    - **Best for**: Typography, vector art, brand-style images, long text
    - **Strengths**: Industry-leading benchmark scores, precise text rendering
    - **Use when**: Creating logos, posters, or text-heavy designs
    - **Endpoint**: `fal-ai/recraft/v3/text-to-image`
    
    ### **flux-2** (Best Balance)
    - **Best for**: General-purpose image generation
    - **Strengths**: Enhanced realism, crisp text, native editing
    - **Use when**: Standard image generation needs
    - **Endpoint**: `fal-ai/flux-2`
    
    ### **flux-2/lora** (Custom Styles)
    - **Best for**: Domain-specific styles, fine-tuned variations
    - **Strengths**: Custom style adaptation
    - **Use when**: User wants specific artistic styles
    - **Endpoint**: `fal-ai/flux-2/lora`
    
    ### **flux-2/lora/edit** (Style Transfer)
    - **Best for**: Image-to-image editing with style references
    - **Strengths**: Specialized style transfer
    - **Use when**: User provides reference image with `-i` flag
    - **Endpoint**: `fal-ai/flux-2/lora/edit`
    
    ### **imagen4/preview** (Google Quality)
    - **Best for**: High-quality general images
    - **Strengths**: Google's highest quality model
    - **Use when**: User specifically requests Imagen or Google models
    - **Endpoint**: `fal-ai/imagen4/preview`
    
    ### **stable-diffusion-v35-large** (Typography & Style)
    - **Best for**: Complex prompts, typography, style control
    - **Strengths**: Advanced prompt understanding, resource efficiency
    - **Use when**: Complex multi-element compositions
    - **Endpoint**: `fal-ai/stable-diffusion-v35-large`
    
    ### **ideogram/v2** (Typography Specialist)
    - **Best for**: Posters, logos, text-heavy designs
    - **Strengths**: Exceptional typography, realistic outputs
    - **Use when**: Text accuracy is critical
    - **Endpoint**: `fal-ai/ideogram/v2`
    
    ### **bria/text-to-image/3.2** (Commercial Safe)
    - **Best for**: Commercial projects requiring licensed training data
    - **Strengths**: Safe for commercial use, excellent text rendering
    - **Use when**: Legal/licensing concerns matter
    - **Endpoint**: `fal-ai/bria/text-to-image/3.2`
    
    ## Command-Line Interface
    
    ```bash
    uv run python fal-text-to-image [OPTIONS] PROMPT
    
    Arguments:
      PROMPT                    Text description of the image to generate
    
    Options:
      -m, --model TEXT         Model to use (see model list above)
      -i, --image TEXT         Path or URL to reference image for style transfer
      -o, --output TEXT        Output filename (default: generated_image.png)
      -s, --size TEXT          Image size (e.g., "1024x1024", "landscape_16_9")
      --seed INTEGER           Random seed for reproducibility
      --steps INTEGER          Number of inference steps (model-dependent)
      --guidance FLOAT         Guidance scale (higher = more prompt adherence)
      --help                   Show this message and exit
    ```
    
    ## Authentication Setup
    
    Before first use, set your fal.ai API key:
    
    ```bash
    export FAL_KEY="your-api-key-here"
    ```
    
    Or create a `.env` file in the skill directory:
    ```env
    FAL_KEY=your-api-key-here
    ```
    
    Get your API key from: https://fal.ai/dashboard/keys
    
    ## Advanced Examples
    
    ### High-Resolution Professional Photo
    ```bash
    uv run python fal-text-to-image \
      -m flux-pro/v1.1-ultra \
      "Professional headshot of a business executive in modern office" \
      -s 2048x2048
    ```
    
    ### Logo/Typography Design
    ```bash
    uv run python fal-text-to-image \
      -m recraft/v3/text-to-image \
      "Modern tech startup logo with text 'AI Labs' in minimalist style"
    ```
    
    ### Style Transfer from Reference
    ```bash
    uv run python fal-text-to-image \
      -m flux-2/lora/edit \
      -i artistic_style.jpg \
      "Portrait of a woman in a garden"
    ```
    
    ### Reproducible Generation
    ```bash
    uv run python fal-text-to-image \
      -m flux-2 \
      --seed 42 \
      "Futuristic cityscape with flying cars"
    ```
    
    ## Model Selection Logic
    
    The script automatically selects the best model when `-m` is not specified:
    
    1. **If `-i` provided**: Uses `flux-2/lora/edit` for style transfer
    2. **If prompt contains typography keywords** (logo, text, poster, sign): Uses `recraft/v3/text-to-image`
    3. **If prompt suggests high-res needs** (professional, portrait, headshot): Uses `flux-pro/v1.1-ultra`
    4. **If prompt mentions vector/brand**: Uses `recraft/v3/text-to-image`
    5. **Default**: Uses `flux-2` for general purpose
    
    ## Output Format
    
    Generated images are saved with metadata:
    - Filename includes timestamp and model name
    - EXIF data stores prompt, model, and parameters
    - Console displays generation time and cost estimate
    
    ## Troubleshooting
    
    | Problem | Solution |
    |---------|----------|
    | `FAL_KEY not set` | Export FAL_KEY environment variable or create .env file |
    | `Model not found` | Check model name against supported list |
    | `Image reference fails` | Ensure image path/URL is accessible |
    | `Generation timeout` | Some models take longer; wait or try faster model |
    | `Rate limit error` | Check fal.ai dashboard for usage limits |
    
    ## Cost Optimization
    
    - **Free tier**: FLUX.2 offers 100 free requests (expires Dec 25, 2025)
    - **Pay per use**: FLUX Pro charges per megapixel
    - **Budget option**: Use `flux-2` or `stable-diffusion-v35-large` for general use
    - **Premium**: Use `flux-pro/v1.1-ultra` only when high-res is required
    
    ## Image Remix: Model Selection Guide
    
    Available models for image-to-image remixing:
    
    ### **flux-2/dev** (Default, Free)
    - **Best for**: General remixing, style transfer, fast iteration
    - **Strengths**: Balanced quality/speed, 100 free requests
    - **Use when**: Standard remixing needs
    - **Endpoint**: `fal-ai/flux/dev/image-to-image`
    
    ### **flux-pro** (Premium Quality)
    - **Best for**: Professional remixing, high-quality outputs
    - **Strengths**: Superior quality, realistic transformations
    - **Use when**: Professional or publication-ready remixes
    - **Endpoint**: `fal-ai/flux-pro`
    
    ### **flux-1.1-pro** (Ultra Premium)
    - **Best for**: Highest quality remixing with maximum detail
    - **Strengths**: Ultra-high quality, exceptional detail preservation
    - **Use when**: Premium projects requiring best possible output
    - **Endpoint**: `fal-ai/flux-pro/v1.1`
    
    ### **recraft/v3** (Vector/Illustration)
    - **Best for**: Vector style, brand imagery, illustration remixing
    - **Strengths**: Clean vector outputs, brand-style transformations
    - **Use when**: Converting to illustration or vector style
    - **Endpoint**: `fal-ai/recraft/v3/text-to-image`
    
    ### **stable-diffusion-v35** (Artistic)
    - **Best for**: Artistic styles, painting effects, creative remixing
    - **Strengths**: Strong artistic style application
    - **Use when**: Artistic or stylized transformations
    - **Endpoint**: `fal-ai/stable-diffusion-v35-large`
    
    ## Image Remix: Command-Line Interface
    
    ```bash
    uv run python fal-image-remix [OPTIONS] INPUT_IMAGE PROMPT
    
    Arguments:
      INPUT_IMAGE               Path or URL to source image
      PROMPT                    How to transform the image
    
    Options:
      -m, --model TEXT         Model to use (auto-selected if not specified)
      -o, --output TEXT        Output filename (default: remixed_TIMESTAMP.png)
      -s, --strength FLOAT     Transformation strength 0.0-1.0 (default: 0.75)
                               0.0 = preserve original, 1.0 = full transformation
      
    
    ... (truncated)