Introduction
PixVerse V6 Image to video animates a first frame into a clip of 1 to 15 seconds at 360p, 540p, 720p or 1080p. Add last_image_url and the clip moves from the first image to the last one. The prompt is required and describes what happens. The clip keeps the aspect ratio of your first image. Images are JPG, JPEG, PNG or WebP, up to 20 MB each. PixVerse reviews prompts and images before generating; requests it declines fail and are not charged.
Choose a PixVerse V6 mode by starting material
| What you have at the start | Mode |
|---|---|
| a written scene | PixVerse V6 Text to video |
| a first frame, and optionally a last frame | PixVerse V6 Image to video (you are here) |
| photos of people, objects or places to cast from | PixVerse V6 Reference to video |
| a clip you want to continue | PixVerse V6 Video extend |
| a prompt or one image, and you want higher picture quality | PixVerse V6 Max |
| one photo and a ready-made themed template, no prompt to write | PixVerse V6 Effects |
Key features & highlights
First frame, optional last frame
image_url sets the opening and last_image_url the ending. In our test a woman in a rust coat at the open slit of a white observatory dome (first frame) and the same woman leaning back on the railing with her arms crossed (last frame) became one move: she turns, walks along the railing, leans back and crosses her arms, and the clip ends on the last frame.
The shape follows your image
There is no aspect-ratio field. A portrait image comes back as a portrait clip, a wide image as a wide clip.
A multi-shot switch
shot_type is single by default. Set multi to let the model cut the clip into several shots. It cannot be combined with a last frame.
Sound when you want it
generate_audio is off by default. On, the model generates ambience, effects, music and any dialogue you write in quotes. Sound on costs more per second.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Required, 3 to 5,000 characters. Describe what happens between and after the frames: the action and the camera. at least 3 characters ยท at most 5000 characters |
image_url | Yes | Required. The first frame, JPG, JPEG, PNG or WebP, up to 20 MB. |
last_image_url | No | Optional last frame, same formats and size. With it the clip moves from the first image to the last one. |
resolution | No | 360p, 540p, 720p (default) or 1080p. Higher resolutions cost more per second. |
duration_seconds | No | Whole seconds, 1 to 15 (default 5). The price is per second. |
generate_audio | No | Off by default. On generates sound with the picture: ambience, effects, music and dialogue written in quotes. Default: |
shot_type | No | single (default) or multi. multi lets the model cut the clip into several shots and cannot be combined with a last frame. |
seed | No | Optional whole number from 0 to 2147483647. Useful to compare one change at a time; it does not guarantee identical frames. |
Pricing
Billed per second of output. The resolution and the audio switch change the price per second; shot type and seed do not. Failed or declined requests are not charged.
| Resolution | Generate audio: No | Generate audio: Yes |
|---|---|---|
| $0.0222 / second | $0.0311 / second |
| $0.0311 / second | $0.04 / second |
| $0.04 / second | $0.0533 / second |
| $0.08 / second | $0.1022 / second |
Use cases
Bring a still to life
A portrait, a street scene or a frame saved from an earlier clip. Describe what happens next and the person, wardrobe and setting come from the image.
Move between two poses
Give a last frame that differs from the first and let the model fill in the move, as in our observatory example.
Keep a character across shots
Save a frame from one clip and use it as the first frame of the next to carry a person and a set from shot to shot.
Prompt guide & pro tips
Describe the motion, not the picture
The image already shows what everything looks like. Spend the prompt on the action, the camera move and, if audio is on, the sound.
Keep both frames consistent
Use the same person and set in the first and the last frame. Frames that disagree leave the model no natural move between them.
Give each beat room
In our gas-station test the prompt listed a lamp, a map, a walk and a passing truck; the man folded the map, tucked it away and walked to the car, and the truck with its headlights on appeared in the last second of the 5-second clip. Ask for fewer beats, or add seconds, if a late beat matters.
Compare with a seed
seed keeps runs comparable while you change one thing at a time. It does not guarantee identical frames.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "pixverse/v6/image-to-video",
"input": {
"duration_seconds": 5,
"generate_audio": false,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p",
"shot_type": "single"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.






