# PixVerse v4 | Transition Apply standard and clean transition effects between clips in your video edits using pixverse v4 transition to speed up the montage process. ## API Information - **Model Slug:** pixverse-v4-transition - **Branded URL:** https://www.eachlabs.ai/pixverse/pixverse-v4/pixverse-v4-transition - **Provider:** PixVerse - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Base Cost:** Transition pricing depends on resolution and duration. A 5-second 540p video costs 45 credits ($0.28), 720p costs 60 credits ($0.38). 8-second videos cost roughly double. - **Estimated Processing Time:** 45 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/pixverse-v4-transition ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Transition pricing depends on resolution and duration. A 5-second 540p video costs 45 credits ($0.28), 720p costs 60 credits ($0.38). 8-second videos cost roughly double. ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Transition pricing depends on resolution and duration. A 5-second 540p video costs 45 credits ($0.28), 720p costs 60 credits ($0.38). 8-second videos cost roughly double. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt describing the desired transition between the two frames. Max 2048 characters. | | first_frame_url | string | Yes | - | - | URL of the first frame image for the transition. Supported formats: JPEG, PNG, WEBP. | | last_frame_url | string | Yes | - | - | URL of the last frame image for the transition. Supported formats: JPEG, PNG, WEBP. | | quality | string | Yes | 540p | 360p, 540p, 720p, 1080p | Output video resolution quality. Options: 360p, 540p, 720p, 1080p. Default: 540p. | | duration | string | Yes | 5 | 5, 8 | Duration of the output video in seconds. Options: 5 or 8. Default: 5. | | motion_mode | string | No | normal | normal, fast | Controls the speed of motion in the video. Options: normal, fast. Default: normal. | | negative_prompt | string | No | - | - | Text describing elements to avoid in the generated video. Max 2048 characters. | | seed | integer | No | - | 1–2147483647 | Random seed for reproducible results. Range: 1-2147483647. If not provided, a random seed is chosen. | | sound_effect_switch | boolean | No | false | - | Enable automatic sound effect generation for the video. Default: false. | | sound_effect_content | string | No | - | - | Description of the desired sound effect to generate. Only used when sound_effect_switch is enabled. | | lip_sync_switch | boolean | No | false | - | Enable lip sync with text-to-speech for characters in the video. Default: false. | | lip_sync_tts_content | string | No | - | - | Text content for lip sync text-to-speech. Approximately 140 UTF-8 characters max. Only used when lip_sync_switch is enabled. | | lip_sync_tts_speaker_id | string | No | - | auto, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 | Speaker voice ID for lip sync TTS. Options: auto (automatic selection), or 1-14 for specific voices. Only used when lip_sync_switch is enabled. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "pixverse-v4-transition", "input": { "duration": 5, "first_frame_url": "https://cdn-us.eachlabs.ai/defaults/dacf5a31d167f7427d3e2c3317456b19fb4624dbc11cb88a8552077e83effa9c.jpg", "last_frame_url": "https://cdn-us.eachlabs.ai/defaults/a02d9d8eabda3b0e5e3dc44320f7698b358a95db4c983a44fb6851264e055434.jpg", "prompt": "a man transforming from poor to rich, walking on city street, cinematic style", "quality": "540p" } }' ``` ## 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 "Authorization: Bearer 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 `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **pixverse-v4-transition — Image-to-Video AI Model** Developed by Pixverse as part of the **pixverse-v4** family, **pixverse-v4-transition** is an image-to-video AI model that applies standard and clean transition effects between clips, speeding up montage processes for seamless video edits. This model excels in creating smooth cinematic motion and dynamic scene transitions from static images or text prompts, addressing common challenges like jittery movements and inconsistent physics in AI-generated videos. Ideal for creators seeking **Pixverse image-to-video** tools, **pixverse-v4-transition** delivers high-fidelity outputs with natural subject consistency, making it a go-to for professional-quality montages without extensive post-production. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer 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.