# ComfyUI image to video: local Wan 2.2 and a Mac sampler workaround

Run image to video in ComfyUI on your own machine with Wan 2.2 5B: the three files, the settings, measured times and memory, and the one change that fixed corrupt frames on a Mac.

Author: Ravi Parikh

Canonical: https://voyager.so/blog/comfyui-image-to-video-local-workflow

Published: 2026-10-29T13:09:04-07:00
Updated: 2026-10-29

![The same frame from two Wan 2.2 5B image-to-video runs of a toy sailboat on a Mac. Left, labeled uni_pc (template default): smeared orange and blue blocks with a black shape where the sail was. Right, labeled euler: a clean red-hulled sailboat with a white sail on rippling water at dusk.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/hero-2fad8dea7c9341a2.webp)

For local image-to-video in ComfyUI, load **Wan 2.2 5B Video Generation**, download its three model files and enable **Load Image**, which ships bypassed. On an Apple Silicon Mac, if the first frame looks right but later frames dissolve into colored bands, try changing the KSampler from `uni_pc` to `euler`. That single change repaired our PyTorch 2.14.1 runs with the same seed, prompt and model files; newer PyTorch releases need a separate check.

The short version: use a 640×352, 49-frame preview to check the motion, then try a short 1280×704 render. Our native-size two-second clip took about seven minutes; the five-second version took 35 minutes and used swap. Choose this route when you want to manage a local graph and downloadable weights. For hosted generation controls and plans, use the [image-to-video tools comparison](/blog/best-image-to-video-ai-tools).

The clips and measurements were recorded **20 October 2026**, on an M5 Max with 128 GB unified memory, ComfyUI v0.42.1 and PyTorch 2.14.1. We rechecked Comfy's documentation, templates, issue tracker and Hugging Face files on **29 October 2026**. The [workflow and source still](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/comfyui-wan22-5b-image-to-video-ce594788bdf4b710.zip) reproduce the recorded settings; the still is a Blender render made for this example.

## The local result

![A red-hulled toy sailboat with a white sail floats on a calm sea at dusk; waves roll past and the boat rocks gently while the sail and its reflection move.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/poster-wan-977b893a37d44b58.webp)

[Video: A red-hulled toy sailboat with a white sail floats on a calm sea at dusk; waves roll past and the boat rocks gently while the sail and its reflection move.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/wan22-5b-euler-mac-6f3c546a71fa99bd.mp4)

Wan 2.2 5B, image to video from the Blender still, 1280×704, 49 frames at 24 fps (about two seconds), 20 steps with euler. Recorded 20 October 2026 on an M5 Max in 7 minutes 16 seconds. Silent.

No audio. The boat keeps its single sail and red hull while the water moves around it; the hull becomes rounder over the clip.

Wan 2.2 TI2V-5B handles both text and image inputs, with recommended 720p output at 24 fps and an Apache-2.0 license ([Wan model card](https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B)). This workflow uses one 10 GB diffusion file rather than the two experts required by Wan 2.2 14B. That makes 5B a smaller download to start with; it does not establish which model will best preserve your subject.

## Download the three files

Start with an installed ComfyUI that can run local models on your hardware. The steps below begin at the workflow, rather than installing Python or GPU drivers.

| File                                     | Folder under `ComfyUI/models/` | Download size |
| ---------------------------------------- | ------------------------------ | ------------- |
| `wan2.2_ti2v_5B_fp16.safetensors`        | `diffusion_models/`            | 10.0 GB       |
| `wan2.2_vae.safetensors`                 | `vae/`                         | 1.41 GB       |
| `umt5_xxl_fp8_e4m3fn_scaled.safetensors` | `text_encoders/`               | 6.74 GB       |

