RunPod WAN 2.5 I2V
Wan 2.5 has no open weights — this node is the only door inside ComfyUI
- input_image
- video_url
Here's the one honest reason to reach for this node over the other Wan nodes in the pack: you literally cannot get Wan 2.5 any other way. Alibaba stopped shipping open weights after Wan 2.2 - 2.5, 2.6, and 2.7 are all API-only - so "Wan 2.5" in a ComfyUI workflow means one of these wrapper nodes, or nothing. This one wraps RunPod's wan-2-5 endpoint as image-to-video.
Now the part people dance around: 2.5 was not a triumphant release. It shipped as a cloud preview with open weights promised and never delivered, and the community's reception was muted at best. The most generous tester read in the corpus is "2.5 felt like an upgrade to 2.2." That's a real sentence, but it's not "night and day," and you're paying per call for the privilege. If your goal is just a good Wan video, the 2.2 I2V node is cheaper and better understood. If your goal is the newest API-only generation without leaving ComfyUI - to test it, to compare it, to use it because it's what your client asked for - this is your door.
How it works
Same pack machinery, trimmed knobs. The node posts an async job to https://api.runpod.ai/v2/wan-2-5/run with your key in the header and polls until COMPLETED, streaming [RunPod] Status: lines to the console. The interesting difference from the 2.1/2.2 nodes is what's missing: there's no num_inference_steps, no guidance, no flow_shift. RunPod's 2.5 endpoint keeps all the sampler internals on its side and only exposes prompt, image, size, duration, and seed. You get fewer dials to break, and fewer to tune.
The inputs that matter
- api_key - your RunPod key.
- prompt - the scene/motion. Default: "A stand-up comedian delivering a dad joke."
- image / input_image - the starting frame, as a URL string or a connected IMAGE tensor (which wins, since it's base64-encoded and sent).
- duration - 1–10 seconds, default 5.
- seed - -1 random.
- enable_prompt_expansion - 2.5's flavor of prompt enhancement, off by default. This is the same family of feature as the 2.1/2.2 nodes'
enable_prompt_optimization, just renamed for the newer endpoint. - enable_safety_checker - on by default, server-side, uneditable.
There's a negative_prompt field too. That's the whole list - deliberately small.
The output
video_url, a STRING, expiring after ~7 days. Load it with a "Load Video from URL" node or Save Text, and download promptly.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/tcarwash/ComfyUI_RunpodNodes
Restart, or search "RunpodNodes" in ComfyUI Manager. No extra Python deps, no models to fetch - the pack uses only what ComfyUI already has, and the model lives on RunPod's side entirely.
Caveats, as ever: it's a paid API call (videos land in the README's $0.30–1.20 range), your prompt and reference image go to a third party, and the safety filter is not something you can locally remove. The pack itself is a brand-new, single-author release with no community track record - worth a source skim before you hand it a key. And for the record, if you're on the fence between this and the 2.2 node: this one exists for the model, not for the workflow.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| prompt | STRING | A stand-up comedian delivering a dad joke | — |
| image | STRING | — | |
| negative_prompt | STRING | — | |
| size | STRING | 1280*720 | — |
| duration | INT | 51–10 | — |
| seed | INT | -1-1–2147483647 | — |
| enable_prompt_expansion | BOOLEAN | false | — |
| enable_safety_checker | BOOLEAN | true | — |
| input_imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |