Pruna P Video 2 Pro Replace: swap the people in a video from photos

Replace the people in any video with your photos, keeping motion, camera and audio, with lips that stay in sync. Send one clip plus one or two face photos; everything else stays as it was.

Pruna P Video 2 Pro Replace, from Pruna AI, swaps the people in a video for the people in your photos and leaves the rest of the shot alone. Send one source clip and one or two face photos, and you get the same footage back with the new people. The camera, motion, timing, background and soundtrack are all kept, and the new lips follow the original audio. It builds on Pruna's P-Video-Replace by keeping audio and lip-sync and adding two-person swaps.

ModelPruna P Video 2 Pro ReplaceSwap anyone in a video from a photo, lip-sync kept.

What it does well

The model's job is narrow and it does it cleanly: change who is on screen, leave the rest of the shot exactly as it was. Here is what that looks like across a single swap, a two-person swap and a fast-moving scene.

Swap one person from a single photo

Upload one source clip and one clear, front-facing photo, leave the instruction empty, and the main person is replaced automatically. The new face keeps lip-syncing, so talking and singing stay in time. Because the mouth and expression come straight from the source clip, dialogue and singing stay in sync without a separate lip-sync pass. In this run a solo street busker becomes the bearded man from a single photo; her strumming, the framing and the market behind her all stay put.

SourceOutput
Sound
Drag to compare the source clip with the swap — same framing and motion, a new person.

Replace two people at once

Send two photos, one per person, and a short instruction naming who becomes whom; with no instruction the photos match the people left to right. Here both buskers are recast in one pass — the singer on the left becomes the woman in image 1, the double-bass player on the right the man in image 2. This handles dialogues, duets and dance partners in a single pass, rather than swapping each person in a separate run. The duo's playing and the market crowd stay untouched.

Two-person swapfor Pruna P Video 2 Pro Replace
The singer on the left becomes the woman in image 1; the double-bass player on the right becomes the man in image 2.
Try it

Keep the scene; only the person changes

The model carries the source performance over exactly, so the identity holds even through fast, full-body motion. Here a gym athlete slamming battle ropes becomes the man in the photo, and the new face stays locked through every rope wave. Only the chosen person changes; the other people and the background come through unchanged. The camera, the pace and the weight-rack backdrop are untouched.

SourceOutput
Sound
Drag to compare — the new face holds through every fast rope wave while the scene stays put.

Examples to try

One more to try at the same settings: swap just the lead person in a busy scene and leave everyone else working.

SourceOutput
Sound
Drag to compare — only the head chef at the pass is recast; the line cooks behind stay put.

With one photo the model replaces the most prominent person, so frame your main subject clearly in front.

Recommended settings

Most runs need only a video and a photo. These controls shape the rest.

SettingValueWhen
Resolution480p or 768p (default 768p)768p for the sharpest faces; 480p is the lighter option
Pictures1 or 2 photosOne clear, well-lit, front-facing photo per person
InstructionWho becomes whomWith two photos, name the mapping; left-to-right by default
Keep soundtrackOn (default)Keep it on for talking or musical footage
Ignore audioOff (default)Leave off so the new lips follow the source audio
Seed-1 or a fixed valueUse -1 for variety; fix a value to reproduce a take

Good to know

  • The new person's face, hair, glasses and clothes all come from the photo, so pick a photo that shows the look you want.
  • A source soundtrack comes through as it was: in our check on a five-second talking clip, the output audio matched the source and the lips followed the speech. A source with no audio track still comes back with sound, generated by the model, so send a clip with audio when the sound matters.
  • It preserves the source performance; it does not invent new motion or change what a subject does.
  • When the new person closely resembles the source person, the model hides the source face and leans on body pose and audio for expression.
  • Source clips run 1 to 120 seconds with an aspect ratio between 1:4 and 4:1; longer clips are trimmed and out-of-range ratios are rejected.
  • Output matches the source length and aspect ratio at 24 fps; use clear, well-lit, front-facing photos and steady, well-framed clips for the cleanest swaps.

Use it from the API

Send the source video, one or two photos and your settings; the swapped clip comes back at the chosen resolution. Longer source clips take proportionally longer to process, so use the asynchronous endpoint for anything beyond a few seconds.

APIReplace the person in a videoAPI reference
# pip install "segmind>=1.1.0"
# export SEGMIND_API_KEY="YOUR_API_KEY"
import segmind

result = segmind.run(
    "p-video-2-pro-replace",
    video="https://segmind-resources.s3.amazonaws.com/input/p-video-2-pro-replace-srcA-video-25723055.mp4",
    images=[
        "https://segmind-resources.s3.amazonaws.com/input/p-video-2-pro-replace-identity-man-25723055.jpg",
    ],
    resolution="768p",
    instruction_prompt="",
    save_audio=True,
    ignore_audio=False,
    seed=-1,
)
print(result.get("output"))
# 1. Submit the request; the reply carries its request_id
REQUEST_ID=$(curl -s -X POST "https://api.segmind.com/v2/p-video-2-pro-replace" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "video": "https://segmind-resources.s3.amazonaws.com/input/p-video-2-pro-replace-srcA-video-25723055.mp4",
  "images": [
    "https://segmind-resources.s3.amazonaws.com/input/p-video-2-pro-replace-identity-man-25723055.jpg"
  ],
  "resolution": "768p",
  "instruction_prompt": "",
  "save_audio": true,
  "ignore_audio": false,
  "seed": -1
}' | jq -r .request_id)

# 2. Check its status until it is COMPLETED
curl -s "https://api.segmind.com/v2/requests/$REQUEST_ID/status" \
  -H "x-api-key: YOUR_API_KEY"

# 3. Fetch the result
curl -s "https://api.segmind.com/v2/requests/$REQUEST_ID" \
  -H "x-api-key: YOUR_API_KEY"

Resources

  • #image-to-video
  • #pruna-ai
  • #model-launch
  • #video-editing
  • #face-swap
AM

Abhilash Mirji

@abhilashmirji

Product engineer at Segmind, shipping new AI models faster than my cats can knock things off the desk. 11+ years turning ambiguous problems into dependable products. Off-call: drumming, scuba diving, and getting outvoted by four cats and two dogs.

View profile

Posts

More from Abhilash Mirji

Make your own with Segmind

Run every model and Pixelflow in this post, and build your own workflows.

Start creating