P-Video-2-Pro-Avatar
P-Video-2-Pro-Avatar, based on MiniMax H3, is Pruna’s talking-video model: a portrait plus a script or uploaded audio becomes a 24 fps MP4. Lips and expression follow the soundtrack. Length follows the audio, from 1 second to 3 minutes, at 480p or 768p.
The portrait is the identity and the frame. Uploaded audio is kept in the MP4 and wins over voice_script. With no recording, Gemini TTS speaks the script: 30 voices, 10 languages. prompt directs the picture; voice_prompt directs delivery and is not spoken.
Note
When using P-Video-2-Pro-Avatar, respect the copyright of the images, speech, and video you use as input and of the content you generate.
Pricing: billed per second of output video. The soundtrack sets the length. A 60 second video is $1.20 at 480p or $2.40 at 768p. Voice, language, and prompt_upsampling do not change the price. There is no separate charge for the portrait or for TTS.
480p |
768p |
|
|---|---|---|
Per output second |
$0.02 |
$0.04 |
10 seconds |
$0.20 |
$0.40 |
60 seconds |
$1.20 |
$2.40 |
180 seconds |
$3.60 |
$7.20 |
Speed: model execution time. A 10 second clip at 480p takes about 9.7 s. A 10 second clip at 768p takes about 22 s.
Resolution |
Worker time |
|---|---|
480p |
~0.97 s per second of output video |
768p |
~2.2 s per second of output video |
Tip
Try in the Playground in the Pruna User Portal.
Prompt formula
Fast pass
Portrait plus a short script. Default picture prompt. Enough for a first talking shot.
Locked-in
Spell out gesture, camera, and what stays still. Lock delivery. Or upload the take.
prompt.image— required. The person, painting, character, or sculpture who speaks. Generate a locked still with P-Image or P-Image-Ideogram when you need a repeatable face. The still sets the canvas; there is noaspect_ratiofield.Fast pass: one well-lit still.
Locked-in: same file and same
seedwhen you need the same face again.
voice_scriptoraudio— required (one of them). The script is spoken with TTS. Uploaded audio is the soundtrack and sets the length. Audio wins when both are set. Speech or a song both work.Fast pass: “Don’t. I just did the lipstick.”
Locked-in: a full localized script, or the take you already recorded.
voice_prompt— how it is said: tone, pace, accent, emotion. Not spoken. Listen to timbre in Voice audio samples.Fast pass: leave the default.
Locked-in: “Quiet, slow, soft, and private.” / “Bright, quick, amused.”
prompt— the picture: camera, gesture, what stays still. Default isThe person is talking.One continuous shot. No second scene, no cut, no on-screen words.Fast pass: leave the default.
Locked-in: “Medium close-up, she speaks to the lens. A small nod on the last line. The camera stays put. The background stays the same room. Mouth clearly visible. No captions, no cut.”
Slot |
Fast pass (enough to run) |
Locked-in (stronger control) |
|---|---|---|
|
One still. The portrait sets the frame. |
Same still every rerun; generate it with P-Image when identity must lock. |
|
Short lines in the target language. |
Full script, or upload the take. Audio under 1 s is rejected; over 3 minutes is cut to 3 minutes. |
|
Default. |
Tone, pace, register, what to avoid. Do not paste the script here. |
|
Default: the person is talking. |
One shot; name the gesture and what stays still; no cut, no captions. |
Tip
When you need the exact take, prefer uploaded audio over generated TTS.
Tip
For comprehensive video prompting (motion, framing, atmosphere), see the Video Generation guide.
Choosing the right video model
Pruna ships performance video models that share the same prediction API, but each solves a different production problem. P-Video-2-Pro-Avatar generates speech from one still on the MiniMax H3 stack (Model: p-video-2-pro-avatar).
One-line job |
Speak from one still |
Generate cinematic footage from prompts + references |
Generate cinematic footage from prompts |
Generate premium footage from prompts |
Generate fast / affordable footage |
Speak from one still (script or audio) |
Retarget one still with clip motion |
Swap characters in existing footage |
Rewrite content in existing footage |
You start with |
Portrait still + |
Prompt + at least one image or video (+ optional audio, start / end frames) |
Text prompt (+ optional first / last frame) |
Text prompt (+ optional image / audio) |
Text prompt (+ optional image / audio) |
Portrait still + |
Source video + one still |
Source video + identity stills |
Source video + text prompt |
You keep from the source |
Aspect ratio of the still; uploaded audio as soundtrack |
Identity, motion, and canvas from the uploaded references |
N/A (new scene); canvas follows reference images when set |
N/A (new scene); strong I2V consistency when an image is set |
N/A (new scene) |
Aspect ratio of the still |
Motion, timing, camera from the driver |
Camera, timing, blocking, background |
Camera, timing, subject performance |
Typical ask |
“This person, painting, or character says this line — or sings this track.” |
“Continue this clip / match these stills for 8 s at 768p.” |
“Make an 8 s cinematic product or documentary clip with generated audio.” |
“Make a 10 s product ad with music and lip-sync.” |
“Draft a 5 s social clip cheaply and fast.” |
“This spokesperson says this line in French.” |
“Animate this catalog still using our winning ad take.” |
“Put our creator in this UGC b-roll.” |
“Turn this silver SUV red and keep the camera move.” |
Generation time (5 s video) |
~4.9 s (480p) · ~11 s (768p) |
4.0 s (768p |
4.3 s (768p |
4.5 s (draft: 2.0 s) |
9.3 s |
— |
26.2 s (720p) |
~17.9 s (720p) |
— |
Cost (5 s video) |
$0.10 (480p) · $0.20 (768p) |
$0.130 (768p |
$0.125 (768p |
$0.13 (draft: $0.08) |
$0.10 (draft: $0.03) |
$0.125 (720p) · $0.225 (1080p) |
$0.15 (720p) · $0.30 (1080p) |
$0.15 (720p) · $0.30 (1080p) |
$0.225 (draft: $0.125) |
Draft mode |
No |
No |
No |
Yes |
Yes |
No |
No |
No |
Yes |
Quick decision guide
Need talking video from a still, including songs, paintings, or any character, at 480p / 768p, 1 s–3 min → P-Video-2-Pro-Avatar.
Need 720p / 1080p talking head, voice only, no music bed → P-Video-Avatar.
Need cinematic generation from text or a single first / last frame → P-Video-2-Pro.
Need multiple image, video, or audio references on MiniMax H3 → P-Video-2-Pro-Reference.
Need 1080p, imported audio muxed onto a new clip, or draft previews → P-Video-2.
Need the fastest / cheapest generation iteration → P-Video.
Footage exists and the hero still should move like the driver → P-Video-Animate.
Footage exists and you need different people in the same shot → P-Video-Replace.
Footage exists and you need a color, product, environment, object, or text edit → P-Video-Edit.
Key features
- Any character
People, anime, game characters, paintings, and sculpture all speak. The still is the identity.
- Performance direction
promptcan ask for a gesture, a head turn, a step toward the lens, or a song. One continuous talking shot.- Script or uploaded audio
TTS speaks
voice_script, or uploadedaudiois kept in the MP4. A song works. Audio wins over the script.- Voices and languages
30 Gemini TTS voices and 10 languages. Write
voice_scriptinvoice_language. Preview voices in Voice audio samples.- 1 second to 3 minutes
There is no
durationfield. A short line is a short video. Long clips are assembled in chunks.- 480p and 768p
Default is 768p. Use 480p for the lowest list price. Output is 24 fps.
Practical constraints
Resolution is 480p or 768p, not 720p / 1080p.
There is no
durationoraspect_ratioinput. The soundtrack sets the length; the portrait sets the frame and is cropped when its ratio is outside the model range.Audio under 1 second is rejected. Audio over 3 minutes is truncated. Image up to 20 MiB (
jpg,jpeg,png,webp). Audio up to 64 MiB.Long clips are stitched. A change of room, or a wide static background, can show a seam.
Rate limit: 50 requests per minute.
Horizontal and vertical strategy
p-video-2-pro-avatar inherits aspect ratio from the input image:
Horizontal output: provide a landscape start frame (for example 16:9). A 16:9 still at 768p comes back 1344×768.
Vertical output: provide a portrait start frame (for example 9:16). A 9:16 still at 768p comes back 768×1344. A 3:4 still comes back 768×1024.
Generate landscape and portrait starts with P-Image so the first frame matches the aspect ratio you want in the final clip.
Examples
People, paintings, songs, languages, and clips from 2 seconds to 50 seconds. Open a card for the still, the script, and the picture prompt.
Integration
P-Video-2-Pro-Avatar uses the same Pruna predictions API as other performance models. Upload the portrait (and optional audio) first, then pass the returned URLs. You must send image plus voice_script or audio.
For the full p-video-2-pro-avatar request and response reference, use P-Video-2-Pro-Avatar in the API guides.
Tip
For more information on how to use the API, see the API Reference.
- API endpoint
Base URL:
https://api.pruna.ai/v1/predictions
Authentication
-H 'apikey: YOUR_API_KEY'
-H 'Model: p-video-2-pro-avatar'
Step 1: Upload your avatar source image
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: YOUR_API_KEY" \
-F "content=@/path/to/portrait.jpg"
Use the returned file URL as image in generation requests.
Step 2: Create avatar generation request
Script + built-in TTS (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-avatar' \
-d '{
"input": {
"image": "https://api.pruna.ai/v1/files/file-abc123",
"voice_script": "Hey — we finally shipped the thing I kept talking about. One portrait, your audio or a script, and you get the talking video back.",
"voice": "Zephyr (Female)",
"voice_language": "English (US)",
"voice_prompt": "Natural conversational tone, relaxed pacing, real pauses, honest not salesy.",
"prompt": "Medium close-up, she speaks to the lens. A small nod on the last line. The camera stays put. The background stays the same room. Mouth clearly visible. No captions, no cut.",
"resolution": "768p"
}
}'
Script + built-in TTS (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-avatar' \
-H 'Try-Sync: true' \
-d '{
"input": {
"image": "https://api.pruna.ai/v1/files/file-abc123",
"voice_script": "We ship on Thursday. If the build is red, we slip it.",
"voice": "Puck (Male)",
"resolution": "480p",
"seed": 41
}
}'
Uploaded audio override
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-avatar' \
-d '{
"input": {
"image": "https://api.pruna.ai/v1/files/file-abc123",
"audio": "https://api.pruna.ai/v1/files/file-audio456",
"prompt": "Medium close-up, he speaks to the lens. Mouth clearly visible. Hands stay below frame. The background does not change. No captions, no cut.",
"resolution": "768p"
}
}'
When both audio and voice_script are set, the uploaded audio is used.
Configuration
Required parameters
Parameter |
Type |
Description |
|---|---|---|
|
file/string |
Portrait (first frame). |
You must also provide voice_script or audio (or both, with audio taking priority).
Optional parameters
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
file/string |
— |
Speech or song, up to 64 MiB and 3 minutes. The video matches its length. Overrides |
|
string |
|
Exact words to speak when |
|
string |
|
Gemini TTS voice. Browse examples in Voice audio samples. |
|
string |
|
Delivery instructions (tone, pacing, accent, emotion). Not spoken. |
|
string |
|
Language of |
|
string |
|
What the video should show: camera, gesture, what stays still. |
|
boolean |
|
When true, the picture prompt is rewritten from the portrait. Set false to use |
|
string |
|
|
|
integer |
random |
Random seed for a repeatable run. Does not invent a new person. |
Supported option values
resolution:480p,768p.voice_language:English (US),English (UK),Spanish,French,German,Italian,Portuguese (Brazil),Japanese,Korean,Hindi.voice:Zephyr (Female),Puck (Male),Charon (Male),Kore (Female),Fenrir (Male),Leda (Female),Orus (Male),Aoede (Female),Callirrhoe (Female),Autonoe (Female),Enceladus (Male),Iapetus (Male),Umbriel (Male),Algenib (Male),Despina (Female),Erinome (Female),Laomedeia (Female),Achernar (Female),Algieba (Male),Schedar (Male),Gacrux (Female),Pulcherrima (Female),Achird (Male),Zubenelgenubi (Male),Vindemiatrix (Female),Sadachbia (Male),Sadaltager (Male),Sulafat (Female),Alnilam (Male),Rasalgethi (Male).
Use Voice audio samples to audition voices before finalizing voice + voice_language.
Voice audio samples
The TTS voices are the same Gemini set as P-Video-Avatar. Play them inline:
| Voice | Player |
|---|---|
| Achernar (Female) | |
| Achird (Male) | |
| Algenib (Male) | |
| Algieba (Male) | |
| Alnilam (Male) | |
| Aoede (Female) | |
| Autonoe (Female) | |
| Callirrhoe (Female) | |
| Charon (Male) | |
| Despina (Female) | |
| Enceladus (Male) | |
| Erinome (Female) | |
| Fenrir (Male) | |
| Gacrux (Female) | |
| Iapetus (Male) | |
| Kore (Female) | |
| Laomedeia (Female) | |
| Leda (Female) | |
| Orus (Male) | |
| Puck (Male) | |
| Pulcherrima (Female) | |
| Rasalgethi (Male) | |
| Sadachbia (Male) | |
| Sadaltager (Male) | |
| Schedar (Male) | |
| Sulafat (Female) | |
| Umbriel (Male) | |
| Vindemiatrix (Female) | |
| Zephyr (Female) | |
| Zubenelgenubi (Male) |
Argument recommendations
Use these patterns for consistent quality:
image: the only first-frame input. Use P-Image to create the still, then upload the file.audiovsvoice_script: preferaudiowhen the take, the song, or the timing is already recorded; otherwise usevoice_script.voice+voice_language: choose together and write the script in that language (see Voice audio samples).voice_prompt: keep to delivery only. Do not paste the script.prompt: one shot; name the gesture and what stays still. Do not ask for a new location halfway through.prompt_upsampling: leave true for a first look; set false when the picture prompt must be used as written.resolution: iterate in480p, then rerun finals in768p.seed: set when you need the same face again; change only one variable at a time.