Pixverse V5 Transition | Fast Image-to-Video API

pixverse/pixverse-v5-transition

Create smooth morph transitions between two static images into 5s or 8s videos at 360p, 540p, 720p, or 1080p. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Image to Video
输入

拖放文件或点击上传

preview

拖放文件或点击上传

就绪

$0.045每次运行·~22 / $1

下一步:

示例查看全部

A child slowly grows old to 80 years old.

Flowers is blooming.

Trees undergo changes through the four seasons of spring, summer, autumn, and winter.

The building was completed all at once.

A piece of marble was carved into a girl.

The sky is gradually darkening.

The strawberries are ripening.

The leaves are slowly turning yellow.

Corn explodes into popcorn.

A single building block was used to build a castle.

相关模型

README

PixVerse v5 — Transition

PixVerse v5 Transition morphs one image into another with smooth, cinematic motion guided by a short prompt. Control aspect ratio, duration (5s / 8s), and resolution (360p–1080p) to fit storyboards, ads, and social posts.

✨ Highlights

  • Image-to-image transition with prompt-guided mood, lighting, and motion.
  • Multiple aspect ratios: 16:9, 1:1, 4:3, 3:4, 9:16.
  • Resolution choices: 360p, 540p, 720p, 1080p.

🧩 Parameters

  • prompt* (text) — Short description of vibe/motion (e.g., “Time-lapse build, dusk-to-night city lights, cinematic glow”).
  • image* (required) — Start frame (URL or upload).
  • last_image* (required) — End frame (URL or upload).
  • aspect_ratio — 16:9, 1:1, 4:3, 3:4, 9:16.
  • duration — 5 or 8 seconds.
  • resolution — 360p, 540p, 720p, 1080p.

🚀 How to Use

  1. Upload image (start) and last_image (target).
  2. Write a concise prompt describing transition mood, lighting, or timing.
  3. Pick aspect_ratio, duration, and resolution for your platform.
  4. (Optional) Select fast motion for snappier 5s transitions.
  5. Click Run to generate and download your clip.

Pricing

Pricing depends on the selected resolution and video duration.

Resolution5 Seconds8 Seconds
360p$0.225$0.450
540p$0.225$0.450
720p$0.300$0.600
1080p$0.600$1.200

Billing Rules

  • Each request generates one video.
  • Prices above are the total charge per request, not per second.
  • An 8-second video costs twice as much as a 5-second video at the same resolution.

🧠 Tips

  • Use start/end images with similar framing to reduce warping.
  • Keep prompts short—describe mood and timing rather than object changes.
  • For social platforms, match aspect_ratio to your target feed (16:9 landscape, 9:16 vertical).
  • Fast motion is best for punchy 5s reveals; use normal for smoother, more photographic transitions.
提示:本网站部分功能由第三方 AI 模型提供支持。文档价格仅供参考,可能已过时。Generate 按钮显示预估价格,最终以任务实际收费为准。

Pixverse v5 Transition API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/pixverse/pixverse-v5-transition with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Pixverse v5 Transition below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "last_image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "aspect_ratio": "16:9",
    "duration": 5,
    "resolution": "540p"
}
JSON
)

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

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

# 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 has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/pixverse/pixverse-v5-transition";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "last_image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "aspect_ratio": "16:9",
        "duration": 5,
        "resolution": "540p"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "last_image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "aspect_ratio": "16:9",
    "duration": 5,
    "resolution": "540p"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/pixverse/pixverse-v5-transition", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout", "deleted"}:
        raise RuntimeError(result)
    time.sleep(2)

Pixverse v5 Transition API — Frequently asked questions

What is the Pixverse v5 Transition API?

Pixverse v5 Transition is a Pixverse model for video generation from images, exposed as a REST API on WaveSpeedAI. Create smooth morph transitions between two static images into 5s or 8s videos at 360p, 540p, 720p, or 1080p. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Pixverse v5 Transition API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates Python, JavaScript, and cURL examples for submitting requests and polling results. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/pixverse/pixverse-pixverse-v5-transition.

How much does Pixverse v5 Transition cost per run or per second?

Pixverse v5 Transition starts at $0.045 per run or per second. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Pixverse v5 Transition accept?

Key inputs: `prompt`, `image`, `aspect_ratio`, `resolution`, `duration`, `seed`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/pixverse/pixverse-pixverse-v5-transition.

How long does Pixverse v5 Transition take to generate?

Reported generation time on WaveSpeedAI is around 52 seconds per request. This is an estimate, not a latency guarantee; queue time and input settings can change the total wait. live status is visible in the prediction record.

Can I use Pixverse v5 Transition outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Pixverse). Check the provider's applicable terms and WaveSpeedAI's Terms of Service before commercial use.

llms.txt — pixverse/pixverse-v5-transition for AI agents and LLMs