# PixVerse Multi Transition PixVerse Multi-Transition stitches 2 to 7 keyframe images into a single 1 to 30 second video with smooth, consistent transitions. Each keyframe can have its own duration and prompt, giving fine-grained narrative control for storyboards and ad creatives. ## API Information - **Model Slug:** pixverse-multi-transition - **Branded URL:** https://www.eachlabs.ai/pixverse/pixverse-features/pixverse-multi-transition - **Provider:** PixVerse - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Pricing scales with duration (1–30s) and quality:• 360p / 540p — $0.115 to $1.35• 720p — $0.15 to $1.80• 1080p — $0.30 to $3.60Fast mode doubles the cost.Examples: 5s @ 720p = $0.30, 10s @ 720p = $0.66, 30s @ 1080p = $3.60. - **Estimated Processing Time:** 130 seconds - **Last Updated:** 2026-04-27 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/pixverse-multi-transition ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Pricing scales with duration (1–30s) and quality:• 360p / 540p — $0.115 to $1.35• 720p — $0.15 to $1.80• 1080p — $0.30 to $3.60Fast mode doubles the cost.Examples: 5s @ 720p = $0.30, 10s @ 720p = $0.66, 30s @ 1080p = $3.60. ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Pricing scales with duration (1–30s) and quality:• 360p / 540p — $0.115 to $1.35• 720p — $0.15 to $1.80• 1080p — $0.30 to $3.60Fast mode doubles the cost.Examples: 5s @ 720p = $0.30, 10s @ 720p = $0.66, 30s @ 1080p = $3.60. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | keyframes | array | Yes | - | - | Ordered list of 2 to 7 keyframe images. Each has its own image, duration (seconds), and optional prompt. Total duration must be 1-30 seconds. | | quality | string | Yes | 720p | 360p,540p,720p,1080p | Output video resolution quality. Options: 360p, 540p, 720p, 1080p. Default: 720p. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "pixverse-multi-transition", "input": { "keyframes": [ { "prompt": "A peaceful sunrise over a quiet city, warm golden light hitting buildings, soft clouds, calm atmosphere.", "duration": 3, "image_url": "https://cdn-us.eachlabs.ai/uploads/7244b609-c97b-4485-b285-cbae10b38503.png" }, { "prompt": "A cozy home interior, a woman drinking coffee near a window, soft sunlight entering, warm tones, calm mood.", "duration": 3, "image_url": "https://cdn-us.eachlabs.ai/uploads/6e7ede50-ac02-4aa1-8e7f-fd669c49a46e.png" }, { "prompt": "A busy city street at daytime, people walking, cars passing, bright sunlight, energetic atmosphere.", "duration": 3, "image_url": "https://cdn-us.eachlabs.ai/uploads/d5b6e005-d046-440f-9f7e-8b34185ac184.png" } ], "quality": "1080p" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **PixVerse | Multi-Transition | Multi-Keyframe Storyboard Overview** PixVerse | Multi-Transition | Multi-Keyframe Storyboard from Pixverse enables creators to stitch 2 to 7 keyframe images into a single cohesive video, delivering smooth transitions for storyboards and ad creatives. This image-to-video model stands out by allowing each keyframe to have independent durations and prompts, providing precise narrative control unmatched in standard single-image animations. Provided by Pixverse, a leader in AI video generation with models like V6 and C1, it builds on advanced multi-shot capabilities for 1 to 30 second outputs. Ideal for marketers and filmmakers, it transforms static keyframes into dynamic sequences with consistent character features and realistic motion, accessible via the **PixVerse | Multi-Transition | Multi-Keyframe Storyboard API** on platforms like each::labs. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.