# Pruna P-Video Animate - Core.Today AI API > 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). - **Provider**: Pruna AI - **Model ID**: prunaai/p-video-animate - **Category**: Video Generation - **Credits**: 1050 per 15s 720p video — billed per second of the source video (720p 70/s, 1080p 140/s) - **Speed**: Fast - **Quality**: Standard ## Features - 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 ## 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 ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **video**: string - Source RGB video (.mp4): motion + audio source. The output follows its duration and aspect ratio — billing is per second of this video - **image**: string - Reference image of the subject to animate ### Optional - **instruction_prompt**: string - Further instruction on how the reference subject should be animated using the motion of the input video - **resolution**: string (default: 720p) - Target ~megapixel budget: 720p ≈ 1 MP (70 credits/sec), 1080p ≈ 2 MP (140 credits/sec). Aspect ratio preserved Options: 720p, 1080p - **target_fps**: string (default: original) - Target FPS for the working video Options: original, 24, 48 - **save_audio**: boolean (default: true) - Mux the source audio into the output video - **ignore_audio**: boolean (default: false) - Don't condition generation on the source audio. If save_audio is true, the audio is still muxed into the final video - **turbo**: boolean (default: false) - Faster generation for slightly lower quality - **seed**: integer - Random seed. Leave blank for random ## Examples ### Scene Recasting Swap the subject of a clip while keeping motion and audio ```json { "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 ```json { "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" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Billing follows the source video's length — trim the source to just the motion you need before generating - 720p is half the price of 1080p and works well for most cases; use 1080p only when you need extra detail - Strong, well-lit motion in the source transfers better than subtle or occluded movement - Use a front-facing reference image — heavy angles or occlusion hurt identity preservation - The output uses the source video's aspect ratio, so frame the source the way you want the result framed ## Documentation https://replicate.com/prunaai/p-video-animate