Pixverse Pixverse C1 Image To Video API Documentation

Pixverse Pixverse C1 Image To Video API Documentation

Playground

Try it on WaveSpeedAI!

PixVerse C1 generates film-grade videos from a starting image with flexible duration (1-15s), multiple resolutions up to 1080p, and optional native audio generation. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.

Features

PixVerse C1 Image-to-Video animates a reference image into a high-quality cinematic video clip. Upload a start frame, describe the motion — the model generates smooth, natural video with optional native audio across four resolution tiers and clips up to 15 seconds.


Why Choose This?

  • Image-grounded generation Start from a reference photo for precise visual control over subject appearance, environment, and composition.

  • Four resolution tiers Generate from 360p up to 1080p — balance quality and cost based on your delivery needs.

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

  • Extended duration Generate clips from 1 to 15 seconds for maximum creative flexibility.


Parameters

ParameterRequiredDescription
imageYesURL of the reference image to animate.
promptYesText description of the desired motion, camera style, and atmosphere.
resolutionNoOutput resolution: 360p, 540p, 720p (default), or 1080p.
durationNoClip length in seconds. Range: 1–15. Default: 5.
generate_audio_switchNoWhether to generate native audio for the video. Default: off.

How to Use

  1. Upload your image — provide the reference image URL to animate.
  2. Write your prompt — describe the motion, camera movement, and scene atmosphere.
  3. Select resolution — 360p for fastest/lowest cost, 720p for standard, 1080p for highest quality.
  4. Set duration — choose between 1 and 15 seconds.
  5. Enable audio (optional) — check generate_audio_switch to generate synchronized native audio.
  6. Submit — generate, preview, and download your video.

Pricing

ResolutionWithout AudioWith Audio
360p$0.030/s$0.040/s
540p$0.040/s$0.050/s
720p$0.050/s$0.065/s
1080p$0.095/s$0.120/s

Billing Rules

  • Billing is calculated per second of video generated
  • Duration range: 1–15 seconds
  • Examples: 10s at 720p (no audio) = $0.50 — 10s at 1080p (no audio) = $0.95

Best Use Cases

  • Photo Animation — Bring portraits, landscapes, and product images to life with natural cinematic motion.
  • Social Media Content — Animate reference images into short-form clips with optional audio.
  • Marketing & Advertising — Animate product and campaign images for promotional video content.
  • Concept Visualization — Turn still reference images into moving scene previews for pitching and storyboarding.
  • Rapid Prototyping — Use lower resolutions to iterate on motion concepts before a final high-quality render.

Pro Tips

  • Use a high-quality, well-lit reference image with a clearly visible subject for the most natural animation.
  • Be specific in your prompt about camera movement (pan, zoom, dolly) and subject behavior.
  • Use 360p or 540p to rapidly test prompts before committing to a 1080p final render.
  • Enable audio for scenes with strong environmental elements like ocean waves, crowds, or wind.

Notes

  • Both image and prompt are required fields; all other parameters are optional.
  • 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",
  "resolution": "720p",
  "duration": 5,
  "generate_audio_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-c1/image-to-video" \
  -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="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 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|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text prompt describing the desired animation.
imagestringYes-URL of the first frame image to animate.
resolutionstringNo720p360p, 540p, 720p, 1080pResolution quality of the generated video.
durationintegerNo51 ~ 15Duration of the video in seconds (1-15).
generate_audio_switchbooleanNofalse-Whether to generate native audio for the video.

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.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
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.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
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.