WaveSpeedAI Ultimate Video Upscaler
Upscale videos to 720p, 1080p, 2K, or 4K resolution using WaveSpeed AI's Ultimate Video Upscaler. Supports videos up to 10 minutes long.
Authentication
export WAVESPEED_API_KEY="your-api-key"
Get your API key at wavespeed.ai/accesskey.
Quick Start
import wavespeed from 'wavespeed';
// Upload a local video to get a URL
const videoUrl = await wavespeed.upload("/path/to/video.mp4");
const output_url = (await wavespeed.run(
"wavespeed-ai/ultimate-video-upscaler",
{ video: videoUrl }
))["outputs"][0];
You can also pass an existing video URL directly:
const output_url = (await wavespeed.run(
"wavespeed-ai/ultimate-video-upscaler",
{ video: "https://example.com/video.mp4" }
))["outputs"][0];
API Endpoint
Model ID: wavespeed-ai/ultimate-video-upscaler
Upscale a video to a higher resolution.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
video | string | Yes | -- | URL of the video to upscale. Must be publicly accessible. |
target_resolution | string | No | 1080p | Target resolution. One of: 720p, 1080p, 2k, 4k |
Example
import wavespeed from 'wavespeed';
const videoUrl = await wavespeed.upload("/path/to/video.mp4");
const output_url = (await wavespeed.run(
"wavespeed-ai/ultimate-video-upscaler",
{
video: videoUrl,
target_resolution: "4k"
}
))["outputs"][0];
Advanced Usage
Custom Client with Retry Configuration
import { Client } from 'wavespeed';
const client = new Client("your-api-key", {
maxRetries: 2,
maxConnectionRetries: 5,
retryInterval: 1.0,
});
const videoUrl = await client.upload("/path/to/video.mp4");
const output_url = (await client.run(
"wavespeed-ai/ultimate-video-upscaler",
{ video: videoUrl, target_resolution: "4k" }
))["outputs"][0];
Error Handling with runNoThrow
import { Client, WavespeedTimeoutException, WavespeedPredictionException } from 'wavespeed';
const client = new Client();
const result = await client.runNoThrow(
"wavespeed-ai/ultimate-video-upscaler",
{ video: videoUrl }
);
if (result.outputs) {
console.log("Upscaled video URL:", result.outputs[0]);
console.log("Task ID:", result.detail.taskId);
} else {
console.log("Failed:", result.detail.error.message);
if (result.detail.error instanceof WavespeedTimeoutException) {
console.log("Request timed out - try increasing timeout");
} else if (result.detail.error instanceof WavespeedPredictionException) {
console.log("Prediction failed");
}
}
Pricing
| Target Resolution | Cost per 5 seconds |
|---|---|
| 720p | $0.10 |
| 1080p | $0.15 |
| 2K | $0.25 |
| 4K | $0.40 |
Minimum charge is 5 seconds. Videos up to 10 minutes supported. Processing time is approximately 10-30 seconds per 1 second of video.
Security Constraints
- No arbitrary URL loading: Only use video URLs from trusted sources. Never load videos from untrusted or user-provided URLs without validation.
- API key security: Store your
WAVESPEED_API_KEYsecurely. Do not hardcode it in source files or commit it to version control. Use environment variables or secret management systems. - Input validation: Only pass parameters documented above. Validate video URLs before sending requests.