fal-text-to-image

v2026.09.24

Complete fal.ai text-to-image system. PROACTIVELY activate for: (1) FLUX.1/2 Pro/Dev/Schnell generation, (2) SDXL and Fast SDXL, (3) Image size presets (square_hd, landscape_16_9), (4) Guidance scale and inference steps, (5) LoRA model application, (6) Seed for reproducibility, (7) Batch generation (num_images), (8) Ideogram for text in images, (9) Recraft for design assets. Provides: Model endpoints, parameter reference, prompt engineering, quality vs speed trade-offs. Ensures optimal text-to-image generation.

GitHub
Install command
npx skhub add josiahsiegel/fal-text-to-image
Markdown
SKILL.md

Quick Reference

ModelEndpointSpeedQualityCost
FLUX.2 Profal-ai/flux-2-proMediumHighest$$$
FLUX.1 Devfal-ai/flux/devMediumHigh$$
FLUX Schnellfal-ai/flux/schnellFastGood$
Fast SDXLfal-ai/fast-sdxlFastGood$
Image SizePresetDimensions
Square HDsquare_hd1024x1024
Landscapelandscape_16_91024x576
Portraitportrait_16_9576x1024
Custom{ width, height }Any
ParameterFLUX DefaultSDXL Default
guidance_scale3.57.5
num_inference_steps2825
num_images11

When to Use This Skill

Use for text-to-image generation:

  • Generating images from text prompts
  • Choosing between FLUX and SDXL models
  • Configuring image sizes and quality parameters
  • Using LoRA models for custom styles
  • Batch generating multiple images

Related skills:

  • For image editing: see fal-image-to-image
  • For model comparison: see fal-model-guide
  • For API integration: see fal-api-reference

fal.ai Text-to-Image Models

Complete reference for all text-to-image generation models on fal.ai.

FLUX Models

FLUX.1 [dev]

Endpoint: fal-ai/flux/dev Pricing: $0.025/megapixel Best For: High-quality open-source generation

The 12B parameter FLUX.1 model offers excellent quality with open-source accessibility.

import { fal } from "@fal-ai/client";

const result = await fal.subscribe("fal-ai/flux/dev", {
  input: {
    prompt: "A serene Japanese garden with cherry blossoms, koi pond, wooden bridge, soft morning light",
    image_size: "landscape_16_9",
    num_inference_steps: 28,
    guidance_scale: 3.5,
    num_images: 1,
    seed: 42,
    enable_safety_checker: true,
    output_format: "jpeg"
  }
});

console.log(result.images[0].url);
import fal_client

result = fal_client.subscribe(
    "fal-ai/flux/dev",
    arguments={
        "prompt": "A serene Japanese garden with cherry blossoms",
        "image_size": "landscape_16_9",
        "num_inference_steps": 28,
        "guidance_scale": 3.5,
        "num_images": 1,
        "seed": 42,
        "enable_safety_checker": True,
        "output_format": "jpeg"
    }
)
print(result["images"][0]["url"])

FLUX Schnell

Endpoint: fal-ai/flux/schnell Pricing: Lower cost per image Best For: Fast iteration, previews, 4-step generation

Optimized for speed with only 4 inference steps required.

const result = await fal.subscribe("fal-ai/flux/schnell", {
  input: {
    prompt: "A colorful abstract painting",
    image_size: "square_hd",
    num_inference_steps: 4,  // Optimized for 4 steps
    num_images: 1
  }
});

FLUX Pro

Endpoint: fal-ai/flux-pro Pricing: Premium Best For: Production workloads

