video-upscaler
Summary
The Video Upscaler skill provides professional-grade video quality enhancement by leveraging a powerful, multi-model backend. It intelligently selects the best AI model (Topaz, SeedVR2, etc.) based on the user-defined profile to achieve optimal results, transforming low-resolution or noisy footage into crisp, cinematic-quality video.
This skill abstracts away the complexity of choosing and configuring different AI upscaling models. Instead of dealing with dozens of technical parameters, the user simply chooses a high-level goal, and the skill handles the rest.
Features
- Multi-Model Backend: Dynamically routes requests to the best model for the job (Topaz, SeedVR2, etc.) via a unified API.
- Profile-Based Enhancement: Offers a range of pre-configured profiles for common use cases, from standard 2x upscaling to 4K cinematic conversion and 60 FPS frame boosting.
- Asynchronous by Design: Handles long-running video processing jobs without blocking the agent.
- Simple Interface: Requires only a video URL and a profile name to start.
How It Works
The skill operates in a simple, two-step asynchronous workflow:
-
Submit Job: The agent calls the
/upscaleendpoint with a video URL and a profile name. The service validates the request, selects the appropriate AI model, and submits the job to thefal.aibackend. It immediately returns atask_id. -
Poll for Status: The agent uses the
task_idto periodically call the/status/{task_id}endpoint. The status will bequeued,in_progress, orcompleted. Once completed, the response will contain the URL of the final, upscaled video.
Available Profiles
| Profile Name | Description |
|---|---|
standard_x2 |
2x upscale using Topaz Proteus v4. Best all-around quality for live-action footage. |
cinema_4k |
Upscale to 4K (2160p) using SeedVR2. Best for cinematic content requiring temporal consistency. |
frame_boost_60fps |
2x upscale + frame interpolation to 60 FPS using Topaz Apollo v8. Best for sports and action. |
ai_video_enhance |
4x upscale using Topaz. Best for AI-generated videos that need resolution boosting. |
web_optimized |
Upscale to 1080p with web-optimized H264 output. Best for social media and web publishing. |
End-to-End Example
User Request: "Enhance this video to 4K cinematic quality: [video_url]"
1. Agent -> Skill (Submit Job)
The agent identifies the user's intent and calls the /upscale endpoint with the cinema_4k profile.
curl -X POST http://<your_backend_url>/upscale \
-H "Content-Type: application/json" \
-d
"video_url": "[video_url]",
"profile": "cinema_4k"
}
Response:
{
"task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"model_used": "fal-ai/seedvr/upscale/video",
"profile": "cinema_4k"
}
2. Agent -> Skill (Poll for Status)
The agent waits and then polls the status endpoint.
curl http://<your_backend_url>/status/a1b2c3d4-e5f6-7890-1234-567890abcdef
Response (In Progress):
{
"task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"status": "in_progress",
"logs": ["Processing frame 100/1200..."]
}
Response (Completed):
{
"task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"status": "completed",
"result": {
"video_url": "https://.../upscaled_video.mp4"
}
}
3. Agent -> User
The agent delivers the final, upscaled video URL to the user.