Nodes/SpicyAPI/Wan 2.2 LoRA · Text To Video
ComfyUI Node

Wan 2.2 LoRA · Text To Video

Attach your own weights to the one Wan you can still download

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Wan 2.2 LoRA · Text To Video
  • loras
  • high_noise_loras
  • low_noise_loras
  • video
  • task id
◄prompt►
◄negative_prompt►
◄aspect_ratio16:9►
◄resolution480p►
◄duration_seconds5►
◄seed0►

Wan 2.2 is the last Wan with weights you can download - Alibaba took 2.5, 2.6 and 2.7 behind an API and never came back. So there are two ways to run it: the 14B MoE you already have in models/, or a hosted endpoint like this one, where you don't own the GPU but you do get to hang your LoRAs on it. This node is the second path, on the 2.2 A14B base, with no filter on the prompt, the weights or the result.

What it actually is

A node that sends a job to SpicyAPI and hands back a clip. Nothing runs locally: no checkpoint to load, no VRAM to free, and it works on a laptop that has never rendered a frame. The node's options are generated from the model's own published schema, so what you see in the widgets is what the endpoint accepts - nothing invented on the ComfyUI side.

Unless you have a specific reason to pay per second, note the trade. The open 2.2 weights are free forever after the download, and the community has built a whole fine-tune layer on top of them. Paying here buys you their fast hardware and your own LoRAs on top of it, at $0.048/second.

The inputs that matter

prompt describes the scene, action and camera move. negative_prompt is here, which the local base doesn't give you directly - use it, because "static, blurry, text" does more work than people expect. duration_seconds is 5 or 8, resolution is 480p or 720p, aspect_ratio is 16:9 or 9:16. seed repeats a draw exactly.

Then the interesting part, three LoRA slots:

  • loras - applied to the whole generation, up to three files.
  • high_noise_loras - the high-noise expert only.
  • low_noise_loras - the low-noise expert only.

That split exists because 2.2 is the first open video model to use a two-expert MoE: a high-noise pass that sets composition and motion, a low-noise pass that refines detail. It's why the community's habit of applying speed LoRAs to the low-noise pass only exists - 0.4 to 0.6 strength there, keep the high-noise pass clean. Same logic here. Put a distilled speed LoRA in low_noise_loras; put a style or character LoRA in loras.

Weights come from a separate SpicyAPI LoRA node in the same pack: a direct .safetensors URL and a strength from 0 to 4. Chain several by wiring their loras output into the next one's loras input, then the last one into this node. The link has to open without a login - a gated Hugging Face URL will fail, so use the resolve/main form.

Outputs and wiring

video is an ordinary ComfyUI VIDEO - wire it into Save Video, or into the video_url input of the video-extend node if you want a longer shot. task id is a plain string for finding the job in your SpicyAPI console when something needs reporting, or for support.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Restart ComfyUI, then paste a key from spicyapi.ai/console/keys into Settings > SpicyAPI. It installs nothing - the HTTP client is aiohttp, which ComfyUI already ships - and the key lives in the ComfyUI user folder, not in the workflow or in saved PNG metadata. On a headless box, set SPICY_API_KEY instead.

There's a lora template under the comfyui-spicyapi section of the template browser with a working Apache-2.0 pixel-art LoRA, if you want to see the wiring before you hunt for weights of your own.

Where people get burned

Seeds start on fixed, so queueing the same graph twice is one charge and one clip. Flip control after generate to randomize only when you want a new draw, because every run is billed. Then set Max cost per run in the SpicyAPI settings - a 5-second 720p clip is already about a quarter, and an accidental randomize loop is how that becomes five dollars. And remember that cancelling in ComfyUI stops the wait, not the job: the render finishes server-side, is charged if it succeeds, and sits in your console for 14 days.

The error strings are decent, which is rare. No SpicyAPI key is set means exactly that. A 40004 is "no deployment serves this combination" - change the option named in the message. Anything ending in request_id ... is worth copying out verbatim before you file it. 50302 means the generation failed upstream and was refunded, so just run it again.

CategorySpicyAPI/Video/Alibaba

Inputs (9)

NameTypeDefaultDescription
promptSTRINGDescribe the scene, the action and the camera move.
negative_promptSTRINGWhat must stay out of the clip.
aspect_ratioCOMBO16:9Output aspect ratio.
resolutionCOMBO480pOutput video resolution.
duration_secondsCOMBO5Output video duration in seconds.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.
lorasoptSPICY_LORASLoRA weights applied to both noise experts.
high_noise_lorasoptSPICY_LORASLoRA weights applied to the high-noise expert.
low_noise_lorasoptSPICY_LORASLoRA weights applied to the low-noise expert.

Outputs (2)

NameTypeDescription
videoVIDEO—
task idSTRINGThe SpicyAPI task id, for the console logs or support.