Pixverse Pixverse V5.5 Transition
Playground
Try it on WavespeedAI!Create smooth morph transitions between two images into 5s, 8s or 10s videos at 360p, 540p, 720p, or 1080p—perfect for logo reveals, before-and-after shots, and social posts. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
PixVerse v5.5 — Transition
PixVerse v5.5 Transition morphs one image into another with smooth, cinematic motion guided by a short prompt. Give it a start image, an end image, and a description of the transformation—the model handles the in-between frames while you control aspect ratio, duration (5s / 8s / 10s), and resolution (360p–1080p).
✨ Highlights
- Prompt-guided image-to-image morphing – change outfit, lighting, era, mood, or environment between two stills.
- Story-friendly formats – aspect ratios for feeds, stories, and widescreen: 16:9, 1:1, 4:3, 3:4, 9:16.
- Resolution choices – render at 360p, 540p, 720p, or 1080p depending on speed and quality needs.
- Identity & framing aware – keeps subject pose and composition stable while the transformation unfolds.
Perfect for before-and-after reveals, campaign creatives, character “power-up” shots, and scroll-stopping social posts.
🧩 Parameters
-
prompt* – Short description of how the scene should change (e.g. “Casual student gradually transforms into cyberpunk hero, neon city lights appear, dramatic lighting”).
-
image* – Start frame (URL or upload).
-
end_image* – Target frame (URL or upload).
-
aspect_ratio – One of 16:9, 1:1, 4:3, 3:4, 9:16.
-
duration – 5, 8, or 10 seconds.
-
resolution – 360p, 540p, 720p, or 1080p.
-
thinking_type – Prompt reasoning enhancement:
-
enabled: add extra system reasoning/optimisation for complex prompts. -
disabled: use the raw prompt as-is. -
auto(default): let the model decide. -
negative_prompt (optional) – Things to avoid (e.g. “distortion, double face, text, watermark”).
-
seed (optional) – Leave blank for random, or set a fixed integer for reproducible transitions.
🚀 How to Use
- Upload image and end_image – use shots with similar framing for the cleanest morph.
- Write the prompt – focus on mood, style, and transformation rather than long scene descriptions.
- Choose aspect_ratio, duration, and resolution to match your target platform.
- (Optional) Set thinking_type = enabled for more complex story prompts, and add a negative_prompt if you want to suppress artifacts.
- (Optional) Set a seed if you need the same result again later.
- Click Run, then preview and download your transition clip.
💰 Pricing
Billed per second, based on duration and resolution:
| Resolution | 5s clip (total) | 8s clip (total) | Price per second* |
|---|---|---|---|
| 360p | $0.15 | $0.30 | $0.03 |
| 540p | $0.15 | $0.30 | $0.03 |
| 720p | $0.20 | $0.40 | $0.04–0.05 |
| 1080p | $0.40 | $0.80 | $0.08–0.10 |
*Longer clips (10s) follow the same per-second logic.
🧠 Tips
- Use start/end images with similar camera angle and framing to minimise warping.
- Keep prompts short and focused: one transformation + one mood usually works better than a laundry list.
- For storyboards and quick previews, use 360p/540p; for final export into an edit timeline, use 720p or 1080p.
- If faces or hands look unstable, tighten the crop or simplify the transformation described in the prompt.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/pixverse/pixverse-v5.5-transition" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"aspect_ratio": "16:9",
"duration": 5,
"resolution": "540p",
"thinking_type": "auto"
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | The model generates video with the picture passed in as the first frame.Base64 encoded strings in data:image/jpeg; base64,{data} format for incoming images, or URLs accessible via the public network. The uploaded image needs to meet the following conditions: Format is JPG/JPEG/PNG; The aspect ratio is greater than 2:5 and less than 5:2; Short side pixels greater than 300px; The image file size cannot exceed 20MB. | |
| prompt | string | Yes | - | The positive prompt for the generation. | |
| end_image | string | Yes | - | - | The model generates video with the picture passed in as the last frame.Base64 encoded strings in data:image/jpeg; base64,{data} format for incoming images, or URLs accessible via the public network. The uploaded image needs to meet the following conditions: Format is JPG/JPEG/PNG; The aspect ratio is greater than 2:5 and less than 5:2; Short side pixels greater than 300px; The image file size cannot exceed 20MB. |
| aspect_ratio | string | No | 16:9 | 16:9, 1:1, 4:3, 3:4, 9:16 | The aspect ratio of the generated media. |
| duration | integer | No | 5 | 5, 8, 10 | Video duration in seconds. |
| resolution | string | No | 540p | 360p, 540p, 720p, 1080p | Video quality (360p/540p/720p/1080p). |
| thinking_type | string | No | auto | enabled, disabled, auto | Prompt reasoning enhancement. Controls whether the system should enhance your prompt with internal reasoning and optimization. "enabled" : Turn on system-level optimization. "disabled" : Turn off system-level optimization. "auto": Let the model decide automatically |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| seed | integer | No | - | -1 ~ 2147483647 | The random seed to use for the generation. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |