Pixverse Pixverse V6 Transition API Documentation

Pixverse Pixverse V6 Transition API Documentation

Playground

Try it on WaveSpeedAI!

PixVerse V6 Transition creates smooth AI-generated video transitions between a start image and an optional end image. Supports 360p to 1080p resolutions, 1-15 second duration, multiple aspect ratios, optional audio generation, and multi-clip mode. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

PixVerse V6 Transition generates a smooth, cinematic video transition between two images. Upload a start frame and an end frame, describe the transformation, and the model produces a natural, motion-consistent clip that flows seamlessly from one scene to the other — with optional style control, multi-clip generation, and synchronized audio.


Why Choose This?

  • Start-to-end frame transitions Generates a coherent video that naturally bridges two distinct images with smooth, believable motion.

  • Prompt-guided transformation Describe how the transition should unfold — wardrobe changes, environmental shifts, camera movements, and more.

  • Multi-clip generation Enable generate_multi_clip_switch to produce dynamic transitions with varied camera angles and cuts.

  • Style control Apply a specific visual style (e.g. cyberpunk, cinematic, anime) to the transition for creative output.

  • Optional audio generation Enable generate_audio_switch to produce synchronized ambient sound alongside the transition.

  • Thinking mode Prompt optimization mode for more nuanced or complex transition descriptions.


Parameters

ParameterRequiredDescription
promptYesText description of the desired transition and transformation.
imageYesStart frame image (URL or file upload).
end_imageNoEnd frame image to transition toward (URL or file upload).
aspect_ratioNoOutput aspect ratio. Default: 1:1.
resolutionNoOutput resolution: 360p, 540p, 720p (default), or 1080p.
durationNoClip length in seconds. Default: 5.
thinking_typeNoEnable prompt optimization mode for complex transitions.
generate_audio_switchNoWhether to generate synchronized audio for the video. Default: off.
generate_multi_clip_switchNoEnable multi-clip generation with dynamic camera changes. Default: off.
styleNoVisual style to apply to the transition (e.g. cyberpunk, cinematic).
negative_promptNoElements to exclude from the generated transition.
seedNoRandom seed for reproducible results.

How to Use

  1. Upload your start image — provide the opening frame of the transition.
  2. Write your prompt — describe how the transition should unfold (e.g. “Change the model’s clothes for a smooth transition.”).
  3. Upload end image (optional) — provide the target frame to transition toward.
  4. Select aspect ratio — choose the format that fits your target platform.
  5. Select resolution — 360p for drafts, 720p for standard output, 1080p for final production.
  6. Set duration — choose your desired clip length in seconds.
  7. Enable thinking_type (optional) — activate prompt optimization for complex transitions.
  8. Enable audio (optional) — check generate_audio_switch to generate synchronized sound.
  9. Enable multi-clip (optional) — check generate_multi_clip_switch for dynamic camera changes.
  10. Set style (optional) — apply a visual style to the transition.
  11. Add negative prompt (optional) — specify elements you want to avoid.
  12. Set seed (optional) — fix the seed for reproducible results.
  13. Submit — generate, preview, and download your transition video.

Pricing

ResolutionWithout AudioWith Audio
360p$0.025/s$0.035/s
540p$0.035/s$0.045/s
720p$0.045/s$0.060/s
1080p$0.090/s$0.115/s

Billing Rules

  • Billing is calculated per second of video generated
  • Audio generation increases cost per second at each resolution tier
  • Examples: 8s at 720p (no audio) = $0.36 — 8s at 720p (with audio) = $0.48

Best Use Cases

  • Fashion & Apparel — Create smooth outfit or style change transitions for social content and lookbooks.
  • Social Media Content — Generate eye-catching before-and-after transition clips for Reels and TikTok.
  • Marketing & Advertising — Transition between product states, environments, or campaign visuals.
  • Creative Storytelling — Bridge two scenes or time periods with a cinematic, motioned transition.
  • Music Video & Art — Use style presets and multi-clip generation for visually rich transitions.

Pro Tips

  • Provide both a start and end image for the most controlled and accurate transition output.
  • Be specific in your prompt about what changes between the two frames — clothing, location, lighting, or time of day.
  • Use multi-clip generation for transitions that benefit from dynamic camera angles and cuts.
  • Use 360p at short durations to test your transition concept before committing to a high-resolution render.
  • Fix the seed once you find a result you like to iterate consistently across duration and style changes.

Notes

  • Both prompt and image are required fields; all other parameters are optional.
  • Ensure image URLs are publicly accessible if using links rather than direct uploads.
  • Please follow PixVerse’s content usage policies when crafting prompts.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 5,
  "generate_audio_switch": false,
  "generate_multi_clip_switch": false
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/pixverse/pixverse-v6/transition" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text description of the desired video.
imagestringYes-URL of the image to use as the first frame
end_imagestringNo--URL of the image to use as the last frame
aspect_ratiostringNo16:916:9, 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9The aspect ratio of the generated video
resolutionstringNo720p360p, 540p, 720p, 1080pThe resolution of the generated video
durationintegerNo51 ~ 15The duration of the generated video in seconds. v6 supports values from 1 to 15 seconds
generate_audio_switchbooleanNofalse-Enable audio generation for the video.
generate_multi_clip_switchbooleanNofalse-Enable multi-clip generation with dynamic camera changes

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.