# Pruna P-Video 2 Pro - Core.Today AI API > Pruna's highest-quality video model. Generates video from text or images with cost, speed and quality modes, first- and last-frame control, and durations from 5 to 15 seconds at 480p or 768p. - **Provider**: Pruna AI - **Model ID**: prunaai/p-video-2-pro - **Category**: Video Generation - **Credits**: 410 per second — cost 480p 23/s, 768p 58/s; speed 480p 47/s, 768p 81/s; quality 480p 93/s, 768p 174/s; duration 5-15s (default speed 768p 5s = 410) - **Speed**: Medium - **Quality**: High ## Features - Three generation modes — cost, speed (default) and quality — priced per second - Text-to-video and image-to-video with first- and last-frame control - 480p or 768p output, 5-15 second clips - Built-in prompt upsampler (off / turbo / max) - Seven aspect ratios; reference images set the canvas when provided ## Use Cases - High-fidelity final renders in quality mode after fast speed-mode drafts - Low-cost bulk generation in cost mode at 480p - Controlled transitions between a first and last frame - Animating product shots or illustrations with image-to-video ## 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 - **prompt**: string - Text prompt for video generation ### Optional - **mode**: string (default: speed) - Generation mode: speed (faster, default), quality (higher fidelity) or cost (lowest price) Options: quality, speed, cost - **prompt_upsampler**: string (default: turbo) - Expand your prompt before video generation Options: off, turbo, max - **image**: string - First-frame reference image (image-to-video) - **last_frame_image**: string - Last-frame reference image for control over the ending - **duration**: integer (default: 5) - Video duration in seconds (5-15). Billed per second - **resolution**: string (default: 768p) - Video resolution Options: 480p, 768p - **aspect_ratio**: string (default: 16:9) - Aspect ratio; reference images determine the canvas when provided Options: 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 1:1 - **seed**: integer - Random seed for reproducible generation ## Examples ### Image-to-Video (Speed Mode, 768p) Animate a first frame at the default speed/768p rate — 5s at 81/s = 410 credits ```json { "model": "prunaai/p-video-2-pro", "input": { "prompt": "Use the provided image as the exact first frame. A velociraptor moves cautiously through an opulent palace salon, looking around alertly, then suddenly speeding deeper into the room. One continuous low-angle handheld cinematic shot with warm lighting.", "image": "https://replicate.delivery/pbxt/PoNvQd3plThnhNsGUc8fE4e9OTdk0jcmiOhqLsXjt1mxiTA4/tmp4z1l281s-1.webp", "mode": "speed", "duration": 5, "resolution": "768p", "aspect_ratio": "16:9", "prompt_upsampler": "turbo" } } ``` ### Quality Mode Final Render Highest-fidelity 10s render — 10s at 174/s = 1,740 credits (list) ```json { "model": "prunaai/p-video-2-pro", "input": { "prompt": "A hummingbird hovering over a red hibiscus flower in slow motion, macro lens, soft morning light", "mode": "quality", "duration": 10, "resolution": "768p", "aspect_ratio": "16:9" } } ``` ## 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 - Use mode: speed for fast iteration, then switch to mode: quality for final renders - cost mode at 480p (23/s) is the cheapest way to explore compositions in bulk - Use last_frame_image together with image to control exactly how the clip starts and ends - For image-to-video, use a high-quality, well-lit reference image and keep the requested motion consistent with the starting frame ## Documentation https://replicate.com/prunaai/p-video-2-pro