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.
/plugin marketplace add JosiahSiegel/claude-plugin-marketplace/plugin install fal-ai-master@claude-plugin-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
| Model | Endpoint | Speed | Quality | Cost |
|---|---|---|---|---|
| FLUX.2 Pro | fal-ai/flux-2-pro | Medium | Highest | $$$ |
| FLUX.1 Dev | fal-ai/flux/dev | Medium | High | $$ |
| FLUX Schnell | fal-ai/flux/schnell | Fast | Good | $ |
| Fast SDXL | fal-ai/fast-sdxl | Fast | Good | $ |
| Image Size | Preset | Dimensions |
|---|---|---|
| Square HD | square_hd | 1024x1024 |
| Landscape | landscape_16_9 | 1024x576 |
| Portrait | portrait_16_9 | 576x1024 |
| Custom | { width, height } | Any |
| Parameter | FLUX Default | SDXL Default |
|---|---|---|
guidance_scale | 3.5 | 7.5 |
num_inference_steps | 28 | 25 |
num_images | 1 | 1 |
Use for text-to-image generation:
Related skills:
fal-image-to-imagefal-model-guidefal-api-referenceComplete reference for all text-to-image generation models on fal.ai.
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"])
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
}
});
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
}
});
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 sensitivityraw: Boolean, set to true to disable automatic prompt enhancementEndpoint: 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 effectEndpoint: 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
}
});
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"
}
});
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 generationguidance_scale (7-12) works better for SDXLEndpoint: 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
}
});
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
}
});
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
}
});
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_imagedigital_illustrationvector_illustrationiconEndpoint: 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"
}
});
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
}
});
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
}
});
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"
}
});
| Preset | Dimensions | Aspect Ratio |
|---|---|---|
square | 512x512 | 1:1 |
square_hd | 1024x1024 | 1:1 |
portrait_4_3 | 768x1024 | 3:4 |
portrait_16_9 | 576x1024 | 9:16 |
landscape_4_3 | 1024x768 | 4:3 |
landscape_16_9 | 1024x576 | 16:9 |
Custom Dimensions:
image_size: { width: 1920, height: 1080 }
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;
}>;
}
interface TextToImageOutput {
images: Array<{
url: string;
width: number;
height: number;
content_type: string;
}>;
seed: number;
prompt: string;
has_nsfw_concepts?: boolean[];
timings?: {
inference: number;
};
}
| Use Case | Recommended Model | Why |
|---|---|---|
| Best quality | fal-ai/flux-2-pro | Latest model, prompt enhancement |
| Open source | fal-ai/flux/dev | 12B params, high quality |
| Fast iteration | fal-ai/flux/schnell | 4-step generation |
| Budget | fal-ai/fast-sdxl | Lower cost per image |
| Ultra-fast | fal-ai/sdxl-turbo | Single step |
| Custom styles | fal-ai/flux-lora | LoRA support |
| Text in images | fal-ai/ideogram | Typography focus |
| Design assets | fal-ai/recraft-v3 | Vector-style output |
| Photorealistic | fal-ai/flux-realism | Realism optimized |
For FLUX models:
raw: true to disable)For SDXL models:
// 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
}
});
// 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}`);
});
// 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
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.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
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.