Superside Wan 2.5 Image-to-Image
The Superside image-to-image node
- image_1
- image_2
- IMAGE
Wan 2.5 never got open weights. Alibaba froze the local series at Wan 2.2 and shipped 2.5, 2.6 and 2.7 as API-only - so when you reach for "Wan 2.5 image-to-image," you are not choosing between this node and a local one. You are choosing between this node and nothing. This Superside node is a thin fal.ai wrapper that puts the hosted Wan 2.5 editor inside your ComfyUI graph, which is exactly the "model you were never allowed to download" case from the API-node playbook.
What it actually is
You hand it one or two reference images plus a prompt describing the edit, it uploads the images to fal.ai, calls their fal-ai/wan-25-preview/image-to-image endpoint, and drops the result back into the graph as a normal IMAGE tensor. On the canvas it looks like any generator node. Underneath it's an HTTP client with your fal key attached, and you pay per call. That "preview" in the endpoint name is doing real work: it's a beta model, so behavior can shift between versions without you doing anything.
The inputs that matter
promptandimage_1are the required pair.image_2is the interesting optional - dual-reference editing, which is what makes Wan 2.5 I2I worth trying over the older one-image edit models.negative_prompt- content to avoid, up to 500 characters.image_size-square,landscape_16_9, orportrait_16_9. Note there's no "keep my input's aspect ratio" option here, which is a real gap if your source is an odd crop.num_images(1–4) andseed. Seed is left unset by default, so you get fresh randomness each run; set it to lock a look.
The single output is an IMAGE - wire it to a SaveImage/PreviewImage and you're done.
Installing it
This is a whole-pack install, not per-node. Either clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes.git
pip install -r requirements.txt
then restart ComfyUI, or use ComfyUI Manager (search "Superside"). All nodes land under the Superside category - type "Superside" in the node search to see the whole set. Dependencies are light (fal-client, pillow, numpy, torch, requests); there are no model files to download because nothing runs locally.
The API key part
There's no config file and nothing is stored in the repo. Every node has an api_key input - paste your fal key straight into the widget. If you leave it blank, the node falls back to the FAL_KEY environment variable, which exists for headless deployments where embedding a key in workflow JSON would leak into logs. Two things worth internalizing: your images and prompt leave your machine and hit fal's servers, and this is the one category of custom node that's already been weaponized once (LLMVISION). This pack is a real production agency's repo, so it's not a sketchy rando - but the per-call cost and the data-leaves-machine part are the mechanism, not a bug.
Common issues
- Drift outside the edit. Wan 2.5 I2I is an instruction editor, not masked inpainting - it takes the whole image into context and emits a whole new image, so unmentioned regions come back close but not bit-identical. If you need untouched pixels (a face you want locked while you swap the jacket), use a masked inpaint pass instead - the same pack's
Z-Image Turbo Inpaint+LoRAis built for exactly that. - Aspect-ratio surprises. The
image_sizedropdown is the only sizing control, so a portrait source forced intosquarewill letterbox or crop. Check your source ratio before picking. - Prompt length. The prompt box is capped at 2000 characters, negative at 500 - the node errors rather than silently truncating.
It's a competent, honest wrapper around a model you literally cannot run elsewhere. Just treat it as paid and slightly beta, because that's what it is.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image_1 | IMAGE | — | |
| api_key | STRING | — | |
| image_2opt | IMAGE | — | |
| negative_promptopt | STRING | — | |
| image_sizeopt | COMBO | square | 3 options: square, landscape_16_9, portrait_16_9 |
| num_imagesopt | INT | 11–4 | Number of images to generate (1-4) |
| seedopt | INT | 0–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |