Introduction
Wan 2.2 LoRA Video extend continues a clip you already have. Send it as video_url with a prompt for what happens next. The final frame of your clip becomes the opening frame of a new Wan 2.2 LoRA image-to-video shot of exactly 5 or 8 seconds, and the two are joined into one MP4: your original first, then the continuation, with the repeated seam frame removed. The new segment also comes back as its own file, so you can keep extending or edit the pieces separately.
Key features & highlights
Continuity comes from the last frame. Wardrobe, set, light and where everyone stands carry over because the new segment literally starts on your final frame. Motion does not carry over the same way: the model sees one still, not the whole clip, so describe the movement you want to continue instead of assuming it will keep its speed or direction.
One file back, plus the new piece on its own. The joined MP4 keeps your clip’s frame rate and its framing, with no black bars. To line the seam up, the picture may be trimmed or adjusted by a few percent at the edges. If the model returns a noticeably different shape, the new segment is scaled to fill your frame and centered, cropping what spills over. It is encoded as an H.264 MP4. Wan 2.2 LoRA makes silent video: the sound of your source plays up to the seam and fades out, and the new segment is silent. The second asset in the output is the new segment alone, ready for another extend or for an editor.
Your LoRAs carry over. The three LoRA slots work as on the image-to-video endpoint, each entry a direct weight URL plus a strength from 0 to 4. Attach the same files you used on the clip and the new segment keeps its look; loading LoRAs adds no separate charge.
Everything else is Wan 2.2 LoRA image-to-video. The new segment runs on the same engine, with the same content range and the same per-second price as the image-to-video endpoint, and a failed generation is refunded the same way. If the generation succeeds but the join itself cannot be built, the task fails and the charge is refunded.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Required. What happens next: the action that follows and the camera move. at least 1 characters |
video_url | Yes | The clip to continue: MP4, MOV or WebM, up to 60 seconds. Its final frame becomes the opening frame of the new segment, so cut it on a clean, sharp frame. at least 1 characters |
resolution | No | Resolution the new segment is generated at: 480p or 720p, default 480p. Match your source’s resolution so the seam shows no step in sharpness. |
duration_seconds | No | Length of the new segment: exactly 5 or 8 seconds, default 5. Anything else is rejected rather than rounded. |
loras | No | Up to three LoRAs applied to both noise experts. Each entry takes a direct weight URL and a strength; use this slot when the style should touch composition and texture alike. Default: |
high_noise_loras | No | Up to three LoRAs on the high-noise expert, the pass where composition and motion are decided. The right slot for a camera or movement style. Default: |
low_noise_loras | No | Up to three LoRAs on the low-noise expert, the pass where detail and texture resolve. The right slot for line art, grain or a rendering treatment. Default: |
seed | No | 0 to 2147483647. Hold it fixed while sweeping a LoRA's scale, or you cannot tell the scale from the noise. |
Pricing
Billed per second of the new segment at the resolution you choose; the source clip you send is not billed. Loading LoRAs adds no separate charge.
| Specification | Price |
|---|---|
| $0.024 / second |
| $0.048 / second |
Use cases
Lengthen a shot that ended too early: a product turntable that stops before the label faces camera, or a walk that cuts before the subject reaches the door. Extend it by a few seconds and describe only the remaining motion.
Build a longer sequence step by step. Generate a first shot, extend it, then extend the joined result again; each step bills only the seconds it adds. Because every step starts from a single frame, watch each seam before stacking the next one.
Prompt guide & pro tips
Describe the next beat, not the whole scene. The frame already fixes who and where, so spend the prompt on the action that follows and the camera move. Repeat the camera language your clip ended on, such as a slow push in or a locked shot, so the seam reads as one take.
Trim before you extend. The last frame is the only thing the model sees, so a blurred, mid-cut or heavily compressed ending carries straight into the continuation. Cut your source on a clean, sharp frame first. Sources of up to 60 seconds are accepted as MP4, MOV or WebM.
Keep the resolution consistent. Extending a 720p clip at 480p looks softer next to the original. Match the resolution of your source and pick 5 or 8 seconds as needed: the charge follows the new segment only.
Keep the style steady: attach the same LoRAs at the same strengths as on the clip. A LoRA that exists only on the new segment shows up as a visible change at the seam.
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": "alibaba/wan-2.2-lora/video-extend",
"input": {
"duration_seconds": 5,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "480p",
"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.





















