Introduction
PixVerse V6 Video extend continues a clip you already have. Send the clip and a prompt for what happens next, and choose how many new seconds to add, from 1 to 15. You get back one file with your clip followed by the new seconds. We tested extend with a PixVerse V6 clip. 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 |
| photos of people, objects or places to cast from | PixVerse V6 Reference to video |
| a clip you want to continue | PixVerse V6 Video extend (you are here) |
| 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
One file, source plus new seconds
In our test a 5-second source plus 5 new seconds came back as a single 10.1 second file at 540p.
The source length is not billed
Billing covers the new seconds. The seconds of the clip you send are not charged.
The setting carries on, details can drift
We extended a cliff-road clip. The new part continued the scene, with the same coastal road, sea and light, but the car looked different: its colour and shape changed. Treat extend as continuity of place and motion, not of every detail.
Sound and resolution
generate_audio is off by default and costs more per second when on. resolution sets the picture size of the new part.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Required, 3 to 5,000 characters. Describe what happens next: the action and the camera. at least 3 characters ยท at most 5000 characters |
video_url | Yes | Required. The clip to continue. |
resolution | No | 360p, 540p, 720p (default) or 1080p. Higher resolutions cost more per second. |
duration_seconds | No | How many new seconds to add: whole seconds, 1 to 15 (default 5). The price is per new second; the source clip is not billed. |
generate_audio | No | Off by default. On generates sound with the picture: ambience, effects, music and dialogue written in quotes. Default: |
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 on the new seconds; the source clip's length is not charged. The resolution and the audio switch change the price per second. 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
Finish a shot that ended too early
Describe the next beat and add a few seconds.
Build a longer scene step by step
Extend, review the result, and extend again. Each step is billed on the seconds it adds.
Hold on the scenery
Ask the camera to stay on the sea or the sky while something crosses the frame. In our test the new part showed gulls flying over the sea and ended on open water.
Prompt guide & pro tips
Describe the next beat, not the whole scene
The clip already shows who and where. Spend the prompt on what happens next and how the camera moves: in our test one sentence about the car entering a tunnel and the camera holding on the sea was enough. Keep the resolution and the sound setting the same as the source clip so the join does not change look or audio, and ask for only as many new seconds as the next beat needs, because the new seconds are what you pay for.
Check the details after the join
Because the car changed colour and shape in our test, look for props, vehicles and wardrobe that must stay the same, and re-run with a changed prompt or seed if they drift.
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/video-extend",
"input": {
"duration_seconds": 5,
"generate_audio": false,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p",
"video_url": "https://example.com/reference.mp4"
}
}'
# 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.






