Resize Image
The start-frame prep node your Wan I2V workflow is missing
- image
- width
- height
The name undersells it. Yes, Resize Image (ResizeImage_F2) resizes a picture, but in the flow2-wan-video pack it does one specific job: it turns your upload into the kind of first frame Wan's image-to-video actually likes. Feed a raw PNG straight into a Wan sampler and you're leaving quality on the table - Wan I2V works better when the anchor frame is a slightly noised, JPEG-re-encoded, resolution-clean image. This node is the pack's prep step for exactly that.
What it actually does
Under the hood it's a small pipeline, not a single op. It loads the image you pick, optionally scales it to your target width/height while keeping the aspect ratio, rounds the result down to a multiple of 16 (Wan's latent space needs dimensions divisible by 8, and 16 is the safe lane), upscales with Lanczos, adds a tiny touch of Gaussian noise, saves the result as a JPEG, and reloads it. The JPEG round-trip plus the default noise_strength of 0.015 is the classic trick: it breaks the "too perfect" digital input that makes video models latch onto the source and refuse to animate it. People who hand Wan clean PNGs then wonder why their clip barely moves - this is the fix.
The inputs that matter
You don't touch most of these. The ones that do the work:
- image - your upload (or a file in
ComfyUI/input). - width / height - target resolution. Set 1280x720 for 720p, or 832x480-ish for 480p.
- scale_side -
nonestretches to the box,shortest/longestscale to match one side and keep aspect. Shortest is what you want for a reference frame; then the node snaps to a multiple of 16 anyway. - noise_strength - leave at 0.015 unless you see the model sticking to the source frame; crank it only if you want more motion freedom.
- stop - a hidden gem. Flip it on and the node returns an
ExecutionBlocker, which halts the rest of the workflow at that point. Handy when you're dialing in a start frame and don't want to burn a 40-minute video render every time you change it.
image_quality, saturate and blur are the JPEG/saturation/gaussian adjustments; defaults are fine.
Outputs are image, width and height. Wire image into the Wan Sampler's start_image (and a second instance's image into end_image for the Fun-Inpaint mode), and feed the width/height numbers into the Wan Configure node.
Installing it
The whole pack is one install - this isn't a standalone node. In ComfyUI Manager, search flow2-wan-video and hit install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Flow-two/flow2-wan-video.git
cd flow2-wan-video
pip install -r requirements.txt # Windows portable: python_embeded\python.exe -m pip install -r ...
Restart ComfyUI. Requirements are light (gguf, sentencepiece, protobuf); the real downloads are the models, which pull automatically the first time you run.
Troubleshooting
The pack's one big footgun applies here too: flow2-wan-video monkey-patches a few global ComfyUI internals when it loads, and the community has repeatedly traced broken native Wan workflows (the classic Given groups=1, weight of size [5120, 36, 1, 2, 2]... channel error) back to it being installed. If another Wan workflow suddenly breaks, that's not this node's fault in particular - the pack is the suspect. Try --disable-all-custom-nodes to confirm, and if it's the pack, move it out of custom_nodes. Inside the pack's own workflow this node is harmless; the conflict is global, not per-node.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| width | NUMBER | — | |
| height | NUMBER | — | |
| image | COMBO | 1 options: example.png | |
| scale_side | COMBO | 3 options: none, shortest, longest | |
| image_quality | INT | 900–100 | — |
| saturate | FLOAT | 1.00–2 | — |
| blur | FLOAT | 0.000–5 | — |
| noise_strength | FLOAT | 0.0150–0.1 | — |
| noise_seed | INT | 12340–18446744073709550000 | — |
| stop | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| width | NUMBER | — |
| height | NUMBER | — |