Claude-skill-registry fal-video-to-video
Complete fal.ai video-to-video system. PROACTIVELY activate for: (1) Kling O1 video editing, (2) Sora Remix transformation, (3) Video upscaling, (4) Frame interpolation, (5) Style transfer (anime, painting), (6) Object replacement/removal, (7) Color correction, (8) Video enhancement pipelines. Provides: Edit types (general/style/object), upscaling options, style keywords, enhancement workflows. Ensures consistent video transformation without flickering.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fal-video-to-video" ~/.claude/skills/majiayu000-claude-skill-registry-fal-video-to-video && rm -rf "$T"
skills/data/fal-video-to-video/SKILL.mdQuick Reference
| Task | Endpoint | Key Parameter |
|---|---|---|
| Style/Edit | | |
| Remix | | |
| Upscale | | |
| Interpolate | | |
| Edit Type | Use Case |
|---|---|
| Color, lighting, quality |
| Anime, painting, noir |
| Replace/remove elements |
| Style Keyword | Effect |
|---|---|
| "anime style" | Japanese animation |
| "oil painting" | Textured brushstrokes |
| "noir" | High contrast B&W |
| "cyberpunk" | Neon futuristic |
| Upscale | Size Impact |
|---|---|
| 2x | 4x file size |
| 4x | 16x file size |
When to Use This Skill
Use for video editing and transformation:
- Applying style transfer to videos
- Upscaling low-resolution videos
- Increasing frame rate for smooth motion
- Replacing or removing objects
- Enhancing video quality
Related skills:
- For text-to-video: see
fal-text-to-video - For image-to-video: see
fal-image-to-video - For model selection: see
fal-model-guide
fal.ai Video-to-Video Models
Complete reference for video editing, transformation, and upscaling models on fal.ai.
Kling O1 Video Editing
Kling O1 Video-to-Video Edit
Endpoint:
fal-ai/kling-video/o1/video-to-video/edit
Best For: Comprehensive video editing and transformation
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"])
Edit Types:
| Type | Description | Use Case |
|---|---|---|
| General purpose editing | Any transformation |
| Style transfer | Artistic effects |
| Object replacement/editing | Change specific elements |
Parameters:
| Parameter | Type | Description |
|---|---|---|
| string | Editing instruction |
| string | Source video URL |
| string | "general", "style", "object" |
| string | What to avoid |
Kling O1 Examples
Style Transfer:
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" } });
Object Editing:
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" } });
General Transformation:
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 Remix
Sora Remix (Video Transformation)
Endpoint:
fal-ai/sora/remix
Best For: Creative video remixing and transformation
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 Remix Parameters:
| Parameter | Type | Description |
|---|---|---|
| string | Transformation description |
| string | Source video URL |
| string | "16:9", "9:16", "1:1" |
Video Upscaling
Video Upscaler
Endpoint:
fal-ai/video-upscaler
Best For: Enhance video resolution
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 } )
Parameters:
| Parameter | Type | Values | Description |
|---|---|---|---|
| string | - | Source video URL |
| number | 2, 4 | Upscale factor |
TopazVideoAI (if available)
Endpoint:
fal-ai/topaz-video-ai
Best For: Professional video enhancement
const result = await fal.subscribe("fal-ai/topaz-video-ai", { input: { video_url: "https://example.com/video.mp4", enhancement_type: "upscale", target_resolution: "4k" } });
Video Frame Interpolation
Frame Interpolation
Endpoint:
fal-ai/frame-interpolation
Best For: Smooth motion, increase frame rate
const result = await fal.subscribe("fal-ai/frame-interpolation", { input: { video_url: "https://example.com/24fps-video.mp4", target_fps: 60, interpolation_mode: "smooth" } });
Parameters:
| Parameter | Type | Description |
|---|---|---|
| string | Source video |
| number | Target frame rate (30, 60, 120) |
| string | "smooth", "natural" |
Video Style Transfer
General Style Transfer Pipeline
// 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");
Style Keywords
| Style | Prompt Example |
|---|---|
| Anime | "Japanese anime style, cel shading" |
| Watercolor | "Soft watercolor painting with flowing colors" |
| Oil Painting | "Classical oil painting, textured brushstrokes" |
| Pixel Art | "8-bit pixel art retro game style" |
| Noir | "Black and white film noir, high contrast" |
| Cyberpunk | "Neon cyberpunk aesthetic, futuristic" |
| Sketch | "Hand-drawn pencil sketch style" |
| Comic | "Comic book style with bold outlines" |
Video Enhancement Techniques
Denoising
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" } });
Color Correction
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" } });
Lighting Enhancement
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" } });
Video Object Editing
Object Replacement
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" } });
Object Removal
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" } });
Object Addition
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" } });
Complete Parameter Reference
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; }
Workflow Examples
Complete Video Enhancement Pipeline
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; }
Style Transfer Workflow
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");
Batch Video Processing
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); }
Model Comparison
| Model | Editing | Style | Upscale | Speed |
|---|---|---|---|---|
| Kling O1 | Full | Full | No | Medium |
| Sora Remix | Limited | Full | No | Slow |
| Video Upscaler | No | No | Full | Fast |
Best Practices
For Style Transfer
- Be consistent - Use specific style descriptions
- Avoid flickering - Add "consistent" to negative prompt
- Test on clips - Process short segments first
- Maintain identity - Don't over-transform
For Object Editing
- Be specific - Name exact objects to change
- Provide context - Describe replacement clearly
- Consider motion - Ensure edits work with movement
- Check boundaries - Object edges should blend naturally
For Upscaling
- Source quality matters - Clean input = better output
- Don't over-upscale - 2x usually sufficient
- Consider file size - Higher res = larger files
- Test first - Preview with short clip
For General Enhancement
- Incremental changes - Don't try to fix everything at once
- Preserve intent - Keep original mood/style
- Check artifacts - Look for introduced errors
- Iterate - Multiple passes may be needed
Common Issues and Solutions
| Issue | Cause | Solution |
|---|---|---|
| Flickering | Inconsistent frames | Add "consistent, stable" to prompt |
| Color shifts | Over-aggressive editing | Use gentler prompts |
| Lost details | Too much transformation | Reduce edit intensity |
| Artifacts | Compression issues | Use higher quality source |
| Motion blur | Frame interpolation | Use "natural" mode |
File Size Considerations
| Operation | Size Impact |
|---|---|
| 2x Upscale | 4x larger |
| 4x Upscale | 16x larger |
| Frame interpolation | 2-4x larger |
| Style transfer | Similar size |
Always consider storage and bandwidth when processing videos.