live
MODEL IDprunaai:p-video@2-pro

P-Video-2-Pro

Pruna AI
by

P-Video-2-Pro is Pruna AI's quality-tier video generation model built on MiniMax H3, creating clips from text or from a first frame with an optional last frame. It handles multi-beat camera moves, heavy physics like water, fire, and fabric, coherent full-body motion, and two-shot dialogue with lip sync, generating audio with every clip. It offers a speed or quality recipe, three levels of prompt expansion, durations from 5 to 15 seconds, and 480p or 768p output at 24 FPS.

P-Video-2-Pro

Camera moves, physics and full-body motion

How to direct camera moves in several beats with Pruna P-Video-2-Pro, and how to prompt liquids, fire, fabric and full-body action so they hold together.

Introduction

P-Video-2-Pro is the Pruna video model for shots that travel. One prompt can take the camera through several moves while everything in front of it keeps behaving like a physical object: water splashes and settles, flames flare and die back, fabric catches the wind, and a runner's stride stays a stride from the first frame to the last.

Three camera beats from one prompt, each tied to the runner

A trail runner in a rust windbreaker and black tights runs down a rocky ridge path at sunrise. The camera starts low beside her feet, tracking at running pace as her shoes strike loose gravel. As she reaches a shallow mountain stream, the camera rises to shoulder height and she leaps across it, one foot splashing through the edge of the water and throwing up a spray of droplets. As she lands, the camera slows and pulls back and up into a wide shot that reveals the green valley below as she runs on down the path. One continuous unbroken shot with no cuts. Photoreal outdoor sportswear campaign cinematography, warm low sunlight, no text, no logos. Audio: her steady breathing, shoes crunching on gravel, one sharp splash as she crosses the stream, wind across the ridge, no music, no voice.

Ten seconds and three camera beats, each tied to something the runner does. The camera starts at her feet, follows her through the stream and rises into a wide of the valley once she is across. This guide covers writing a move in beats, giving each beat enough time, prompting physics, describing full-body action, and carrying the same language into game cinematics.

Writing a move in beats

A beat is one camera move with a start and an end, such as a push or a turn. Write the beats in the order they happen and anchor each change to something in the scene, a place the camera passes or an event the subject performs. The anchor is what tells the model where one move hands over to the next.

The same loft listing three ways, on one seed, with settings.promptUpsampling off so the camera wording is exactly what the model read:

The single push is the safe baseline, and it is also the shot every listing already has. The anchored version turns at the island and rises at the windows because the prompt says where each move begins. The listed version performs the same three moves at points the model picks, so the turn and the rise happen wherever it decided rather than where the room gives them a reason.

In a walkthrough the anchors double as the tour. The island and the view are what the listing is selling, and tying a move to each one is what makes the camera stop on them.

Try in Playground
import { 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@2-pro',
  positivePrompt: 'The camera starts just inside the front door and glides forward past the dining table. As it reaches the kitchen island it turns left to follow the counter, and once the windows fill the frame it rises slightly and settles on the view over the city. A bright converted loft apartment with exposed brick walls, a long oak dining table, a matte black kitchen island and floor-to-ceiling steel-framed windows looking over the city. Late morning daylight. Photoreal real-estate listing cinematography, smooth stabilized camera at eye height, no people, no text. Audio: quiet interior room tone, faint city traffic through the windows, no music, no voice.',
  width: 1344,
  height: 768,
  duration: 10,
  seed: 4817305,
  settings: {
    promptUpsampling: 'off'
  },
  deliveryMethod: 'async'
})
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@2-pro",
            "positivePrompt": "The camera starts just inside the front door and glides forward past the dining table. As it reaches the kitchen island it turns left to follow the counter, and once the windows fill the frame it rises slightly and settles on the view over the city. A bright converted loft apartment with exposed brick walls, a long oak dining table, a matte black kitchen island and floor-to-ceiling steel-framed windows looking over the city. Late morning daylight. Photoreal real-estate listing cinematography, smooth stabilized camera at eye height, no people, no text. Audio: quiet interior room tone, faint city traffic through the windows, no music, no voice.",
            "width": 1344,
            "height": 768,
            "duration": 10,
            "seed": 4817305,
            "settings": {
                "promptUpsampling": "off"
            },
            "deliveryMethod": "async"
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "6d2a9f41-3c87-4e15-b0a2-8f5c1d7e3b94",
      "model": "prunaai:p-video@2-pro",
      "positivePrompt": "The camera starts just inside the front door and glides forward past the dining table. As it reaches the kitchen island it turns left to follow the counter, and once the windows fill the frame it rises slightly and settles on the view over the city. A bright converted loft apartment with exposed brick walls, a long oak dining table, a matte black kitchen island and floor-to-ceiling steel-framed windows looking over the city. Late morning daylight. Photoreal real-estate listing cinematography, smooth stabilized camera at eye height, no people, no text. Audio: quiet interior room tone, faint city traffic through the windows, no music, no voice.",
      "width": 1344,
      "height": 768,
      "duration": 10,
      "seed": 4817305,
      "settings": {
        "promptUpsampling": "off"
      },
      "deliveryMethod": "async"
    }
  ]'
