---
title: "p-video-2"
description: "Premium AI video generation from text, images, and audio"
url: "https://docs.api.pruna.ai/guides/models/p-video-2"
image: "https://docs.api.pruna.ai/_og/d/c_Ocean.takumi,title_p-video-2,description_~UHJlbWl1bSBBSSB2aWRlbyBnZW5lcmF0aW9uIGZyb20gdGV4dCwgaW1hZ2VzLCBhbmQgYXVkaW8,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiM3YzNhZWQifX19,p_Ii9ndWlkZXMvbW9kZWxzL3AtdmlkZW8tMiI,s_4lzalyfl41nSaYNs.png"
---

# p-video-2

Premium AI video generation from text, images, and audio by Pruna

## [Overview](#overview)

p-video-2 is Pruna's video generation model supporting text-to-video, image-to-video, and audio-conditioned generation. Same inputs as p-video. It offers up to 1080p resolution at 24 or 48 fps, with an optional duration of up to 20 seconds — leave it empty and the model picks the length from the prompt.

**Rate Limit:** 250 requests per minute

**Category:** Video Generation

**Pricing:** billed per second of the video returned.

| Configuration      | Price             |
| :----------------- | :---------------- |
| 720p, draft=false  | $0.03 per second  |
| 720p, draft=true   | $0.015 per second |
| 1080p, draft=false | $0.06 per second  |
| 1080p, draft=true  | $0.03 per second  |

The length is measured from the finished video rather than from the request, so the final price is known once generation completes. The model reports that length in whole seconds. That means you can omit `duration` and let the model choose the length; it also means a request carrying `audio` bills the audio's length rather than any `duration` you sent.

## [Quickstart](#quickstart)

### [Text-to-Video (Asynchronous)](#text-to-video-asynchronous)

```bash
curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Model: p-video-2' \
  -d '{
    "input": {
      "prompt": "A sports car drifting through a neon-lit city at night, cinematic aerial shot",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'
```

### [Text-to-Video (Synchronous)](#text-to-video-synchronous)

```bash
curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Model: p-video-2' \
  -H 'Try-Sync: true' \
  -d '{
    "input": {
      "prompt": "A sports car drifting through a neon-lit city at night, cinematic aerial shot",
      "duration": 5,
      "resolution": "720p",
      "draft": true
    }
  }'
```

### [Image-to-Video](#image-to-video)

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: YOUR_API_KEY" \
  -F "content=@/path/to/your/file.jpg"
```

```bash
curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Model: p-video-2' \
  -d '{
    "input": {
      "prompt": "The camera slowly pushes in, the person turns their head and smiles",
      "image": "https://api.pruna.ai/v1/files/fqadqq42xq",
      "duration": 5,
      "resolution": "720p"
    }
  }'
```

## [Parameters](#parameters)

### [Required Parameters](#required-parameters)

| Parameter | Type   | Description                      |
| :-------- | :----- | :------------------------------- |
| prompt    | string | Text prompt for video generation |

### [Optional Parameters](#optional-parameters)

| Parameter             | Type         | Default | Description                                                                      |
| :-------------------- | :----------- | :------ | :------------------------------------------------------------------------------- |
| duration              | integer      | —       | Duration in seconds (1-20). Leave empty to let the model choose the length from the prompt. Ignored when audio is provided |
| image                 | string (URI) | —       | Input image for image-to-video. Supports jpg, jpeg, png, webp                    |
| audio                 | string (URI) | —       | Input audio to condition generation. Supports flac, mp3, wav                     |
| resolution            | string       | "720p"  | "720p" or "1080p"                                                                |
| fps                   | integer      | 24      | 24 or 48                                                                         |
| aspect_ratio          | string       | "16:9"  | "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "1:1". Ignored when an input image is provided |
| seed                  | integer      | random  | Random seed for reproducible generation                                          |
| draft                 | boolean      | false   | Faster, lower-quality preview. Billed at half the standard per-second rate       |
| save_audio            | boolean      | true    | Save the video with audio                                                        |
| last_frame_image      | string (URI) | —       | Reference image for the last frame                                               |
| prompt_upsampling     | boolean      | true    | Enhance the prompt                                                               |
| disable_safety_filter | boolean      | true    | Disable safety filter for prompts and input images                               |