fal-image-to-video について
fal-image-to-videoは、fal.aiで静止画を動画化するクリエイターや開発者向けのリファレンススキルです。複数モデルのエンドポイントやパラメーター、プロンプトの指針、ワークフロー例をまとめています。
主な機能
- 01複数の画像・動画モデルを紹介
- 02エンドポイントと入力パラメーターの整理
- 03動きやカメラのプロンプト指針
- 04人物・製品・風景のワークフロー例
- 05モデルの速度と機能の比較
活用シーン
- 01人物写真に自然な動きを加える
- 02製品紹介動画を作成する
- 03ループする風景の背景動画を生成する
- 04高速モデルでアニメーションをプレビューする
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill fal-image-to-videoインストール後、Claude Code で/fal-image-to-videoを入力して読み込まれたか確認します。
詳細
クイックリファレンス
| モデル | エンドポイント | 音声 | ループ | 最適な用途 |
|---|---|---|---|---|
| Kling 2.6 Pro | fal-ai/kling-video/v2.6/pro/image-to-video | あり | なし | 映画のような映像 |
| MiniMax | fal-ai/minimax-video/image-to-video | なし | なし | 安定性 |
| Luma | fal-ai/luma-dream-machine | なし | あり | クリエイティブな表現 |
| SVD | fal-ai/stable-video-diffusion | なし | なし | 高速なテスト |
| 動きの種類 | キーワード | 例 |
|---|---|---|
| キャラクター | 歩く、振り返る、笑う | 「彼女がゆっくりと頭を振り向けます」 |
| 自然 | 揺れる、流れる、落ちる | 「葉が風に舞います」 |
| カメラ | パン、ズーム、追跡 | 「カメラがゆっくり右にパンします」 |
| 用途 | 推奨モデル |
|---|---|
| ポートレート | Kling 2.5/2.6 Pro |
| 製品 | MiniMax(オプティマイザー) |
| 風景 | Luma(ループ) |
| 高速なテスト | SVD、Runway Turbo |
このスキルを使う場面
画像のアニメーション化に使用します:
- 静止したポートレートに自然な動きを加える
- 製品紹介動画を作成する
- 雰囲気のあるループ動画を生成する
- 風景にさりげない動きを加える
- 最終レンダリングの前にワークフローをプレビューする
関連スキル:
- テキストから動画を生成する場合:
fal-text-to-videoを参照してください - 動画を編集する場合:
fal-video-to-videoを参照してください - 先にテキストから画像を生成する場合:
fal-text-to-imageを参照してください
fal.ai 画像から動画を生成するモデル
fal.ai のすべての画像アニメーションおよび画像から動画を生成するモデルの完全なリファレンスです。
Kling 画像から動画を生成
Kling 2.0 画像から動画を生成
エンドポイント: fal-ai/kling-video/v2.0/image-to-video
最適な用途: 標準的な画像アニメーション
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"])
Kling 2.5 Pro 画像から動画を生成
エンドポイント: fal-ai/kling-video/v2.5/pro/image-to-video
最適な用途: プロ品質のアニメーション
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"
}
});
Kling 2.6 Pro 画像から動画を生成(最新)
エンドポイント: fal-ai/kling-video/v2.6/pro/image-to-video
最適な用途: ネイティブ音声対応の最高品質
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 のパラメーター:
| パラメーター | 型 | 値 | 説明 |
|---|---|---|---|
prompt | string | - | 動きの説明 |
image_url | string | - | ソース画像の URL |
duration | string | "5", "10" | 秒単位の長さ |
aspect_ratio | string | "16:9", "9:16", "1:1" | 出力サイズ |
negative_prompt | string | - | 避ける内容 |
MiniMax 画像から動画を生成
MiniMax Hailuo
エンドポイント: fal-ai/minimax-video/image-to-video
最適な用途: プロンプト最適化による安定した画像アニメーション
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 のパラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
prompt | string | 動きの説明 |
image_url | string | ソース画像の URL |
prompt_optimizer | boolean | プロンプトを自動で強化 |
LTX 画像から動画を生成
LTX Video 画像から動画を生成
エンドポイント: fal-ai/ltx-video/image-to-video
最適な用途: 高速な画像アニメーション
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
}
});
LTX Video v2 画像から動画を生成
エンドポイント: fal-ai/ltx-video/v2/image-to-video
最適な用途: 品質を向上させたアニメーション
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 のパラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
prompt | string | - | 動きの説明 |
image_url | string | - | ソース画像 |
negative_prompt | string | - | 避ける内容 |
num_inference_steps | number | 30 | 品質ステップ数 |
guidance_scale | number | 7.5 | プロンプトへの準拠度 |
Runway Gen-3 画像から動画を生成
Runway Gen-3 Turbo
エンドポイント: fal-ai/runway-gen3/turbo/image-to-video
最適な用途: 高速な反復作業、プレビュー
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 のパラメーター:
| パラメーター | 型 | 値 | 説明 |
|---|---|---|---|
prompt | string | - | 動きの説明 |
image_url | string | - | ソース画像 |
duration | number | 5, 10 | 秒数 |
Luma Dream Machine
Luma 画像から動画へ
エンドポイント: fal-ai/luma-dream-machine
最適な用途: 創造的で芸術的なアニメーション
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 のパラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
prompt | string | 動きの説明 |
image_url | string | 元画像 |
aspect_ratio | string | "16:9"、"9:16"、"1:1" |
loop | boolean | ループ動画を作成 |
Wan 画像から動画へ
Wan v2.1 画像から動画へ
エンドポイント: fal-ai/wan/v2.1/1.3b/image-to-video
最適な用途: 軽量なアニメーション
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
}
});
Stable Video Diffusion
SVD 画像から動画へ
エンドポイント: fal-ai/stable-video-diffusion
最適な用途: オープンソースの画像アニメーション
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 のパラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
image_url | string | - | 元画像 |
motion_bucket_id | number | 127 | 動きの強さ(0~255) |
fps | number | 7 | 1 秒あたりのフレーム数 |
num_frames | number | 25 | 合計フレーム数 |
seed | number | - | 再現性のため |
SVD XT
エンドポイント: fal-ai/stable-video-diffusion-xt
最適な用途: 動画の長さを延長
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
}
});
CogVideoX 画像から動画へ
CogVideoX-5B 画像から動画へ
エンドポイント: fal-ai/cogvideox-5b/image-to-video
最適な用途: オープンソースの代替
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
}
});
モデルの比較
品質ランキング
| ティア | モデル | 品質 | 速度 |
|---|---|---|---|
| プレミアム | Kling 2.6 Pro | 最高 | 遅い |
| プロフェッショナル | Kling 2.5 Pro、Runway | 高い | 中程度 |
| 標準 | MiniMax、LTX v2 | 良好 | 速い |
| 低予算 | SVD、CogVideoX | 許容範囲 | 速い |
機能の比較
| モデル | 音声 | 長さ | ループ | 最適な用途 |
|---|---|---|---|---|
| Kling 2.6 Pro | あり | 5~10 秒 | なし | 映画のような映像 |
| Kling 2.5 Pro | なし | 5~10 秒 | なし | プロフェッショナル |
| MiniMax | なし | 6 秒 | なし | 信頼性 |
| Runway Turbo | なし | 5~10 秒 | なし | 高速 |
| Luma | なし | 5 秒 | あり | 創造的な表現 |
| SVD | なし | 3~4 秒 | なし | オープンソース |
画像アニメーションのプロンプトエンジニアリング
動きの説明の構成
[Subject action] + [Motion quality] + [Camera movement] + [Atmosphere]
例:
// Good: Specific motion
"The woman slowly turns her head to the right and smiles, gentle breeze moves her hair"
// Bad: Vague
"The woman moves"
動きの種類
| 種類 | キーワード | 例 |
|---|---|---|
| キャラクター | "walks", "runs", "dances", "gestures" | "She waves hello" |
| 自然 | "sways", "flows", "rustles", "falls" | "Leaves fall gently" |
| 機械 | "rotates", "spins", "moves", "opens" | "The door opens slowly" |
| 大気 | "drifts", "swirls", "rises", "disperses" | "Fog drifts across" |
カメラの動きを表すキーワード
| キーワード | 効果 |
|---|---|
| "camera slowly pans" | 水平方向に移動 |
| "slight zoom in" | 徐々にズームイン |
| "tracking shot" | 被写体を追従 |
| "static camera" | カメラの動きなし |
| "subtle camera shake" | 手持ち撮影のような効果 |
品質を高める修飾語
- "smooth motion"
- "natural movement"
- "fluid animation"
- "subtle motion"
- "cinematic"
パラメーター完全リファレンス
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"
}
});
ベストプラクティス
画像の準備
- 高解像度: 高品質な元画像を使用します
- 被写体を明確に: メインの被写体がはっきり見えるようにします
- 適切なフレーミング: 動きのための余白を確保します
- 一貫した照明: 強い影は避けます
プロンプトのヒント
- 静止した場面ではなく、動きを説明します
- 方向(左、右、前方)を具体的に指定します
- 速度(ゆっくり、速く、徐々に)を含めます
- 動きを画像の内容に合わせます
よくある問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| 静止した出力 | 曖昧なプロンプト | 具体的な動詞を追加します |
| 顔の歪み | 速い動き | "subtle"、"gentle" を使用します |
| 一貫しない動き | 複雑な場面 | 1 つの要素に集中します |
| 動きが途中で切れる | 短い長さ | 利用可能であれば長さを延ばします |
Model Selection
| 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 |