plugins/fal-ai-master/skills/fal-text-to-image/SKILL.md
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.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace fal-text-to-imageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 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
development
Use for Clerk sessions, tokens, webhooks, orgs, and security. PROACTIVELY activate for session tokens, JWT templates, getToken(), custom claims, pending sessions, multi-session UX, organizations, roles, permissions, system vs custom permissions, features/plans, MFA/passkeys/password policy/bot protection, Clerk webhooks, Svix signatures, verifyWebhook(), user/org sync, retries/replays, environment variables, custom domains, secret rotation, logs, and auth security reviews. Provides token semantics, webhook idempotency, authorization defaults, and hardening checklist.
tools
Use for Clerk in Next.js. PROACTIVELY activate for @clerk/nextjs setup, App Router auth()/currentUser(), clerkMiddleware(), proxy.ts/middleware.ts, createRouteMatcher(), protected pages/layouts/Route Handlers/Server Actions/API routes/tRPC, auth.protect() role/permission/token checks, ClerkProvider placement, server-only clerkClient, Link prefetch, redirects, 401/404 auth failures, custom domains, __clerk proxy paths, and deployment gotchas. Provides file patterns, server/client boundary rules, matcher templates, and production checks.
development
Use for Clerk frontend auth flows. PROACTIVELY activate for React, JavaScript, Vue, Nuxt, Astro, Expo, React Router, TanStack React Start, or SPA setup; ClerkProvider and publishable-key wiring; SignIn/SignUp/UserButton/UserProfile/OrganizationSwitcher; custom useUser/useAuth/useClerk/useSignIn/useSignUp/useSession/useOrganization flows; multi-session UX; cross-origin getToken() fetches; loading states, redirects, routing, CORS/cookies, or hydration bugs. Provides SDK selection, UI patterns, token-fetch templates, and frontend gotchas.
development
Use for Clerk dev/prod readiness, deployment, and multi-language implementation planning. PROACTIVELY activate for environment variables, pk_test/sk_test vs pk_live/sk_live, local dev, preview/staging/prod instances, domains/DNS, redirects, OAuth credentials, custom domains/proxy, authorizedParties, CSP, CORS/cookies, webhooks/tunnels, Vercel/Netlify/Cloudflare/API gateways, monitoring/troubleshooting, and backends in Node/Express/Fastify, Python/FastAPI/Django/Flask, Go, Ruby/Rails, Java/Spring, .NET, PHP/Laravel. Provides checklists, rollout plans, and language-portable patterns.