Media-skills video-upscaler
Intelligently upscale and enhance videos to cinematic quality using a multi-model backend (Topaz, SeedVR2).
git clone https://github.com/wells1137/media-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/wells1137/media-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/video-upscaler" ~/.claude/skills/wells1137-media-skills-video-upscaler && rm -rf "$T"
skills/video-upscaler/SKILL.mdSummary
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
endpoint with a video URL and a profile name. The service validates the request, selects the appropriate AI model, and submits the job to the/upscale
backend. It immediately returns afal.ai
.task_id -
Poll for Status: The agent uses the
to periodically call thetask_id
endpoint. The status will be/status/{task_id}
,queued
, orin_progress
. Once completed, the response will contain the URL of the final, upscaled video.completed
Available Profiles
| Profile Name | Description |
|---|---|
| 2x upscale using Topaz Proteus v4. Best all-around quality for live-action footage. |
| Upscale to 4K (2160p) using SeedVR2. Best for cinematic content requiring temporal consistency. |
| 2x upscale + frame interpolation to 60 FPS using Topaz Apollo v8. Best for sports and action. |
| 4x upscale using Topaz. Best for AI-generated videos that need resolution boosting. |
| 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.