P-Video-Upscale

P-Video-Upscale is Pruna AI's video upscaling model for raising an existing clip to 720p, 1080p, 2K, or 4K while keeping its aspect ratio and audio track. It sharpens what is already in the frame without a prompt, can raise the frame rate to as much as 60 FPS by interpolating new frames, and offers a turbo mode that trades a little quality for speed. It works on live action, anime, game footage, and archival film, for bringing low-resolution generations or older footage up to delivery resolution.

API Reference
INTEGRATE
Complete technical specification for integration
RequestResponse
Examples4
CODE
Ready-to-use code snippets for common workflows
Guides3
LEARN
Step-by-step tutorials for advanced use cases
upscale
Gyotaku Artwork Detail Enhancement$0.242~1m 13simport { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'prunaai:p-video@upscale',
resolution: '4k',
inputs: {
video: 'https://assets.runware.ai/assets/inputs/be57ca23-6058-4719-afa2-e3b53d88f30f.mp4'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/be57ca23-6058-4719-afa2-e3b53d88f30f.mp4"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "upscale",
"taskUUID": "1b6a17c3-e66c-4d3b-8658-2848aa5c7d09",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/be57ca23-6058-4719-afa2-e3b53d88f30f.mp4"
}
}
]'runware run prunaai:p-video@upscale \
resolution=4k \
inputs.video=https://assets.runware.ai/assets/inputs/be57ca23-6058-4719-afa2-e3b53d88f30f.mp4{
"taskType": "upscale",
"taskUUID": "1b6a17c3-e66c-4d3b-8658-2848aa5c7d09",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/be57ca23-6058-4719-afa2-e3b53d88f30f.mp4"
}
}Response
{
"taskType": "upscale",
"taskUUID": "1b6a17c3-e66c-4d3b-8658-2848aa5c7d09",
"videoUUID": "6d59d80c-cfba-4334-90ec-b812f5b32b0c",
"videoURL": "https://vm.runware.ai/video/os/a07dlim3/ws/5/vi/6d59d80c-cfba-4334-90ec-b812f5b32b0c.mp4",
"cost": 0.242
}upscale
Peregrine Falcon Conservation Portrait$0.242~1m 33simport { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'prunaai:p-video@upscale',
resolution: '4k',
fps: 24,
inputs: {
video: 'https://assets.runware.ai/assets/inputs/2af7fc70-d737-4c33-9c92-81cea83eb302.mp4'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"fps": 24,
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/2af7fc70-d737-4c33-9c92-81cea83eb302.mp4"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "upscale",
"taskUUID": "9293cb9f-26dc-4d69-8cec-5a7158b0d16a",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"fps": 24,
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/2af7fc70-d737-4c33-9c92-81cea83eb302.mp4"
}
}
]'runware run prunaai:p-video@upscale \
resolution=4k \
fps=24 \
inputs.video=https://assets.runware.ai/assets/inputs/2af7fc70-d737-4c33-9c92-81cea83eb302.mp4{
"taskType": "upscale",
"taskUUID": "9293cb9f-26dc-4d69-8cec-5a7158b0d16a",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"fps": 24,
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/2af7fc70-d737-4c33-9c92-81cea83eb302.mp4"
}
}Response
{
"taskType": "upscale",
"taskUUID": "9293cb9f-26dc-4d69-8cec-5a7158b0d16a",
"videoUUID": "72ab49f3-687e-4eae-bd03-96bd45a8753f",
"videoURL": "https://vm.runware.ai/video/os/a01d21/ws/5/vi/72ab49f3-687e-4eae-bd03-96bd45a8753f.mp4",
"cost": 0.242
}upscale
Archival Lace Mill Film Restoration$0.242~1m 30simport { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'prunaai:p-video@upscale',
resolution: '4k',
inputs: {
video: 'https://assets.runware.ai/assets/inputs/46a38a62-a7b3-4c92-a73a-f60dda5dec1c.mp4'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/46a38a62-a7b3-4c92-a73a-f60dda5dec1c.mp4"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "upscale",
"taskUUID": "270e35f7-5ad7-4239-a8ae-9831c4126a88",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/46a38a62-a7b3-4c92-a73a-f60dda5dec1c.mp4"
}
}
]'runware run prunaai:p-video@upscale \
resolution=4k \
inputs.video=https://assets.runware.ai/assets/inputs/46a38a62-a7b3-4c92-a73a-f60dda5dec1c.mp4{
"taskType": "upscale",
"taskUUID": "270e35f7-5ad7-4239-a8ae-9831c4126a88",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/46a38a62-a7b3-4c92-a73a-f60dda5dec1c.mp4"
}
}Response
{
"taskType": "upscale",
"taskUUID": "270e35f7-5ad7-4239-a8ae-9831c4126a88",
"videoUUID": "e9303e78-374d-416d-9e0f-60b7380bf6bc",
"videoURL": "https://vm.runware.ai/video/os/a01d21/ws/5/vi/e9303e78-374d-416d-9e0f-60b7380bf6bc.mp4",
"cost": 0.242
}upscale
Archival Kintsugi Workshop Restoration$0.242~1m 14simport { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'prunaai:p-video@upscale',
resolution: '4k',
inputs: {
video: 'https://assets.runware.ai/assets/inputs/838f4a67-92fb-417b-90fb-ea0b80f6cbc8.mp4'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/838f4a67-92fb-417b-90fb-ea0b80f6cbc8.mp4"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "upscale",
"taskUUID": "db4e8ff6-2e6e-43ce-8e08-f8db9ffe783a",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/838f4a67-92fb-417b-90fb-ea0b80f6cbc8.mp4"
}
}
]'runware run prunaai:p-video@upscale \
resolution=4k \
inputs.video=https://assets.runware.ai/assets/inputs/838f4a67-92fb-417b-90fb-ea0b80f6cbc8.mp4{
"taskType": "upscale",
"taskUUID": "db4e8ff6-2e6e-43ce-8e08-f8db9ffe783a",
"model": "prunaai:p-video@upscale",
"resolution": "4k",
"inputs": {
"video": "https://assets.runware.ai/assets/inputs/838f4a67-92fb-417b-90fb-ea0b80f6cbc8.mp4"
}
}Response
{
"taskType": "upscale",
"taskUUID": "db4e8ff6-2e6e-43ce-8e08-f8db9ffe783a",
"videoUUID": "7abe156b-010d-47a4-a419-e391de0c198b",
"videoURL": "https://vm.runware.ai/video/os/a08dlim3/ws/5/vi/7abe156b-010d-47a4-a419-e391de0c198b.mp4",
"cost": 0.242
}