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

# P-Video

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

## [Overview](#overview)

P-Video is Pruna's premium video generation model supporting text-to-video, image-to-video, and audio-conditioned generation. It offers up to 1080p resolution at 24 or 48 fps, with configurable duration up to 20 seconds. Built-in prompt upsampling automatically enhances your prompts for better results.

**Rate Limit:** 250 requests per minute

**Category:** Video Generation

**Pricing:**

| Configuration             | Price                             |
| :------------------------ | :-------------------------------- |
| 720p - draft mode is OFF  | 0.02$ per second of output video  |
| 720p - draft mode is ON   | 0.005$ per second of output video |
| 1080p - draft mode is OFF | 0.04$ per second of output video  |
| 1080p - draft mode is ON  | 0.01$ per second of output video  |

## [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' \
  -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"
    }
  }'
```

Response:

```text
  {
    "id": "1zww7deyssrme0csqwr90phzzr",
    "model": "p-video",
    "input": { ... },
    "get_url": "https://api.pruna.ai/v1/predictions/status/1zww7deyssrme0csqwr90phzzr"
  }
```

Check status and get results:

```bash
  curl -X GET 'https://api.pruna.ai/v1/predictions/status/1zww7deyssrme0csqwr90phzzr' \
    -H 'apikey: YOUR_API_KEY'
```

### [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' \
  -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",
      "aspect_ratio": "16:9"
    }
  }'
```

Response (if completed within 60 seconds):

```text
{
  "status": "succeeded",
  "generation_url": "/v1/predictions/delivery/xezq/52UGYRrRfqViaKmvYsEnENTh0qLDAWHptQ8jOnEHu7XC6AtKA/output.mp4"
}
```

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

#### [Start with uploading an image](#start-with-uploading-an-image)

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

Note: Use -F (form) with @ prefix to upload a file from your local filesystem. The file path should be absolute or relative to your current directory.

Response:

```text
{
  "id": "fqadqq42xq",
  "name": "test.jpg",
  "content_type": "image/jpeg",
  "size": 185093,
  "etag": "\"14e9a51deaac6bee2dd8b5c52d7d0b5f\"",
  "checksums": {
    "sha256": "aa10d5d09bcee5cb5d854bd81899308b0cf0c0c50e29d4f00c2c06e51f0e2fe6"
  },
  "metadata": {
    "content_length": 185093,
    "width": 1344,
    "height": 768
  },
  "created_at": "2025-01-08T18:51:26.729Z",
  "expires_at": "2025-01-09T18:51:26.729Z",
  "urls": {
    "get": "https://api.pruna.ai/v1/files/fqadqq42xq"
  }
}
```

#### [Then pass that image in the "image" field](#then-pass-that-image-in-the-image-field)

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

Note: The image parameter should be a publicly accessible URL. You can upload files using the /v1/files endpoint first. When an input image is provided, the aspect\_ratio parameter is ignored.

### [Audio-Conditioned Video](#audio-conditioned-video)

#### [Upload an audio file first](#upload-an-audio-file-first)

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

#### [Then pass the audio URL in the "audio" field](#then-pass-the-audio-url-in-the-audio-field)

```bash
curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Model: p-video' \
  -d '{
    "input": {
      "prompt": "A musician performing on stage with dramatic lighting",
      "audio": "https://api.pruna.ai/v1/files/abc123audio",
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'
```

Note: When audio is provided, the duration parameter is ignored — the video duration matches the audio length. Supported audio formats: flac, mp3, wav.

### [Parameters](#parameters)

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

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

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

| Parameter             | Type         | Default | Description                                                                      |
| :-------------------- | :----------- | :------ | :------------------------------------------------------------------------------- |
| image                 | string (URI) | -       | Input image to generate video from (image-to-video). Supports jpg, jpeg, png, webp |
| audio                 | string (URI) | -       | Input audio to condition video generation. Supports flac, mp3, wav               |
| duration              | integer      | 5       | Duration of the video in seconds (1-20). Ignored when audio is provided          |
| resolution            | string       | "720p"  | Video resolution: "720p" or "1080p"                                              |
| fps                   | integer      | 24      | Frames per second: 24 or 48                                                      |
| aspect_ratio          | string       | "16:9"  | Aspect ratio of the video. Options: "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. Set for reproducible generation                                     |
| draft                 | boolean      | false   | Draft mode. Generates a lower-quality preview of the video                       |
| save_audio            | boolean      | true    | Save the video with audio                                                        |
| last_frame_image      | string (URI) | -       | Reference image for the last frame of the video. Supports jpg, jpeg, png, webp   |
| prompt_upsampling     | boolean      | true    | Use prompt upsampling to enhance the prompt                                      |
| disable_safety_filter | boolean      | true    | Disable safety filter for prompts and input images                               |

License: [https://github.com/Lightricks/LTX-2/blob/main/LICENSE](https://github.com/Lightricks/LTX-2/blob/main/LICENSE)