These total **18.1 GB**, in decimal gigabytes, according to the [Hugging Face file API](https://huggingface.co/api/models/Comfy-Org/Wan_2.2_ComfyUI_Repackaged?blobs=true), rechecked 29 October 2026. Download them from [Comfy's repackaged Wan repository](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged). Our ZIP's README contains the matching SHA-256 checksums. Download size is not working memory.

Use the 5B VAE above: the 14B workflow uses `wan_2.1_vae.safetensors` instead ([Comfy's Wan tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2)). In **Comfy Desktop → Desktop Settings → Storage**, check which shared models directory has the **DOWNLOADS** badge, and which output directory is configured ([Desktop storage settings](https://docs.comfy.org/installation/desktop/usage/settings#storage)).

The fp8 text encoder loaded on the CPU as float16 in our recorded run. MPS fp8 support has changed: [PyTorch issue 148420](https://github.com/pytorch/pytorch/issues/148420) closed as implemented on 17 October, and [PyTorch 2.15.0](https://github.com/pytorch/pytorch/releases/tag/v2.15.0), released 28 October 2026, now lists MPS `float8_e4m3fn` support. We have not rerun this graph on that release. If an older install rejects the file, the same Wan repository provides an 11.4 GB fp16 encoder.

## Build the workflow in five steps

1. Open **Templates** in the sidebar, or **Workflow → Browse Workflow Templates**, and search **Wan2.2 5B**. Choose **Wan 2.2 5B Video Generation** ([template browser](https://docs.comfy.org/interface/features/template)). Its generation and video-save nodes are built in, so this graph needs no custom node pack. If nodes are missing, update ComfyUI first. The current release is [v0.43.0](https://github.com/Comfy-Org/ComfyUI/releases/tag/v0.43.0); our recorded run used v0.42.1.

2. Select **Load Image**, press **Ctrl+B** to enable it, and upload your still. Until enabled, the graph runs text-to-video. Crop important edges yourself: the latent node scales and center-crops an input whose aspect ratio differs from the output ([recorded-version source](https://github.com/Comfy-Org/ComfyUI/blob/v0.42.1/comfy_extras/nodes_wan.py#L1449)).

3. In **Wan22ImageToVideoLatent**, begin with **640×352, length 49, batch size 1**. For the final landscape render, try **1280×704**; the model card also recommends **704×1280** for portrait. Use lengths of **4n+1**, such as 33, 49 or 121 ([Wan generator](https://github.com/Wan-Video/Wan2.2/blob/main/generate.py#L123)). At 24 fps, 49 frames is about two seconds.

4. Describe the motion in the positive prompt. For the clip above:

   ```text
   A small toy sailboat with a white sail and a red hull floats on a gently rolling sea at dusk. Soft waves pass the hull and the boat rocks slightly, the sail catches a light breeze, and the reflection ripples on the water. Static camera. Pastel sunset sky, calm and quiet.
   ```

5. Set **20 steps, CFG 5, scheduler simple, denoise 1**, with **ModelSamplingSD3 shift 8** and **Create Video at 24 fps**. These remain the [stock template's values](https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_wan2_2_5B_ti2v.json), checked 29 October 2026. Retain its negative prompt. Use `euler` to match our downloadable graph; the stock sampler remains `uni_pc`. Click **Run**. With default output storage, the Save Video prefix writes to `ComfyUI/output/video/`; Desktop's shared-output configuration can change the base folder.

![The downloadable Wan 2.2 5B workflow open in ComfyUI: Load Diffusion Model, Load CLIP and Load VAE on the left, an enabled Load Image node showing the sailboat still under a group labeled For i2v, use Ctrl + B to enable, a Wan22ImageToVideoLatent node set to 1280 by 704 and length 49, and a KSampler with seed 20261020, 20 steps, cfg 5 and sampler euler.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/workflow-graph-crop-4969b53b6e9567f4.webp)

The downloadable graph loaded in ComfyUI v0.42.1 on 20 October 2026. Load Image is enabled, length is 49 and the sampler is euler; the seed and positive prompt are also fixed for this example.

[Open the graph image at full size](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/workflow-graph-crop-4969b53b6e9567f4.webp) to read the node values. Or [download the workflow and still](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/comfyui-wan22-5b-image-to-video-ce594788bdf4b710.zip), drag the JSON onto the canvas, then upload `boat.png` in **Load Image**. The ZIP includes settings and the image, but no model weights. Its seed is fixed at **20261020**. For agent-driven queueing once your graph works, see [ComfyUI MCP](/blog/comfyui-mcp).

## A workaround for correct-first-frame corruption on a Mac

Our `uni_pc` runs completed without errors at both 640×352 and 1280×704, but every frame after the source still was corrupted. Changing only the sampler to `euler` produced the clean result.

![The first frame shows the sailboat; then the image collapses into smeared horizontal bands of orange, blue and black with a dark triangle where the sail was.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/hero-2fad8dea7c9341a2.webp)

[Video: The first frame shows the sailboat; then the image collapses into smeared horizontal bands of orange, blue and black with a dark triangle where the sail was.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/wan22-5b-unipc-corrupt-mac-4943cce833741a53.mp4)

The same run with the template's default uni\_pc sampler, 1280×704, 49 frames. Recorded 20 October 2026; the run completed without an error. Silent.

No audio. Only the first frame resembles the source image.

As of **29 October 2026**, [issue 15793](https://github.com/Comfy-Org/ComfyUI/issues/15793), [issue 15921](https://github.com/Comfy-Org/ComfyUI/issues/15921) and [issue 16573](https://github.com/Comfy-Org/ComfyUI/issues/16573) remain open. The controlled report in 15921 also finds `euler` clean at lengths where `uni_pc` fails. Issue 16573 proposes a coefficient-precision explanation; its corresponding [fix PR 16574](https://github.com/Comfy-Org/ComfyUI/pull/16574) is still unmerged, and the sampler code is unchanged between our recorded version and v0.43.0. However, [PyTorch 2.15.0's release notes](https://github.com/pytorch/pytorch/releases/tag/v2.15.0) also include the MPS `expm1` precision repair implicated in those reports ([PyTorch issue 198708](https://github.com/pytorch/pytorch/issues/198708)). We have not rerun the graph on 2.15, so whether it still needs the workaround is unverified.

**If you see this pattern, change the sampler first.** An out-of-memory exception or an entirely black clip needs separate diagnosis. Our clips establish the workaround on the recorded stack, not a continuing failure on PyTorch 2.15.

## Keep the clip short before increasing resolution

The five Wan runs below used the same source, seed, prompt and 20-step settings on **20 October 2026**. Wall time includes loading when needed. Peak memory is approximate ComfyUI process physical footprint, sampled about once a second and rounded to **GiB**, not GPU VRAM or a minimum requirement.

| Resolution / frames | Sampler | Wall time   | Peak process memory       | Result  |
| ------------------- | ------- | ----------- | ------------------------- | ------- |
| 640×352 / 49, cold  | uni\_pc | 1 min 26 s  | \~21 GiB                  | Corrupt |
| 640×352 / 49, warm  | euler   | 54 s        | \~21 GiB                  | Clean   |
| 1280×704 / 49       | uni\_pc | 6 min 50 s  | \~75 GiB                  | Corrupt |
| 1280×704 / 49       | euler   | 7 min 16 s  | \~74 GiB                  | Clean   |
| 1280×704 / 121      | euler   | 35 min 21 s | \~132 GiB, including swap | Clean   |

![Two horizontal bars show time to generate Wan clips at 1280 by 704 with euler: 49 frames took 7 minutes 16 seconds; 121 frames took 35 minutes 21 seconds.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/length-chart-dfe3e52941934184.webp)

Our existing 20 October 2026 M5 Max runs: about 2.5 times as many frames took about 4.9 times as long. The longer run used swap. One run per setting, not a scaling benchmark or a forecast for other machines.

The 121-frame run reached about **40 GB of system swap**. Other builds shared the Mac, so times may be inflated. ComfyUI's attention chunks also adapt to free memory ([v0.42.1 source](https://github.com/Comfy-Org/ComfyUI/blob/v0.42.1/comfy/ldm/modules/attention.py#L356)); the peaks on this 128 GB machine do not establish what a smaller Mac needs.

If a run does not fit:

* **Shorten it first.** Keep 49 frames while finding the motion, then increase length.
* **Reduce resolution next.** Our 640×352 `euler` preview stayed coherent, with softer detail than native output.
* **Change decoding only if sampling finishes.** Try **VAE Decode (Tiled)** for a failure at the final decode. Its recorded-version defaults are 512-pixel tiles and a temporal size of 64 frames ([node source](https://github.com/Comfy-Org/ComfyUI/blob/v0.42.1/nodes.py#L348)); it does not reduce sampling memory.

## Check that the still survives the motion

A successful render can still change your subject. Our Wan clip kept the single sail and red hull, but rounded the hull over time. We also recorded the older **LTX-Video 2B 0.9.5** image-to-video template on the same Mac:

![A red sailboat with two white sails, a mainsail and a jib, floats on calm water at dusk while small waves move across the surface.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/poster-ltx-e17ac9c91cf9a55e.webp)

[Video: A red sailboat with two white sails, a mainsail and a jib, floats on calm water at dusk while small waves move across the surface.](https://cdn.moda.app/voyager/blog/comfyui-image-to-video-local-workflow/ltxv-2b-mac-0f97bb372e2ec574.mp4)

LTX-Video 2B 0.9.5 from the same still with ComfyUI's LTXV Image to Video template: 768×416, 97 frames, 30 steps. 54 seconds from a fresh launch, about 29 GiB peak. Recorded 20 October 2026. The boat gains a second sail and a new hull. Silent.

No audio. The water moves smoothly, but the boat differs from the source image from the first frame.

Its image-conditioning strength was **0.15**, the value still in the [LTXV template](https://github.com/Comfy-Org/workflow_templates/blob/main/templates/ltxv_image_to_video.json). It added a sail and changed the hull. Raising strength might help; we did not run that experiment. Different resolutions, lengths and template settings make these two configurations unsuitable for a model speed ranking. For a broader choice of models, inspect the [image-to-video model samples](https://voyager.so/resources/models/prompts/image-to-video).

## Keep paid remote nodes out of the local graph

The template browser also contains hosted API workflows. On 29 October, its [index](https://github.com/Comfy-Org/workflow_templates/blob/main/templates/index.json) includes **Kling 4.0, FLUX 3 Max and Wan 3.0** image-to-video templates tagged **API**. Their presence in ComfyUI does not make those models local.

[Partner Nodes](https://docs.comfy.org/tutorials/partner-nodes/overview) send work to external services, require an account with a positive credit balance and charge credits. To disable them, launch with `--disable-partner-nodes`. The same documentation describes `--offline` for also preventing the frontend's internet communication. This Wan graph uses local model nodes and has no per-generation provider charge; hardware, storage and electricity remain yours to supply.

## Frequently asked questions

**Why does the template ignore my image?** **Load Image** ships bypassed. Enable it with Ctrl+B and select your still; otherwise the hybrid model runs text-to-video ([Comfy's tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2)).

**Will this run on a 16 GB or 32 GB Mac?** We have not measured either. Comfy's tutorial says the 5B model should fit 8 GB VRAM with native offloading, but that is not a Mac unified-memory minimum. Our 640×352 preview peaked at about 21 GiB on a 128 GB Mac; do not use that result as a guarantee for a smaller machine.

**Can I use the output commercially?** Wan 2.2's [Apache-2.0 model license](https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B#license-agreement) is different from the older LTX 2B checkpoint's [Open RAIL-M terms](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltx-video-2b-v0.9.5.license.txt), which include use restrictions. Check the exact checkpoint's terms and clear the rights to your input image.


## Voyager is a desktop AI agent for creative work

Describe what you want to make; Voyager plans it, uses your apps and tools, and keeps everything editable.

[Sign up](/sign-up)