const result = await fal.subscribe("fal-ai/flux-pro", {
  input: {
    prompt: "Professional product photography of a luxury watch",
    image_size: "square_hd",
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});

FLUX.2 [pro]

Endpoint: fal-ai/flux-2-pro Pricing: $0.03/megapixel Best For: Highest quality, automatic prompt enhancement

The latest FLUX model with built-in prompt optimization.

const result = await fal.subscribe("fal-ai/flux-2-pro", {
  input: {
    prompt: "A majestic lion in the savanna at golden hour",
    image_size: "landscape_16_9",
    num_inference_steps: 28,
    guidance_scale: 3.5,
    // FLUX 2 Pro features
    safety_tolerance: "2",  // 1-6, higher = more permissive
    raw: false  // Set true to disable prompt enhancement
  }
});

FLUX.2 Pro Specific Parameters:

  • safety_tolerance: 1-6, controls content filtering sensitivity
  • raw: Boolean, set to true to disable automatic prompt enhancement

FLUX LoRA

Endpoint: fal-ai/flux-lora Best For: Custom trained styles and subjects

Apply custom LoRA models to FLUX generation.

const result = await fal.subscribe("fal-ai/flux-lora", {
  input: {
    prompt: "A portrait in the style of <lora_trigger>",
    loras: [
      {
        path: "https://huggingface.co/user/lora-model/resolve/main/lora.safetensors",
        scale: 0.8
      }
    ],
    image_size: "portrait_4_3",
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});

LoRA Parameters:

  • loras: Array of LoRA configurations
    • path: URL to LoRA weights (.safetensors)
    • scale: 0-1, strength of LoRA effect

FLUX Realism

Endpoint: fal-ai/flux-realism Best For: Photorealistic images

const result = await fal.subscribe("fal-ai/flux-realism", {
  input: {
    prompt: "A photorealistic portrait of a young woman, natural lighting, 85mm lens",
    image_size: "portrait_4_3",
    num_inference_steps: 28
  }
});

FLUX Fill (Outpainting)

Endpoint: fal-ai/flux-pro/v1/fill Best For: Extending images beyond boundaries

const result = await fal.subscribe("fal-ai/flux-pro/v1/fill", {
  input: {
    prompt: "Continue the landscape with mountains",
    image_url: "https://example.com/partial-image.jpg",
    mask_url: "https://example.com/outpaint-mask.png"
  }
});

Stable Diffusion Models

Fast SDXL

Endpoint: fal-ai/fast-sdxl Best For: Speed and cost efficiency

const result = await fal.subscribe("fal-ai/fast-sdxl", {
  input: {
    prompt: "A fantasy castle on a cliff, dramatic lighting",
    negative_prompt: "blurry, low quality, distorted",
    image_size: "landscape_16_9",
    num_inference_steps: 25,
    guidance_scale: 7.5,
    num_images: 1,
    seed: 42
  }
});

SDXL-Specific Parameters:

  • negative_prompt: What to avoid in generation
  • Higher guidance_scale (7-12) works better for SDXL

Stable Diffusion 3 Medium

Endpoint: fal-ai/stable-diffusion-v3-medium Best For: SD3 architecture, good text rendering

const result = await fal.subscribe("fal-ai/stable-diffusion-v3-medium", {
  input: {
    prompt: "A sign that says 'Hello World' in neon lights",
    negative_prompt: "blurry, distorted text",
    image_size: "square_hd",
    num_inference_steps: 28,
    guidance_scale: 7.0
  }
});

SDXL Turbo

Endpoint: fal-ai/sdxl-turbo Best For: Ultra-fast, single-step generation

const result = await fal.subscribe("fal-ai/sdxl-turbo", {
  input: {
    prompt: "A cute robot",
    num_inference_steps: 1,  // Single step!
    guidance_scale: 0  // No guidance needed
  }
});

SDXL Lightning

Endpoint: fal-ai/fast-lightning-sdxl Best For: Fast 4-step SDXL

const result = await fal.subscribe("fal-ai/fast-lightning-sdxl", {
  input: {
    prompt: "A beautiful sunset",
    num_inference_steps: 4,
    guidance_scale: 1.5
  }
});

Specialized Models

Recraft V3

Endpoint: fal-ai/recraft-v3 Best For: Design assets, illustrations, vector-style

const result = await fal.subscribe("fal-ai/recraft-v3", {
  input: {
    prompt: "A minimalist logo for a tech startup, clean lines",
    image_size: "square_hd",
    style: "digital_illustration"  // or "realistic_image", "vector_illustration"
  }
});

Recraft Styles:

  • realistic_image
  • digital_illustration
  • vector_illustration
  • icon

Ideogram

Endpoint: fal-ai/ideogram Best For: Text in images, typography

const result = await fal.subscribe("fal-ai/ideogram", {
  input: {
    prompt: "A vintage poster with the text 'JAZZ FESTIVAL' in art deco style",
    aspect_ratio: "portrait_4_3"
  }
});

Playground v2.5

Endpoint: fal-ai/playground-v25 Best For: Creative, artistic images

const result = await fal.subscribe("fal-ai/playground-v25", {
  input: {
    prompt: "A surreal dreamscape with floating islands",
    image_size: "landscape_16_9",
    guidance_scale: 3.0
  }
});

AuraFlow

Endpoint: fal-ai/aura-flow Best For: Open-source flow-based model

const result = await fal.subscribe("fal-ai/aura-flow", {
  input: {
    prompt: "A magical forest with bioluminescent plants",
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});

Kolors

Endpoint: fal-ai/kolors Best For: Artistic, colorful generations

const result = await fal.subscribe("fal-ai/kolors", {
  input: {
    prompt: "A vibrant street market in Morocco",
    image_size: "landscape_4_3"
  }
});

Common Parameters Reference

Image Size Options

PresetDimensionsAspect Ratio
square512x5121:1
square_hd1024x10241:1
portrait_4_3768x10243:4
portrait_16_9576x10249:16
landscape_4_31024x7684:3
landscape_16_91024x57616:9

Custom Dimensions:

image_size: { width: 1920, height: 1080 }

Complete Parameter Reference

interface TextToImageInput {
  // Required
  prompt: string;

  // Image dimensions
  image_size?:
    | "square" | "square_hd"
    | "portrait_4_3" | "portrait_16_9"
    | "landscape_4_3" | "landscape_16_9"
    | { width: number; height: number };

  // Generation parameters
  num_inference_steps?: number;  // 1-50, default varies by model
  guidance_scale?: number;       // 1-20, default: 3.5 (FLUX) or 7.5 (SDXL)
  num_images?: number;           // 1-4, default: 1
  seed?: number;                 // For reproducibility

  // Output options
  output_format?: "jpeg" | "png";
  enable_safety_checker?: boolean;

  // SDXL-specific
  negative_prompt?: string;

  // FLUX 2 Pro specific
  safety_tolerance?: string;     // "1" to "6"
  raw?: boolean;                 // Disable prompt enhancement

  // LoRA specific
  loras?: Array<{
    path: string;
    scale: number;
  }>;
}

Response Structure

interface TextToImageOutput {
  images: Array<{
    url: string;
    width: number;
    height: number;
    content_type: string;
  }>;
  seed: number;
  prompt: string;
  has_nsfw_concepts?: boolean[];
  timings?: {
    inference: number;
  };
}

Model Selection Guide

Use CaseRecommended ModelWhy
Best qualityfal-ai/flux-2-proLatest model, prompt enhancement
Open sourcefal-ai/flux/dev12B params, high quality
Fast iterationfal-ai/flux/schnell4-step generation
Budgetfal-ai/fast-sdxlLower cost per image
Ultra-fastfal-ai/sdxl-turboSingle step
Custom stylesfal-ai/flux-loraLoRA support
Text in imagesfal-ai/ideogramTypography focus
Design assetsfal-ai/recraft-v3Vector-style output
Photorealisticfal-ai/flux-realismRealism optimized

Best Practices

Prompt Engineering

For FLUX models:

  • Be descriptive and specific
  • Include style, lighting, composition
  • FLUX 2 Pro auto-enhances prompts (use raw: true to disable)
  • Guidance scale 3-4 works best

For SDXL models:

  • Use negative prompts
  • Higher guidance (7-12) for better prompt adherence
  • Include quality keywords: "high quality, detailed, 8k"

Quality vs Speed Trade-offs

// Quality priority
const quality = await fal.subscribe("fal-ai/flux-2-pro", {
  input: {
    prompt: "...",
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});

// Speed priority
const fast = await fal.subscribe("fal-ai/flux/schnell", {
  input: {
    prompt: "...",
    num_inference_steps: 4
  }
});

// Balance
const balanced = await fal.subscribe("fal-ai/flux/dev", {
  input: {
    prompt: "...",
    num_inference_steps: 20,
    guidance_scale: 3.5
  }
});

Batch Generation

// Generate multiple variations
const result = await fal.subscribe("fal-ai/flux/dev", {
  input: {
    prompt: "A beautiful landscape",
    num_images: 4,
    seed: 42  // Same seed = similar outputs
  }
});

// Access all images
result.images.forEach((img, i) => {
  console.log(`Image ${i + 1}: ${img.url}`);
});

Reproducibility

// Use seed for reproducible results
const seed = 12345;

const result1 = await fal.subscribe("fal-ai/flux/dev", {
  input: { prompt: "A cat", seed }
});

const result2 = await fal.subscribe("fal-ai/flux/dev", {
  input: { prompt: "A cat", seed }
});

// result1 and result2 will be identical
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

plugins/fal-ai-master/skills/fal-text-to-image

Default branch

main

Latest commit

5a1b112

Tree SHA

376c8e0