Image + prompt → video
One picture and a prompt become a moving shot.
What this is
One picture becomes frame one of a clip, and a prompt says what happens next. It runs Wan 2.2 I2V-A14B: two 14-billion-parameter experts, one that decides the motion and one that finishes the picture, with the high-noise expert handing its leftover noise to the low-noise one halfway through.
Both experts carry a lightx2v 4-step LoRA. That is the single biggest lever on cost in this whole pipeline — four sampler passes instead of twenty — and at CFG 1 the result is close enough that the saving is not arguable. Take the LoRAs out and raise the steps if you want the slow version; the bill follows almost exactly linearly.
Run it on your own machine
A 24 GB card manages 480p. The two experts are 13.3 GB each, so ComfyUI swaps them mid-job rather than holding both — that costs about 18 seconds.
wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors→models/diffusion_models/— 13.3 GBwan2.2_i2v_low_noise_14B_fp8_scaled.safetensors→models/diffusion_models/— 13.3 GBwan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors→models/loras/— 1.1 GBwan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors→models/loras/— 1.1 GBumt5_xxl_fp8_e4m3fn_scaled.safetensors→models/text_encoders/— 6.3 GBwan_2.1_vae.safetensors→models/vae/— 0.25 GB
Wan 2.2 still uses the 2.1 VAE — that is not a typo, and using a 2.2 one produces colour mush. Everything comes from Comfy-Org's repackaged repos (2.2, 2.1).
Frame counts must be 4k+1 — 17, 21, … 121. 49 frames at 16 fps is three seconds.
Run it on RunPod
29 GB of weights is too much to bake into an image you rebuild often, so put them on a network volume and run the stock worker against it.
- Sign up at RunPod.
- Storage → New Network Volume, 100 GB, in a datacenter that lists the GPUs you want. A volume is pinned to its datacenter and so is every endpoint that mounts it.
- Start any cheap pod with the volume attached and download the files above into
/workspace/models/…. Use aria2c with-x8, not a single wget: one stream from Hugging Face runs at about 6 MB/s, eight run at 170. - Then symlink
models/unet → diffusion_modelsandmodels/clip → text_encoders. This is the trap that costs everyone an afternoon: the RunPod worker'sextra_model_paths.yamlnamesunet:andclip:, and ComfyUI's ownmap_legacy()rewrites those todiffusion_modelsandtext_encoders— so it readsmodels/unet, not the directory the models are named after. A volume laid out the obvious way is invisible to it and every job fails with "model not found". - Delete the pod. Serverless → New Endpoint, image
runpod/worker-comfyui:5.10.0-base, attach the volume, container disk 20 GB, execution timeout 1800 s, idle timeout 5 s.
What it costs
About 5.4¢ for a 480p 3-second clip on a cold worker, measured against the RunPod balance. Roughly 50 seconds of that is the worker starting and reading 27 GB off the volume before it renders anything — at low volume the cold start is a third of the bill, which is why the idle timeout matters so much.
You give it
- A starting picture — it becomes frame one, exactly as it is
- A prompt for what happens next
You get back
- An MP4, played inline and downloadable
Describe physics, not mood. “The camera pushes in slowly while the box turns a quarter turn” lands; “epic cinematic vibes” does not.