Wan 2.2 Spicy LoRA · Video Extend
Adding seconds to a clip you already have
- video_url
- low_noise_loras
- high_noise_loras
- loras
- video
- task id
Every video model in this stack has a hard length limit, and Wan 2.2's is short - 5 or 8 seconds per call. Extension is how people actually get to 20 seconds: don't ask for a long clip, generate a small one and continue it. This node takes a clip you already have, follows its final frame, and adds another 5 or 8 seconds at 480p or 720p for $0.038/second.
That it also carries LoRA slots is the point. A continued clip is only convincing if the second half looks like the first, and the reliable way to get that is to attach the exact same weights, at the exact same strengths, as the run that made the source.
How it works
video_url is a VIDEO socket - wire in anything that produces one, including the video output of another SpicyAPI node. The node encodes it to MP4 (an MP4 source is remuxed, not re-encoded), uploads it, and the new footage continues from the source's last frame. Duration, resolution and any LoRAs travel with the request; you get a fresh clip back, not a merged file.
So extension is a loop, not a slider: source clip → extend → extend again. Each pass is billed separately.
Inputs
video_url is the one you can't skip. The clip must fit the 90 MiB upload ceiling - a long, high-bitrate 1080p master can blow past that, and a trimmed, re-encoded source is usually the fix. prompt describes what should happen in the new seconds, not the whole film; the model can see where the last frame left off. duration_seconds is 5 or 8, resolution is 480p or 720p.
Then the LoRA slots, same three-way split as the rest of the Wan 2.2 nodes: loras for the whole generation, high_noise_loras for the high-noise expert that sets composition and motion, low_noise_loras for the low-noise expert that refines detail. Wan 2.2's two-expert MoE is why those exist, and it's why speed LoRAs conventionally go on the low-noise side. Up to three weights per slot, each with a scale from 0 to 4, fed in from SpicyAPI LoRA nodes chained together.
seed repeats a draw. Keep it fixed while you tune the prompt, or you'll never know whether the prompt or the dice changed the shot.
Outputs are video (→ Save Video, or straight into another extend node) and task id.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI and put a key from spicyapi.ai/console/keys into Settings > SpicyAPI; Manager users can just search "SpicyAPI". No dependencies, no model files, no GPU - the node only uploads and downloads. The key is stored in the ComfyUI user folder rather than in node widgets, so sharing the workflow doesn't leak it; on a remote server, use the SPICY_API_KEY environment variable.
Give the first run a moment - an upload plus a render plus a 1080p download is not instant, and the 900-second download timeout exists because it isn't.
What to watch for
The seam is the thing to judge, not the individual clips. Watch the last second of the source and the first second of the extension back to back; if the motion stutters or the subject's look drifts, the usual culprits are a different LoRA set between calls, a different seed policy, or a prompt that introduces new action instead of continuing the old. Reuse the weights and describe the continuation, and it mostly holds.
Second thing: length is billed, so "extend until it looks right" is an expensive habit. Quote one call first - the badge shows the rate - and set Max cost per run in the SpicyAPI settings so a mis-set duration can't run away with your balance. Failed generations come back as 50302 and are refunded, which is the one error you can simply re-run without thinking.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | VIDEO | Source clip to continue. The new footage follows its final frame. | |
| prompt | STRING | Describe the action, the camera, and the mood of the shot. | |
| duration_seconds | COMBO | 5 | Requested output length in seconds. |
| resolution | COMBO | 480p | Output resolution. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| low_noise_lorasopt | SPICY_LORAS | LoRAs applied only in the low-noise stage, which refines detail and texture. Up to three. | |
| high_noise_lorasopt | SPICY_LORAS | LoRAs applied only in the high-noise stage, which sets composition and motion. Up to three. | |
| lorasopt | SPICY_LORAS | LoRAs applied to the whole generation, up to three. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |