plugins/fal-ai-master/skills/fal-image-to-video/SKILL.md
Complete fal.ai image-to-video system. PROACTIVELY activate for: (1) Kling 2.5/2.6 Pro image animation, (2) MiniMax Hailuo with prompt optimizer, (3) LTX image-to-video, (4) Runway Gen-3 Turbo, (5) Luma Dream Machine with loop, (6) Stable Video Diffusion, (7) Motion description prompts, (8) Portrait/product animation workflows. Provides: Model endpoints, motion keywords, animation techniques, workflow examples. Ensures natural image animation with proper motion description.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace fal-image-to-videoInstall 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 | Audio | Loop | Best For |
|-------|----------|-------|------|----------|
| Kling 2.6 Pro | fal-ai/kling-video/v2.6/pro/image-to-video | Yes | No | Cinematic |
| MiniMax | fal-ai/minimax-video/image-to-video | No | No | Reliable |
| Luma | fal-ai/luma-dream-machine | No | Yes | Creative |
| SVD | fal-ai/stable-video-diffusion | No | No | Fast test |
| Motion Type | Keywords | Example | |-------------|----------|---------| | Character | walks, turns, smiles | "She slowly turns her head" | | Nature | sways, flows, falls | "Leaves flutter in the wind" | | Camera | pans, zooms, tracks | "Camera slowly pans right" |
| Use Case | Recommended Model | |----------|-------------------| | Portraits | Kling 2.5/2.6 Pro | | Products | MiniMax (optimizer) | | Landscapes | Luma (loop) | | Fast testing | SVD, Runway Turbo |
Use for image animation:
Related skills:
fal-text-to-videofal-video-to-videofal-text-to-imageComplete reference for all image animation and image-to-video models on fal.ai.
Endpoint: fal-ai/kling-video/v2.0/image-to-video
Best For: Standard image animation
import { fal } from "@fal-ai/client";
const result = await fal.subscribe("fal-ai/kling-video/v2.0/image-to-video", {
input: {
prompt: "The person slowly turns their head and smiles warmly",
image_url: "https://example.com/portrait.jpg",
duration: "5",
aspect_ratio: "16:9"
}
});
console.log(result.video.url);
import fal_client
result = fal_client.subscribe(
"fal-ai/kling-video/v2.0/image-to-video",
arguments={
"prompt": "The person slowly turns their head and smiles",
"image_url": "https://example.com/portrait.jpg",
"duration": "5",
"aspect_ratio": "16:9"
}
)
print(result["video"]["url"])
Endpoint: fal-ai/kling-video/v2.5/pro/image-to-video
Best For: Professional quality animation
const result = await fal.subscribe("fal-ai/kling-video/v2.5/pro/image-to-video", {
input: {
prompt: "The car drives forward along the mountain road, camera follows",
image_url: "https://example.com/car-scene.jpg",
duration: "5",
aspect_ratio: "16:9",
negative_prompt: "static, frozen, distorted"
}
});
Endpoint: fal-ai/kling-video/v2.6/pro/image-to-video
Best For: Highest quality with native audio
const result = await fal.subscribe("fal-ai/kling-video/v2.6/pro/image-to-video", {
input: {
prompt: "The waterfall cascades down with a gentle roar, birds fly past",
image_url: "https://example.com/waterfall.jpg",
duration: "5",
aspect_ratio: "16:9"
}
});
console.log(result.video.url);
console.log(result.audio?.url); // Native audio
Kling Parameters:
| Parameter | Type | Values | Description |
|-----------|------|--------|-------------|
| prompt | string | - | Motion description |
| image_url | string | - | Source image URL |
| duration | string | "5", "10" | Duration in seconds |
| aspect_ratio | string | "16:9", "9:16", "1:1" | Output dimensions |
| negative_prompt | string | - | What to avoid |
Endpoint: fal-ai/minimax-video/image-to-video
Best For: Reliable image animation with prompt optimization
const result = await fal.subscribe("fal-ai/minimax-video/image-to-video", {
input: {
prompt: "The cat stretches and yawns, then walks forward",
image_url: "https://example.com/sleeping-cat.jpg",
prompt_optimizer: true // Auto-enhance prompt
}
});
result = fal_client.subscribe(
"fal-ai/minimax-video/image-to-video",
arguments={
"prompt": "The cat stretches and yawns",
"image_url": "https://example.com/cat.jpg",
"prompt_optimizer": True
}
)
MiniMax Parameters:
| Parameter | Type | Description |
|-----------|------|-------------|
| prompt | string | Motion description |
| image_url | string | Source image URL |
| prompt_optimizer | boolean | Auto-enhance prompt |
Endpoint: fal-ai/ltx-video/image-to-video
Best For: Fast image animation
const result = await fal.subscribe("fal-ai/ltx-video/image-to-video", {
input: {
prompt: "The flowers sway gently in the breeze",
image_url: "https://example.com/flower-field.jpg",
negative_prompt: "static, frozen",
num_inference_steps: 30,
guidance_scale: 7.5
}
});
Endpoint: fal-ai/ltx-video/v2/image-to-video
Best For: Improved quality animation
const result = await fal.subscribe("fal-ai/ltx-video/v2/image-to-video", {
input: {
prompt: "Smoke rises and swirls from the chimney",
image_url: "https://example.com/cabin.jpg",
num_inference_steps: 35,
guidance_scale: 7.0
}
});
LTX Parameters:
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| prompt | string | - | Motion description |
| image_url | string | - | Source image |
| negative_prompt | string | - | What to avoid |
| num_inference_steps | number | 30 | Quality steps |
| guidance_scale | number | 7.5 | Prompt adherence |
Endpoint: fal-ai/runway-gen3/turbo/image-to-video
Best For: Fast iteration, previews
const result = await fal.subscribe("fal-ai/runway-gen3/turbo/image-to-video", {
input: {
prompt: "The model walks confidently down the runway",
image_url: "https://example.com/fashion-shot.jpg",
duration: 5
}
});
Runway Parameters:
| Parameter | Type | Values | Description |
|-----------|------|--------|-------------|
| prompt | string | - | Motion description |
| image_url | string | - | Source image |
| duration | number | 5, 10 | Seconds |
Endpoint: fal-ai/luma-dream-machine
Best For: Creative, artistic animation
const result = await fal.subscribe("fal-ai/luma-dream-machine", {
input: {
prompt: "The magical portal opens with swirling energy",
image_url: "https://example.com/fantasy-scene.jpg",
aspect_ratio: "16:9",
loop: true // Create seamless loop
}
});
result = fal_client.subscribe(
"fal-ai/luma-dream-machine",
arguments={
"prompt": "The portal opens with swirling energy",
"image_url": "https://example.com/scene.jpg",
"aspect_ratio": "16:9",
"loop": True
}
)
Luma Parameters:
| Parameter | Type | Description |
|-----------|------|-------------|
| prompt | string | Motion description |
| image_url | string | Source image |
| aspect_ratio | string | "16:9", "9:16", "1:1" |
| loop | boolean | Create looping video |
Endpoint: fal-ai/wan/v2.1/1.3b/image-to-video
Best For: Lightweight animation
const result = await fal.subscribe("fal-ai/wan/v2.1/1.3b/image-to-video", {
input: {
prompt: "The leaves flutter and fall from the tree",
image_url: "https://example.com/autumn-tree.jpg",
num_frames: 81
}
});
Endpoint: fal-ai/stable-video-diffusion
Best For: Open-source image animation
const result = await fal.subscribe("fal-ai/stable-video-diffusion", {
input: {
image_url: "https://example.com/landscape.jpg",
motion_bucket_id: 127, // 0-255, higher = more motion
fps: 7,
num_frames: 25
}
});
SVD Parameters:
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| image_url | string | - | Source image |
| motion_bucket_id | number | 127 | Motion intensity (0-255) |
| fps | number | 7 | Frames per second |
| num_frames | number | 25 | Total frames |
| seed | number | - | For reproducibility |
Endpoint: fal-ai/stable-video-diffusion-xt
Best For: Extended video length
const result = await fal.subscribe("fal-ai/stable-video-diffusion-xt", {
input: {
image_url: "https://example.com/scene.jpg",
motion_bucket_id: 127,
num_frames: 25,
fps: 6
}
});
Endpoint: fal-ai/cogvideox-5b/image-to-video
Best For: Open-source alternative
const result = await fal.subscribe("fal-ai/cogvideox-5b/image-to-video", {
input: {
prompt: "The astronaut waves to the camera",
image_url: "https://example.com/astronaut.jpg",
num_inference_steps: 50,
guidance_scale: 6.0
}
});
| Tier | Models | Quality | Speed | |------|--------|---------|-------| | Premium | Kling 2.6 Pro | Highest | Slow | | Professional | Kling 2.5 Pro, Runway | High | Medium | | Standard | MiniMax, LTX v2 | Good | Fast | | Budget | SVD, CogVideoX | Acceptable | Fast |
| Model | Audio | Duration | Loop | Best For | |-------|-------|----------|------|----------| | Kling 2.6 Pro | Yes | 5-10s | No | Cinematic | | Kling 2.5 Pro | No | 5-10s | No | Professional | | MiniMax | No | 6s | No | Reliable | | Runway Turbo | No | 5-10s | No | Fast | | Luma | No | 5s | Yes | Creative | | SVD | No | 3-4s | No | Open source |
[Subject action] + [Motion quality] + [Camera movement] + [Atmosphere]
Examples:
// Good: Specific motion
"The woman slowly turns her head to the right and smiles, gentle breeze moves her hair"
// Bad: Vague
"The woman moves"
| Type | Keywords | Example | |------|----------|---------| | Character | "walks", "runs", "dances", "gestures" | "She waves hello" | | Nature | "sways", "flows", "rustles", "falls" | "Leaves fall gently" | | Mechanical | "rotates", "spins", "moves", "opens" | "The door opens slowly" | | Atmospheric | "drifts", "swirls", "rises", "disperses" | "Fog drifts across" |
| Keyword | Effect | |---------|--------| | "camera slowly pans" | Horizontal sweep | | "slight zoom in" | Gradual zoom | | "tracking shot" | Follows subject | | "static camera" | No camera movement | | "subtle camera shake" | Handheld feel |
interface ImageToVideoInput {
// Required
prompt: string;
image_url: string;
// Duration (varies by model)
duration?: number | string;
// Dimensions
aspect_ratio?: "16:9" | "9:16" | "1:1";
// Quality
negative_prompt?: string;
num_inference_steps?: number;
guidance_scale?: number;
// Model-specific
prompt_optimizer?: boolean; // MiniMax
loop?: boolean; // Luma
motion_bucket_id?: number; // SVD (0-255)
fps?: number; // SVD
num_frames?: number; // SVD, Wan
// Reproducibility
seed?: number;
}
// 1. Generate a portrait image
const portrait = await fal.subscribe("fal-ai/flux/dev", {
input: {
prompt: "Professional headshot of a business woman, neutral expression, studio lighting",
image_size: "portrait_4_3"
}
});
// 2. Animate the portrait
const video = await fal.subscribe("fal-ai/kling-video/v2.5/pro/image-to-video", {
input: {
prompt: "She slowly turns her head, makes eye contact with camera, and gives a warm professional smile",
image_url: portrait.images[0].url,
duration: "5",
aspect_ratio: "16:9"
}
});
console.log(video.video.url);
// Animate product image
const result = await fal.subscribe("fal-ai/minimax-video/image-to-video", {
input: {
prompt: "The camera slowly rotates around the product, highlighting details, studio lighting",
image_url: "https://example.com/product-shot.jpg",
prompt_optimizer: true
}
});
// Create ambient nature video
const result = await fal.subscribe("fal-ai/luma-dream-machine", {
input: {
prompt: "Gentle breeze moves through the grass, clouds drift slowly overhead, peaceful ambient motion",
image_url: "https://example.com/landscape.jpg",
aspect_ratio: "16:9",
loop: true // Perfect for background video
}
});
// Quick preview with faster model
const preview = await fal.subscribe("fal-ai/stable-video-diffusion", {
input: {
image_url: sourceImage,
motion_bucket_id: 100
}
});
console.log("Preview:", preview.video.url);
// If satisfied, use higher quality model
const final = await fal.subscribe("fal-ai/kling-video/v2.6/pro/image-to-video", {
input: {
prompt: "Refined motion description based on preview",
image_url: sourceImage,
duration: "5"
}
});
| Issue | Cause | Solution | |-------|-------|----------| | Static output | Vague prompt | Add specific motion verbs | | Distorted faces | Fast motion | Use "subtle", "gentle" | | Inconsistent motion | Complex scene | Focus on one element | | Cut-off motion | Short duration | Extend duration if available |
| Use Case | Recommended Model | |----------|-------------------| | Portraits | Kling 2.5/2.6 Pro | | Products | MiniMax (prompt optimizer) | | Landscapes | Luma (loop option) | | Fast testing | SVD, Runway Turbo | | With audio | Kling 2.6 Pro |
development
This skill should be used when the user asks to train, debug, scale, or improve ML models. PROACTIVELY activate for: (1) PyTorch, TensorFlow/Keras, JAX, Flax, Hugging Face Trainer/Accelerate training loops, (2) distributed training, DDP/FSDP/DeepSpeed, TPU/GPU setup, (3) mixed precision AMP/bf16, gradient accumulation, checkpointing, seeding, (4) overfitting, imbalance, loss functions, regularization, LR schedules, warmup, (5) memory optimization, gradient checkpointing, offloading, quantization-aware training. Provides: reproducible training best practices across deep learning and classical ML.
development
This skill should be used when the user asks to productionize, track, version, govern, monitor, or automate ML systems. PROACTIVELY activate for: (1) MLflow, Weights & Biases, Neptune, Comet, ClearML experiment tracking, (2) model registry, model versioning, artifact lineage, reproducibility, (3) Kubeflow, SageMaker Pipelines, Vertex AI Pipelines, Azure ML pipelines, Databricks workflows, (4) CI/CD, continuous training/evaluation, A/B tests, canary/shadow deployments, (5) drift detection, model monitoring, data validation, responsible AI governance. Provides: end-to-end MLOps architecture and operational safeguards.
development
This skill should be used when the user asks to optimize, export, serve, compress, or accelerate ML inference. PROACTIVELY activate for: (1) latency, throughput, p95/p99, batching, concurrency, KV cache, memory, or cost issues, (2) quantization INT8/INT4, GPTQ, AWQ, bitsandbytes, pruning, sparsity, distillation, (3) ONNX export, ONNX Runtime, TensorRT, TorchScript, torch.compile, XLA, OpenVINO, Core ML, TFLite, (4) Triton, TorchServe, TF Serving, BentoML, Seldon, KServe configuration, (5) edge deployment, CPU/GPU/TPU/Inferentia serving. Provides: hardware-aware inference optimization and safe benchmarking.
testing
This skill should be used when the user asks to tune hyperparameters, run sweeps, optimize search spaces, or use AutoML. PROACTIVELY activate for: (1) Optuna, Ray Tune, FLAML, AutoGluon, Hyperopt, Nevergrad, KerasTuner, W&B sweeps, (2) grid search, random search, Bayesian optimization, TPE, Gaussian processes, evolutionary search, (3) ASHA, Hyperband, successive halving, multi-fidelity optimization, population-based training, (4) learning-rate finder, batch-size search, early stopping, pruning, (5) reproducible sweep design and experiment analysis. Provides: budget-aware hyperparameter search strategy.