Nodes/SpicyAPI/Wan 2.2 Spicy · Image to Video
ComfyUI Node

Wan 2.2 Spicy · Image to Video

The uncensored endpoint, and why 'Spicy' isn't Alibaba's word

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Wan 2.2 Spicy · Image to Video
  • image_url
  • last_image_url
  • video
  • task id
◄prompt►
◄duration_seconds5►
◄resolution480p►
◄seed0►
◄enable_prompt_expansionfalse►

If you've gone looking for "Wan 2.2 Spicy" you've probably already hit the wall that r/StableDiffusion hits every few months: people use it through an API, love it, then try to replicate it locally and can't, because there are no weights to find. It's a hosted variant, not an Alibaba release. Which is exactly what this node gives you - one opening frame in, five or eight seconds of uncensored motion out, no content declaration in the request.

Why you'd reach for it

Wan 2.2 is the last open Wan, and the base checkpoint is not the uncensored model people claim it is: the community answer to that is a fine-tune layer - Remix, Sulphur, Eros and the rest - plus LoRAs stacked on top, and getting the stack to cooperate is its own hobby. This endpoint skips all of it. If the thing you want to render is the reason you were looking for the word "spicy" in the first place, paying $0.019/second to not assemble a checkpoint stack is a reasonable trade.

It's also genuinely cheap. Five seconds at 480p is roughly ten cents.

How it works

Nothing loads on your machine. The node uploads the frame, asks SpicyAPI for a quote, creates the task, polls it, downloads the MP4 and wraps it as a ComfyUI VIDEO, which is why a machine with no GPU can run it at all. Your image is re-encoded on the way out - PNG if it fits under 10 MiB, otherwise a high-quality JPEG - so a 4K opening frame can silently become a 20 MP JPEG. Big source frames are worth scaling down first.

The inputs

image_url is the opening frame and the clip starts from it, so all the framing, wardrobe and lighting decisions are already made. That means prompt should describe motion only: "she turns toward the camera, hair lifting in the wind, slow dolly in." Restating the still is the most common reason an I2V result looks like a slideshow with better compression.

duration_seconds is 5 or 8 - no in-between. resolution is 480p or 720p. seed repeats a draw. enable_prompt_expansion is off by default; turning it on lets the service rewrite your brief, which helps thin prompts and hurts precise ones. The optional last_image_url pins the final frame: handy for closing a loop, or for making two clips that actually join.

Wiring it up

Load Image → image_url. video → Save Video. task id is a string you can log or ignore. If you're chaining clips, feed the returned last frame (or last_image_url) into the next node so the cut lands somewhere deliberate instead of wherever the model stopped.

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
# restart ComfyUI, then Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys

ComfyUI Manager works too - search "SpicyAPI". Nothing else installs: no model files, no dependencies beyond what ComfyUI ships. Alternatively set SPICY_API_KEY in the environment on a server. The key is deliberately not a node widget, so it never ends up inside a workflow file or the metadata of an image you post.

Things that bite

Set Max cost per run in the SpicyAPI settings before your first batch. Seeds default to fixed, so re-queueing the same graph reuses the result rather than charging you twice - switch control after generate to randomize only when you want a different take. Cancelling stops your wait but not the render: the job finishes on their servers and is charged if it succeeds.

If the node list looks short, restart - it's rebuilt from your account catalogue at startup, and an unkeyed install falls back to the snapshot bundled in the release. Errors worth knowing: No SpicyAPI key is set, a 40004 telling you no deployment serves that option combination, and 50302, which means it failed upstream and was refunded, so just run it again.

CategorySpicyAPI/Video/Alibaba

Inputs (7)

NameTypeDefaultDescription
image_urlIMAGEOpening frame. The clip starts from this image.
promptSTRINGDescribe what happens after the opening frame: the action, the camera, and the mood.
duration_secondsCOMBO5Requested output length in seconds.
resolutionCOMBO480pOutput resolution.
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.
enable_prompt_expansionBOOLEANfalseExpand the prompt before generation.
last_image_urloptIMAGEOptional final-frame image.

Outputs (2)

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