fal-video-to-video について
fal-video-to-videoは、fal.aiのモデルで既存動画を編集・変換するためのリファレンススキルです。スタイルやオブジェクトの編集、リミックス、アップスケール、フレーム補間のエンドポイントとパラメーターを扱います。
主な機能
- 01スタイル変換と一般的な動画編集
- 02動画内のオブジェクトの置換や削除
- 03Soraによる動画のリミックス
- 04解像度を2倍または4倍に拡大
- 05指定フレームレートへのフレーム補間
活用シーン
- 01動画をアニメやノワール調に変換
- 02シーン内の要素を置換または削除
- 03低解像度の映像を拡大
- 04フレームレートを上げて動きを滑らかにする
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill fal-video-to-videoインストール後、Claude Code で/fal-video-to-videoを入力して読み込まれたか確認します。
詳細
クイックリファレンス
| タスク | エンドポイント | 主なパラメーター |
|---|---|---|
| スタイル/編集 | fal-ai/kling-video/o1/video-to-video/edit | edit_type |
| リミックス | fal-ai/sora/remix | prompt |
| アップスケール | fal-ai/video-upscaler | scale: 2,4 |
| 補間 | fal-ai/frame-interpolation | target_fps |
| 編集タイプ | 使用例 |
|---|---|
general | 色、照明、品質 |
style | アニメ、絵画、ノワール |
object | 要素の置換/削除 |
| スタイルキーワード | 効果 |
|---|---|
| "anime style" | 日本のアニメーション |
| "oil painting" | 質感のある筆致 |
| "noir" | 高コントラストの白黒 |
| "cyberpunk" | ネオンの未来的な雰囲気 |
| アップスケール | サイズへの影響 |
|---|---|
| 2x | ファイルサイズが4倍 |
| 4x | ファイルサイズが16倍 |
このスキルを使う場面
動画の編集と変換に使用します:
- 動画にスタイル転送を適用する
- 低解像度の動画をアップスケールする
- フレームレートを上げて動きを滑らかにする
- オブジェクトを置換または削除する
- 動画の品質を向上させる
関連スキル:
- テキストから動画を生成する場合:
fal-text-to-videoを参照 - 画像から動画を生成する場合:
fal-image-to-videoを参照 - モデルを選択する場合:
fal-model-guideを参照
fal.ai 動画から動画への変換モデル
fal.ai の動画編集、変換、アップスケールモデルに関する完全なリファレンスです。
Kling O1 動画編集
Kling O1 動画から動画への編集
エンドポイント: fal-ai/kling-video/o1/video-to-video/edit
最適な用途: 包括的な動画編集と変換
import { fal } from "@fal-ai/client";
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Transform into an anime style with vibrant colors",
video_url: "https://example.com/original-video.mp4",
edit_type: "style",
negative_prompt: "blurry, distorted, low quality"
}
});
console.log(result.video.url);
import fal_client
result = fal_client.subscribe(
"fal-ai/kling-video/o1/video-to-video/edit",
arguments={
"prompt": "Transform into anime style",
"video_url": "https://example.com/video.mp4",
"edit_type": "style"
}
)
print(result["video"]["url"])
編集タイプ:
| タイプ | 説明 | 使用例 |
|---|---|---|
general | 汎用的な編集 | あらゆる変換 |
style | スタイル転送 | アート効果 |
object | オブジェクトの置換/編集 | 特定の要素を変更 |
パラメーター:
| パラメーター | タイプ | 説明 |
|---|---|---|
prompt | string | 編集の指示 |
video_url | string | 元動画のURL |
edit_type | string | "general"、"style"、"object" |
negative_prompt | string | 避ける内容 |
Kling O1 の例
スタイル転送:
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Transform into a watercolor painting style with soft brushstrokes",
video_url: sourceVideoUrl,
edit_type: "style",
negative_prompt: "harsh edges, digital artifacts"
}
});
オブジェクト編集:
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Change the red car to a blue sports car",
video_url: sourceVideoUrl,
edit_type: "object"
}
});
一般的な変換:
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Make it look like a sunny summer day instead of overcast",
video_url: sourceVideoUrl,
edit_type: "general"
}
});
Sora 2 リミックス
Sora リミックス(動画変換)
エンドポイント: fal-ai/sora/remix
最適な用途: クリエイティブな動画のリミックスと変換
const result = await fal.subscribe("fal-ai/sora/remix", {
input: {
prompt: "Transform this into a cinematic sci-fi scene with futuristic elements",
video_url: "https://example.com/original.mp4",
aspect_ratio: "16:9"
}
});
console.log(result.video.url);
Sora リミックスのパラメーター:
| パラメーター | タイプ | 説明 |
|---|---|---|
prompt | string | 変換内容の説明 |
video_url | string | 元動画のURL |
aspect_ratio | string | "16:9"、"9:16"、"1:1" |
動画のアップスケーリング
動画アップスケーラー
エンドポイント: fal-ai/video-upscaler
最適な用途: 動画の解像度を向上させる
const result = await fal.subscribe("fal-ai/video-upscaler", {
input: {
video_url: "https://example.com/low-res-video.mp4",
scale: 2 // 2x or 4x upscale
}
});
console.log(result.video.url);
result = fal_client.subscribe(
"fal-ai/video-upscaler",
arguments={
"video_url": "https://example.com/video.mp4",
"scale": 2
}
)
パラメーター:
| パラメーター | タイプ | 値 | 説明 |
|---|---|---|---|
video_url | string | - | 元動画のURL |
scale | number | 2, 4 | アップスケール倍率 |
TopazVideoAI(利用可能な場合)
エンドポイント: fal-ai/topaz-video-ai
最適な用途: プロ品質の動画補正
const result = await fal.subscribe("fal-ai/topaz-video-ai", {
input: {
video_url: "https://example.com/video.mp4",
enhancement_type: "upscale",
target_resolution: "4k"
}
});
動画フレーム補間
フレーム補間
エンドポイント: fal-ai/frame-interpolation
最適な用途: 滑らかな動き、フレームレートの向上
const result = await fal.subscribe("fal-ai/frame-interpolation", {
input: {
video_url: "https://example.com/24fps-video.mp4",
target_fps: 60,
interpolation_mode: "smooth"
}
});
パラメーター:
| パラメーター | タイプ | 説明 |
|---|---|---|
video_url | string | 元動画 |
target_fps | number | 目標フレームレート(30、60、120) |
interpolation_mode | string | "smooth"、"natural" |
動画のスタイル転送
汎用スタイル転送パイプライン
// Apply artistic style to video
async function applyVideoStyle(videoUrl: string, style: string) {
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: `Transform into ${style} style`,
video_url: videoUrl,
edit_type: "style"
}
});
return result.video.url;
}
// Usage
const animeVideo = await applyVideoStyle(originalVideo, "anime");
const oilPaintingVideo = await applyVideoStyle(originalVideo, "oil painting");
const pixelArtVideo = await applyVideoStyle(originalVideo, "pixel art");
スタイルキーワード
| スタイル | プロンプトの例 |
|---|---|
| アニメ | "Japanese anime style, cel shading" |
| 水彩画 | "Soft watercolor painting with flowing colors" |
| 油絵 | "Classical oil painting, textured brushstrokes" |
| ピクセルアート | "8-bit pixel art retro game style" |
| ノワール | "Black and white film noir, high contrast" |
| サイバーパンク | "Neon cyberpunk aesthetic, futuristic" |
| スケッチ | "Hand-drawn pencil sketch style" |
| コミック | "Comic book style with bold outlines" |
動画の強化手法
ノイズ除去
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Clean and enhance video quality, reduce noise and grain",
video_url: noisyVideoUrl,
edit_type: "general",
negative_prompt: "grainy, noisy, artifacts"
}
});
色補正
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Enhance colors to be more vibrant and natural, improve contrast",
video_url: flatVideoUrl,
edit_type: "general"
}
});
照明の強化
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Improve lighting, add warm golden hour glow",
video_url: darkVideoUrl,
edit_type: "general"
}
});
動画内オブジェクトの編集
オブジェクトの置き換え
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Replace the bicycle with a motorcycle",
video_url: sourceVideoUrl,
edit_type: "object"
}
});
オブジェクトの削除
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Remove the person in the background, fill with natural scenery",
video_url: sourceVideoUrl,
edit_type: "object"
}
});
オブジェクトの追加
const result = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Add falling snow throughout the scene",
video_url: sourceVideoUrl,
edit_type: "object"
}
});
パラメーターの完全なリファレンス
interface VideoToVideoInput {
// Required
video_url: string;
// For editing models
prompt?: string;
edit_type?: "general" | "style" | "object";
negative_prompt?: string;
// For upscaling
scale?: number; // 2 or 4
// For frame interpolation
target_fps?: number;
interpolation_mode?: string;
// Output
aspect_ratio?: string;
}
ワークフローの例
動画強化の完全なパイプライン
async function enhanceVideo(sourceUrl: string) {
// 1. Upscale resolution
const upscaled = await fal.subscribe("fal-ai/video-upscaler", {
input: {
video_url: sourceUrl,
scale: 2
}
});
// 2. Enhance quality
const enhanced = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: "Enhance video quality, improve sharpness and colors",
video_url: upscaled.video.url,
edit_type: "general"
}
});
// 3. Smooth motion (optional)
const smoothed = await fal.subscribe("fal-ai/frame-interpolation", {
input: {
video_url: enhanced.video.url,
target_fps: 60
}
});
return smoothed.video.url;
}
スタイル変換のワークフロー
async function styleTransferVideo(
sourceUrl: string,
targetStyle: string
) {
// Apply style transformation
const styled = await fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: `Transform into ${targetStyle} style, maintain motion consistency`,
video_url: sourceUrl,
edit_type: "style",
negative_prompt: "flickering, inconsistent, artifacts"
}
});
return styled.video.url;
}
// Usage
const animeVersion = await styleTransferVideo(original, "anime");
const paintingVersion = await styleTransferVideo(original, "impressionist oil painting");
動画の一括処理
async function processVideosBatch(
videos: string[],
transformation: string
) {
const results = await Promise.all(
videos.map(video =>
fal.subscribe("fal-ai/kling-video/o1/video-to-video/edit", {
input: {
prompt: transformation,
video_url: video,
edit_type: "general"
}
})
)
);
return results.map(r => r.video.url);
}
モデルの比較
| モデル | 編集 | スタイル | アップスケール | 速度 |
|---|---|---|---|---|
| Kling O1 | フル | フル | いいえ | 中 |
| Sora Remix | 限定的 | フル | いいえ | 遅い |
| Video Upscaler | いいえ | いいえ | フル | 速い |
ベストプラクティス
スタイル変換の場合
- 一貫性を保つ - 具体的なスタイルの説明を使用します
- ちらつきを避ける - ネガティブプロンプトに「consistent」を追加します
- クリップでテストする - まず短いセグメントを処理します
- アイデンティティを維持する - 変換しすぎないようにします
オブジェクト編集の場合
- 具体的に指定する - 変更するオブジェクトを正確に指定します
- コンテキストを示す - 置き換え後の内容を明確に説明します
- 動きを考慮する - 編集内容が動きに合うことを確認します
- 境界を確認する - オブジェクトの端が自然になじむようにします
アップスケールの場合
- 元の品質が重要です - 入力がきれいであれば、出力も向上します
- 過度にアップスケールしない - 通常は2倍で十分です
- ファイルサイズを考慮する - 解像度が高いほどファイルサイズが大きくなります
- まずテストする - 短いクリップでプレビューします
一般的な強化の場合
- 段階的に変更する - 一度にすべてを修正しようとしないでください
- 意図を保つ - 元の雰囲気やスタイルを維持します
- アーティファクトを確認する - 新たに発生したエラーがないか確認します
- 繰り返す - 複数回の処理が必要になる場合があります
よくある問題と解決策
| 問題 | 原因 | 解決策 |
|---|---|---|
| ちらつき | フレームの不一致 | プロンプトに「consistent, stable」を追加します |
| 色の変化 | 過度に強い編集 | より穏やかなプロンプトを使用します |
| ディテールの消失 | 変換しすぎ | 編集の強度を下げます |
| アーティファクト | 圧縮の問題 | より高品質なソースを使用します |
| モーションブラー | フレーム補間 | 「natural」モードを使用します |
ファイルサイズに関する考慮事項
| 処理 | サイズへの影響 |
|---|---|
| 2倍アップスケール | 4倍 |
| 4倍アップスケール | 16倍 |
| フレーム補間 | 2~4倍 |
| スタイル変換 | ほぼ同じ |
動画を処理する際は、ストレージと帯域幅を常に考慮してください。
コメント
Markdown 対応