Skip to content
Developer Portal

p-video-upscale

Upscale an existing video to 720p, 1080p, 2k, or 4k

p-video-upscale takes an existing video and returns a higher-resolution H.264 MP4. The output keeps the source aspect ratio and copies the source audio when the input has any. A clip that is already larger than the chosen target is not shrunk.

Rate Limit: 50 requests per minute

Category: Video Upscaling

Pricing: billed per second of the returned video, rounded up to the next whole second. The rate depends on the target and on the frame rate of the returned video. turbo does not change the price.

TargetUp to 30 fpsAbove 30 fps (up to 60)
720p$0.01 per second of output video$0.02 per second of output video
1080p$0.02 per second of output video$0.04 per second of output video
2k$0.04 per second of output video$0.08 per second of output video
4k$0.08 per second of output video$0.16 per second of output video

A 5-second clip up to 30 fps costs $0.05, $0.10, $0.20, or $0.40 at those targets. The output keeps the source frame rate unless you set fps, so a 60 fps source is billed at the above-30-fps rate even when fps is left empty.

Terminal window
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: YOUR_API_KEY" \
-F "content=@/path/to/source-video.mp4"
Terminal window
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H 'apikey: YOUR_API_KEY' \
-H 'Model: p-video-upscale' \
-d '{
"input": {
"video": "https://api.pruna.ai/v1/files/source-video-abc123",
"target": "1080p"
}
}'
Terminal window
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H 'apikey: YOUR_API_KEY' \
-H 'Model: p-video-upscale' \
-H 'Try-Sync: true' \
-d '{
"input": {
"video": "https://api.pruna.ai/v1/files/source-video-abc123",
"target": "4k",
"turbo": true
}
}'
ParameterTypeDescription
videostring (URI)Input video to upscale. Maximum upload size: 512 MiB
ParameterTypeDefaultDescription
targetstring1080pOutput resolution target: 720p, 1080p, 2k, or 4k. These are pixel-area presets; non-16:9 inputs keep their aspect ratio
fpsintegersourceOutput frame rate, from 16 to 60. Leave empty to keep the input video's frame rate (up to 60 fps). A higher rate than the input is interpolated. Above 30 fps the higher rate applies
turbobooleanfalseFaster generation with slightly lower quality. Does not change the price
enable_safety_filterbooleanfalseCheck the video against the content policy. When off, only the always-on categories (sexual content involving minors, self-harm intent or instructions) are still blocked.

Length is capped by processed frames, not by a fixed duration:

TargetProcessed-frame cap
720p2,400
1080p1,200
2k600
4k300

Up to 30 fps every output frame is processed; above 30 fps, 30 frames per second are processed and the rest are interpolated. A clip past the cap is rejected. Use a shorter clip, a lower target, or a lower fps.