Skip to main content
Core.Today
|
Pruna AIFastStandard

Pruna P-Video Animate

Pruna AI's motion-transfer video model โ€” animates a reference image with the motion and audio of a source video. Optimized for speed and cost (about 5.24s of generation per 1s of output video).

1050 credits
per 15s 720p video โ€” billed per second of the source video (720p 70/s, 1080p 140/s)
Motion + audio transfer: the reference subject performs the source video's movement
Fast and cheap โ€” about 5.24 seconds of generation per 1 second of output
720p (~1 MP) or 1080p (~2 MP) output, aspect ratio preserved from the source
Optional instruction prompt to steer how the subject is animated
Turbo mode for faster generation at slightly lower quality

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "prunaai/p-video-animate",
  "input": {
    "video": "https://example.com/driver.mp4",
    "image": "https://example.com/subject.jpg",
    "resolution": "720p",
    "save_audio": true
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
videostringYes-Source RGB video (.mp4): motion + audio source. The output follows its duration and aspect ratio โ€” billing is per second of this video
imagestringYes-Reference image of the subject to animate
instruction_promptstringNo-Further instruction on how the reference subject should be animated using the motion of the input video
resolutionstringNo720pTarget ~megapixel budget: 720p โ‰ˆ 1 MP (70 credits/sec), 1080p โ‰ˆ 2 MP (140 credits/sec). Aspect ratio preserved
720p1080p
target_fpsstringNooriginalTarget FPS for the working video
original2448
save_audiobooleanNotrueMux the source audio into the output video
ignore_audiobooleanNofalseDon't condition generation on the source audio. If save_audio is true, the audio is still muxed into the final video
turbobooleanNofalseFaster generation for slightly lower quality
seedintegerNo-Random seed. Leave blank for random

How to Provide File Input

There are 3 ways to provide files for the videoimage parameters:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "prunaai/p-video-animate",
  "input": {
    "prompt": "your prompt here",
    "video": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=prunaai/p-video-animate" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:video=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Scene Recasting

Swap the subject of a clip while keeping motion and audio

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "prunaai/p-video-animate",
  "input": {
    "video": "https://example.com/driver.mp4",
    "image": "https://example.com/subject.jpg",
    "resolution": "720p",
    "save_audio": true
  }
}'

Directed Animation

Add an instruction for how the subject should move

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "prunaai/p-video-animate",
  "input": {
    "video": "https://example.com/action.mp4",
    "image": "https://example.com/character.jpg",
    "instruction_prompt": "The man throws the swords to the floor, then performs the split",
    "resolution": "720p"
  }
}'

Tips & Best Practices

1Billing follows the source video's length โ€” trim the source to just the motion you need before generating
2720p is half the price of 1080p and works well for most cases; use 1080p only when you need extra detail
3Strong, well-lit motion in the source transfers better than subtle or occluded movement
4Use a front-facing reference image โ€” heavy angles or occlusion hurt identity preservation
5The output uses the source video's aspect ratio, so frame the source the way you want the result framed

Use Cases

UGC ad variations โ€” one brand asset animated with dozens of motion references
Meme remixes dropping new subjects into well-known clips
Scene recasting: keep the shot, swap the subject
Game and avatar content from character art plus reference motion
Music video b-roll from existing performance footage