runware run prunaai:p-video@2-pro \
  positivePrompt="The camera starts just inside the front door and glides forward past the dining table. As it reaches the kitchen island it turns left to follow the counter, and once the windows fill the frame it rises slightly and settles on the view over the city. A bright converted loft apartment with exposed brick walls, a long oak dining table, a matte black kitchen island and floor-to-ceiling steel-framed windows looking over the city. Late morning daylight. Photoreal real-estate listing cinematography, smooth stabilized camera at eye height, no people, no text. Audio: quiet interior room tone, faint city traffic through the windows, no music, no voice." \
  width=1344 \
  height=768 \
  duration=10 \
  seed=4817305 \
  settings.promptUpsampling=off \
  deliveryMethod=async
{
  "taskType": "videoInference",
  "taskUUID": "6d2a9f41-3c87-4e15-b0a2-8f5c1d7e3b94",
  "model": "prunaai:p-video@2-pro",
  "positivePrompt": "The camera starts just inside the front door and glides forward past the dining table. As it reaches the kitchen island it turns left to follow the counter, and once the windows fill the frame it rises slightly and settles on the view over the city. A bright converted loft apartment with exposed brick walls, a long oak dining table, a matte black kitchen island and floor-to-ceiling steel-framed windows looking over the city. Late morning daylight. Photoreal real-estate listing cinematography, smooth stabilized camera at eye height, no people, no text. Audio: quiet interior room tone, faint city traffic through the windows, no music, no voice.",
  "width": 1344,
  "height": 768,
  "duration": 10,
  "seed": 4817305,
  "settings": {
    "promptUpsampling": "off"
  },
  "deliveryMethod": "async"
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "6d2a9f41-3c87-4e15-b0a2-8f5c1d7e3b94",
    "videoUUID": "b3e81c52-7a49-4d06-9f13-2c6a8d4f1e75",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/b3e81c52-7a49-4d06-9f13-2c6a8d4f1e75.mp4"
  }
]

When a shot needs one move on a subject close to the lens and surface detail is what sells it, P-Video-2 renders that kind of clip at up to 1080p.

Giving each beat enough time

duration runs from 5 to 15 seconds and defaults to 5, which is less than a three-beat move needs. The anchored walkthrough at both lengths, same seed:

At five seconds all three beats still happen, at twice the speed. The glide and the turn are over in about three seconds, and the camera sweeps where the ten-second version walks. The room is laid out differently too, since a different length is a different generation, so compare the pace rather than the furniture.

Budget roughly three seconds a beat when the move should read at walking pace, and count the beats before you set the length. Three beats in five seconds is a sweep. In ten it is a tour. Since the clip bills per second, speed, quality and size covers what the extra seconds cost.

Giving physics a cause

Liquids, fire and fabric are where a short prompt costs the most. "Splashes" names an outcome and leaves the model to invent the event behind it. Describe the event instead: what hits what, how the material reacts, and how it comes to rest.

