p-video-2-pro-reference
Video generation from a prompt with image, video, and audio references
p-video-2-pro-reference generates a video from a prompt and at least one image or video reference. It is built on MiniMax H3. Audio references are optional. Resolutions are 480p and 768p. Duration is 5–15 seconds (default 5).
mode is speed (default) or cost. There is no quality mode. prompt_upsampler rewrites the prompt before generation: turbo (default, the fast upsampler), max, or off. It does not change the price.
keep_audio is off by default. Set it with exactly one audio file to keep that file as the video's audio instead of only using it as a reference. The video is generated to match it. Shorter audio plays first and the model generates the rest; longer audio is cut to duration. An audio file within 1 second of duration sets the video length. It does not change the price.
first_frame_image and last_frame_image are optional soft keyframes. They count as reference images. A start or end frame needs prompt upsampling, so prompt_upsampler=off still runs turbo when one of those frames is set.
Reference limits, enforced by the model: up to 9 images including start and end frames (20 MiB, 4096 px), 3 videos (100 MiB, 1080p, 60 fps, 2–15 seconds each, 15 seconds combined), and 3 audio files (50 MiB, 15 seconds combined).
Rate Limit: 250 requests per minute
Category: Video Generation
Pricing: billed from the finished run. Output seconds use a rate for resolution and mode. Reference video seconds use a rate for the same pair. Each reference image has a per-image rate, and reference audio has a per-second rate. Start and end frames count as images. Image and audio rates do not depend on resolution.
| Output | Price |
|---|---|
| 480p, mode=cost | $0.015 per second |
| 768p, mode=cost | $0.025 per second |
| 480p, mode=speed | $0.02 per second |
| 768p, mode=speed | $0.035 per second |
| Reference video | Price |
|---|---|
| 480p, mode=cost | $0.03 per second |
| 768p, mode=cost | $0.06 per second |
| 480p, mode=speed | $0.04 per second |
| 768p, mode=speed | $0.06 per second |
| Reference images | Price |
|---|---|
| mode=cost | $0.005 each |
| mode=speed | $0.01 each |
| Reference audio | Price |
|---|---|
| mode=cost | $0.0015 per second |
| mode=speed | $0.0025 per second |
Output length and reference usage are measured from the finished run, so the final price is known once generation completes. Omitted mode is billed as speed. prompt_upsampler and keep_audio do not change the price.
Output seconds are the wrapper's whole-second count, int(num_frames / 24). A 5 second request is 124 frames and bills as 5 seconds. A 15 second request is 345 frames and bills as 14 seconds. Each reference clip counts only up to that output length plus 0.5 seconds, and reference video is capped at 15 seconds combined. A 15 second reference clip on a 5 second output bills about 5.5 reference-video seconds, not the full upload. The per-second rates above are with no references. The shortest run is 5 seconds, so the cheapest request is $0.075 (cost, 480p, no references).
Quickstart
Section titled “Quickstart”Image reference (asynchronous)
Section titled “Image reference (asynchronous)”curl -X POST 'https://api.pruna.ai/v1/predictions' \ -H 'Content-Type: application/json' \ -H 'apikey: YOUR_API_KEY' \ -H 'Model: p-video-2-pro-reference' \ -d '{ "input": { "prompt": "The person in the reference walks through a sunlit market", "image": ["https://api.pruna.ai/v1/files/fqadqq42xq"], "duration": 5, "resolution": "768p", "aspect_ratio": "adaptive" } }'Cost mode (synchronous)
Section titled “Cost mode (synchronous)”curl -X POST 'https://api.pruna.ai/v1/predictions' \ -H 'Content-Type: application/json' \ -H 'apikey: YOUR_API_KEY' \ -H 'Model: p-video-2-pro-reference' \ -H 'Try-Sync: true' \ -d '{ "input": { "prompt": "The person in the reference walks through a sunlit market", "image": ["https://api.pruna.ai/v1/files/fqadqq42xq"], "duration": 5, "resolution": "480p", "mode": "cost" } }'Video, audio, and soft keyframes
Section titled “Video, audio, and soft keyframes”Upload each file first, then pass the returned URLs:
curl -X POST "https://api.pruna.ai/v1/files" \ -H "apikey: YOUR_API_KEY" \ -F "content=@/path/to/your/file.jpg"curl -X POST 'https://api.pruna.ai/v1/predictions' \ -H 'Content-Type: application/json' \ -H 'apikey: YOUR_API_KEY' \ -H 'Model: p-video-2-pro-reference' \ -d '{ "input": { "prompt": "Continue the motion and match the reference audio", "video": ["https://api.pruna.ai/v1/files/video123"], "audio": ["https://api.pruna.ai/v1/files/audio123"], "first_frame_image": "https://api.pruna.ai/v1/files/start123", "last_frame_image": "https://api.pruna.ai/v1/files/end123", "duration": 5, "resolution": "768p", "mode": "speed" } }'Parameters
Section titled “Parameters”Required Parameters
Section titled “Required Parameters”| Parameter | Type | Description |
|---|---|---|
| prompt | string | Text prompt for video generation |
Send at least one image or video reference with the prompt. Audio is optional.
Optional Parameters
Section titled “Optional Parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
| prompt_upsampler | string | "turbo" | Rewrite the prompt before generation: "turbo" (fast default), "max", or "off". Independent of mode |
| image | array of URIs | — | Reference images |
| video | array of URIs | — | Reference videos |
| audio | array of URIs | — | Reference audio. Set keep_audio to use one file as the video's audio |
| keep_audio | boolean | false | Keep the uploaded audio as the video's audio. Needs exactly one audio file |
| first_frame_image | string (URI) | — | Optional opening image. Soft keyframe; counts as a reference image |
| last_frame_image | string (URI) | — | Optional closing image. Soft keyframe; counts as a reference image |
| duration | integer | 5 | Video duration in seconds (5-15). With keep_audio, audio within 1 s of this sets the length |
| resolution | string | "768p" | "480p" or "768p" |
| mode | string | "speed" | "speed" or "cost" |
| aspect_ratio | string | "16:9" | "adaptive", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "1:1". adaptive follows the references |
| seed | integer | random | Random seed for reproducible generation |
Use is subject to the MiniMax H3 Community License, including its Acceptable Use Policy. See Terms, section 7.2.
License: https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/LICENSE