live
MODEL IDprunaai:p-video@2-pro-replace

P-Video-2-Pro-Replace

Pruna AI
by

P-Video-2-Pro-Replace is Pruna AI's character replacement model that puts the person from one or two photos into an existing video. It keeps the original camera, background, timing, and motion, carries over the source soundtrack with lips that follow it, and replaces two people at once with a prompt that says who replaces whom. It takes source clips from 1 second to 2 minutes and outputs from 480p up to 4K, for UGC ad variations, localized spokesperson videos, and recasting existing footage.

P-Video-2-Pro-Replace

API Options

Platform-level options for task execution and delivery.

taskType

stringrequiredvalue: videoInference

Identifier for the type of task being performed.

taskUUID

stringrequiredUUID v4

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

outputType

stringdefault: URL

Video output type.

Allowed values1 value

outputFormat

stringdefault: MP4

Specifies the file format of the generated output. The available values depend on the task type and the specific model's capabilities.

  • `MP4`: Widely supported video container (H.264), recommended for general use.
  • `WEBM`: Optimized for web delivery.
  • `MOV`: QuickTime format, common in professional workflows (Apple ecosystem).
Allowed values3 values

outputQuality

integermin: 20max: 99default: 95

Compression quality of the output. Higher values preserve quality but increase file size.

webhookURL

stringuri

Webhook URL that receives JSON responses via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.

Learn more1 resource

deliveryMethod

stringdefault: async

Determines how the API delivers task results.

Allowed values2 values
Returns results directly in the API response. Over HTTP, a task still running after 120 seconds continues as an async task and comes back with status 'processing'. Poll for its results using getResponse.
Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse.
Learn more1 resource

Specifies a URL where the generated content will be automatically uploaded using the HTTP PUT method. The raw binary data of the media file is sent directly as the request body. For secure uploads to cloud storage, use presigned URLs that include temporary authentication credentials.

Common use cases:

  • Cloud storage: Upload directly to S3 buckets, Google Cloud Storage, or Azure Blob Storage using presigned URLs.
  • CDN integration: Upload to content delivery networks for immediate distribution.
// S3 presigned URL for secure upload
https://your-bucket.s3.amazonaws.com/generated/content.mp4?X-Amz-Signature=abc123&X-Amz-Expires=3600

// Google Cloud Storage presigned URL
https://storage.googleapis.com/your-bucket/content.jpg?X-Goog-Signature=xyz789

// Custom storage endpoint
https://storage.example.com/uploads/generated-image.jpg

The content data will be sent as the request body to the specified URL when generation is complete.

safety

object

Content safety checking configuration for video generation.

Properties2 properties
safety » checkContent

Enable or disable content safety checking. Increases total generation time.

safety » mode

mode

stringdefault: fast

Safety checking mode for video generation.

Allowed values2 values
Checks key frames.
Checks all frames.

ttl

integermin: 60

Time-to-live (TTL) in seconds for generated content. Only applies when outputType is URL.

Include task cost in the response.

numberResults

integermin: 1max: 4default: 1

Number of results to generate. Each result uses a different seed, producing variations of the same parameters.

Inputs

Input resources for the task (images, audio, etc). These must be nested inside the inputs object.

inputs » referenceImages

referenceImages

array of stringsrequiredmin items: 1max items: 2

List of reference images (UUID, URL, Data URI, or Base64). One image per person to replace, matched to the people in the video from left to right unless positivePrompt says otherwise.

inputs » video

video

stringrequired3 limits

Video input (UUID or URL). The output keeps the source length and aspect ratio, at 24 fps.

Core Parameters

Primary parameters that define the task output.

model

stringrequiredvalue: prunaai:p-video@2-pro-replace

Send auto instead of an AIR identifier to have the model router choose the model for this task. The rest of the request is unchanged, every value you send is kept, and only the parameters you leave out are filled in. See Model Router.

Learn more3 resources

positivePrompt

stringmin: 1max: 4000

Instruction for who replaces whom, or how to place the new person.

Learn more1 resource

resolution

stringdefault: 768p

Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input. Resolutions above 768p are generated at 768p and upscaled.

Allowed values5 values

Settings

Technical parameters to fine-tune the inference process. These must be nested inside the settings object.

settings » preserveAudio

preserveAudio

booleandefault: true

Preserve the source video audio track in the output.

settings » safetyFilter

safetyFilter

booleandefault: true

Content safety filtering.

settings » sourceAudioSync

sourceAudioSync

booleandefault: true

Drive lip and motion sync from the source video audio. Independent of preserveAudio, which controls audio in the final output.