Both bottles land in the bucket. The described one plays the stages in order: it breaks the surface, throws up a crown of water and lets the ice settle, because each stage was a clause the model could render. The named one leaves the size of the splash to the model, and here that means water over the side and ice cubes scattered across the table.

The same three stages carry over to anything physical:

The settle is the stage people leave out, and it is the one that stops a clip ending mid-reaction. A flare that never drops back reads as a grill fire rather than a sear, and a gust that never eases leaves the shirt stuck mid-flap in the frame a lookbook would use.

Full-body motion

A workout demo needs the form to be right, not just a body that moves. Name an exercise and the model recalls roughly what it looks like. Describe the positions in order and the body only has to travel between them.

The described version passes through every position the prompt lists: the squat, the plank, the jump back in and the leap. That is the clip a trainer can sign off on. The named one never becomes a burpee: she walks her feet in and out of a plank and never stands up for the jump.

Frame the move full-length and say the whole body stays in frame. A hand or foot that leaves the frame has to be reinvented when it returns, and a side-on view shows the joints the movement is about.

Body sequences and camera beats combine. The layup below anchors its one camera beat to the moment he leaves the ground:

A body sequence with one anchored camera beat

A basketball player in a plain white jersey dribbles at the top of the key on an outdoor court, crosses the ball from his right hand to his left, drives past a defender in a plain black jersey, takes two long steps and lays the ball up off the backboard into the hoop. The camera tracks beside him at waist height, and as he rises for the layup it tilts up to follow the ball into the net. Late afternoon sun, chain-link fence behind the court. Photoreal sports documentary cinematography, no text, no logos, no crowd. Audio: the ball bouncing on asphalt, sneakers scuffing, the ball hitting the backboard and rim, no music, no voice.

Keep the body sequence and the camera move in separate sentences, the way that prompt does. Each keeps its own order, and the anchor ("as he rises for the layup") is the single point where the two meet.

Stylized and game cinematics

Without a style instruction the model renders photoreal footage. For a game trailer, name the render style in the first clause and rule out live action, since that is the default you are steering away from. Camera beats and physics clauses work the same way inside a stylized render.

The same beat and physics language in a stylized render

Stylized cel-shaded 3D racing game cinematic with bold black outlines, flat saturated colors and simple toon lighting, not live-action and not photoreal. A bright orange rally car with plain white number panels powers into a muddy hairpin on a sunny forest stage. As it reaches the apex it swings its rear out into a full sideways slide, and its rear wheels throw a thick arc of brown mud across the track in chunky stylized clumps. The camera starts low at the edge of the apex with the car filling the frame as it slides past, swings around quickly to follow it as it straightens out, then chases close behind its rear bumper up the next straight. Sunny afternoon, tall green pines, puffy stylized clouds. No HUD, no on-screen text, no logos. Audio: the engine revving hard and dropping as the car slides, mud and gravel spraying, a heavy percussion hit as the car exits the corner, no voice.

The mud arc is a physics clause and the chase is two anchored beats, written exactly as they would be for a live-action car ad, so only the style clause changed. The exclusions rule out a HUD and on-screen text, which a prompt that says "game" otherwise invites.

Tips

  1. Give every beat its own clause. A push and a turn are two clauses, written in the order they happen.

  2. Anchor each change of move. "As it reaches the kitchen island" tells the model where a turn begins. A bare list of camera terms leaves that to chance.

  3. Budget roughly three seconds a beat. The same three beats in five seconds come back as a sweep, and in ten as a walkthrough.

  4. Give physics a cause and a settle. Name what hits what, how the material responds, and how it comes to rest.

  5. Describe positions, not exercise names. A sequence of body positions produces form you can check. A named exercise produces the model's version of it.

  6. Keep the whole body in frame. Full-length framing and a side-on view keep limbs from leaving and being reinvented.

  7. Name the style first for stylized work. Say what the render is and that it is not live action, then write camera and physics the usual way.

  8. Write the sound of the event. A splash you can see lands harder with a splash you can hear, and dialogue and audio covers directing it.