How to run Wan 2.2 Animate on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install Wan2.2-Animate-14B from the official Wan-Video/Wan2.2 repository the way the README and the model card print, download the Animate-14B weights, preprocess the driving video, and run the animation or replacement command. Copy the mp4 off the instance before you destroy it, because destroying the instance deletes its disk.

Text-to-video and image-to-video from the same repository, whose README prints at least 24GB for TI2V-5B and at least 80GB for 14B T2V, are How to run Wan 2.2 video generation on a cloud GPU. A Wan 2.2 LoRA is a different task: How to train a Wan 2.2 LoRA with musubi-tuner on a cloud GPU. Pose-guided video whose README says the 72-frame model requires 16GB VRAM is How to run MimicMotion on a cloud GPU. Wan2.1 VACE is a different repository: How to run Wan2.1 VACE on a cloud GPU. Portrait animation from a driving video is How to run LivePortrait on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU.

The repository README and the model card both say the models in this repository are licensed under the Apache 2.0 License. The GitHub license field on 2026-11-13 was Apache-2.0. The model card field license was apache-2.0 and gated was false, lastModified 2025-11-05T10:15:40.000Z, sha cb93a225fbaf1ca100f54e79da8f994995b689b3, pipeline_tag video-to-video.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the Animate section says about memory

The Animate commands in the repository README (commit b7ec3a885dfbba256f27f09dcd82c8e29c3666fb, 2026-09-21; repository HEAD is 1ea34ff48f87168174e12956e200b1d908b1c5ff, committed 2026-09-21T06:16:22Z) and on the model card do not print a GPU GB figure. The computational-efficiency image on both pages is captioned as total time in seconds over peak GPU memory in GB. Its model column lists TI2V-5B T2V, TI2V-5B I2V, T2V-A14B, and I2V-A14B. It does not list Animate-14B. This page does not copy the other cells. The GPU column includes names this page does not print.

The README’s “at least 24GB VRAM” sentence is on the TI2V-5B command. Its “at least 80GB VRAM” sentences are on the T2V-A14B, I2V-A14B, and S2V-14B commands. Those sentences are not in the Animate section. This page does not apply them to Animate. The video-generation guide quotes them for those other tasks.

generate.py (commit 29d4a35d32273d5309a3a95250bd4e118d8789b2, 2025-09-19) says --offload_model offloads the model to CPU after each forward, reducing GPU memory usage. If the flag is omitted, the same file sets it to True when world_size is 1 and to False when world_size is greater than 1. The printed Animate commands do not pass --offload_model, --convert_model_dtype, or --t5_cpu. The T2V section’s OOM note names those three flags. That note is not in the Animate section.

The model API safetensors total on 2026-11-13 was 17274817108, all BF16. This page does not convert that count into GB.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T21:06:02.664Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T21:06:03.185Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. This page did not run Wan2.2-Animate and does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template list had a template named ComfyUI, id flux-1-dev. It had no template whose id or name contained Wan or Animate.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install

On Deploy, choose Raw GPU. The model card’s install block, which matches the repository README, is:

git clone https://github.com/Wan-Video/Wan2.2.git
cd Wan2.2
# Ensure torch >= 2.4.0
# If the installation of `flash_attn` fails, try installing the other packages first and install `flash_attn` last
pip install -r requirements.txt
# If you want to use CosyVoice to synthesize speech for Speech-to-Video Generation, please install requirements_s2v.txt additionally
pip install -r requirements_s2v.txt

requirements.txt (commit 1e7d07e4b3bcbcb5202d8de4cb9ef58d82a33527, 2025-09-05) requires torch>=2.4.0 and does not pin huggingface_hub. The second pip line is the speech-to-video extra. The Animate commands do not use it. requirements_animate.txt (same commit as generate.py) is a file in the repository. The install block does not print a pip line for it. It lists decord, peft, onnxruntime, pandas, matplotlib, loguru, sentencepiece, and an editable install of facebookresearch/sam2 at commit 0e78a118995e66bb27d78518c4bd9a3e95b4e266. The line below is this page’s. It was not run.

# The README install block does not print this line. requirements_animate.txt is a file in the repository. This line is this page's. It was not run.
pip install -r requirements_animate.txt

How to install a specific PyTorch CUDA version is the index check against the CUDA Version in the nvidia-smi header. This page did not pick a wheel.

Weights

The model card’s download block names Wan-AI/Wan2.2-Animate-14B. The repository README’s download example names Wan-AI/Wan2.2-T2V-A14B instead. This page follows the model card’s repository id. The model card prints pip install "huggingface_hub[cli]" and huggingface-cli download. The Hugging Face CLI docs read on 2026-11-13 use hf download and do not print huggingface-cli. The download guide says the same about the command name. The two lines below keep the model card’s arguments and use hf download. They were not run.

# The model card prints pip install "huggingface_hub[cli]" and huggingface-cli download. These two lines are this page's. They were not run.
python -m pip install -U "huggingface_hub"
hf download Wan-AI/Wan2.2-Animate-14B --local-dir ./Wan2.2-Animate-14B

The model API sibling list on 2026-11-13 included process_checkpoint/det/yolov10m.onnx, process_checkpoint/sam2/sam2_hiera_large.pt, many paths prefixed with process_checkpoint/pose2d/vitpose_h_wholebody.onnx/, relighting_lora.ckpt, models_t5_umt5-xxl-enc-bf16.pth, models_clip_open-clip-xlm-roberta-large-vit-huge-14.pth, and Wan2.1_VAE.pth. It also included top-level directories named google and xlm-roberta-large. It did not include a top-level FLUX.1-Kontext-dev directory. This page did not download the repository.

wan/configs/wan_animate_14B.py sets t5_tokenizer to a repository id this page does not paste. Copy that assignment from the file. The same file sets t5_checkpoint to models_t5_umt5-xxl-enc-bf16.pth, clip_checkpoint to models_clip_open-clip-xlm-roberta-large-vit-huge-14.pth, clip_tokenizer to xlm-roberta-large, lora_checkpoint to relighting_lora.ckpt, and vae_checkpoint to Wan2.1_VAE.pth. It sets sample_fps to 30, frame_num to 77, sample_steps to 20, and sample_guide_scale to 1.0. The README acknowledgements include a repository path under a closed-model vendor namespace. Copy that line from the README. This page does not paste it.

Preprocess, then animate or replace

The README says animation mode generates a video of the character image that mimics the human motion in the input video, and replacement mode replaces the character image with the input video. UserGuider.md (same commit as generate.py) says animation mode writes src_face.mp4 and src_pose.mp4 under save_path, and replacement mode also writes src_bg.mp4 and src_mask.mp4. It says the mask extraction is for single-person videos only. It says --use_flux is enhanced retargeting and needs a directory named FLUX.1-Kontext-dev under ckpt_path. The sibling list did not include that directory. This page does not add a download command for it. A separate install for that image model is How to run FLUX.1 Kontext in ComfyUI on a cloud GPU. The SAM 2 weights named in the UserGuider are a different install: How to run SAM 2 on a cloud GPU.

Animation preprocess, copied:

python ./wan/modules/animate/preprocess/preprocess_data.py \
    --ckpt_path ./Wan2.2-Animate-14B/process_checkpoint \
    --video_path ./examples/wan_animate/animate/video.mp4 \
    --refer_path ./examples/wan_animate/animate/image.jpeg \
    --save_path ./examples/wan_animate/animate/process_results \
    --resolution_area 1280 720 \
    --retarget_flag \
    --use_flux

Replacement preprocess, copied:

python ./wan/modules/animate/preprocess/preprocess_data.py \
    --ckpt_path ./Wan2.2-Animate-14B/process_checkpoint \
    --video_path ./examples/wan_animate/replace/video.mp4 \
    --refer_path ./examples/wan_animate/replace/image.jpeg \
    --save_path ./examples/wan_animate/replace/process_results \
    --resolution_area 1280 720 \
    --iterations 3 \
    --k 7 \
    --w_len 1 \
    --h_len 1 \
    --replace_flag

Single-GPU animation, copied:

python generate.py --task animate-14B --ckpt_dir ./Wan2.2-Animate-14B/ --src_root_path ./examples/wan_animate/animate/process_results/ --refert_num 1

Multi-GPU animation, copied. The README titles this block “Multi-GPU inference using FSDP + DeepSpeed Ulysses”:

python -m torch.distributed.run --nnodes 1 --nproc_per_node 8 generate.py --task animate-14B --ckpt_dir ./Wan2.2-Animate-14B/ --src_root_path ./examples/wan_animate/animate/process_results/ --refert_num 1 --dit_fsdp --t5_fsdp --ulysses_size 8

Single-GPU replacement, copied:

python generate.py --task animate-14B --ckpt_dir ./Wan2.2-Animate-14B/ --src_root_path ./examples/wan_animate/replace/process_results/ --refert_num 1 --replace_flag --use_relighting_lora

Multi-GPU replacement. The README and the model card print --src_root_path ./examples/wan_animate/replace/process_results/src_pose.mp4. generate.py describes that argument as “The file of the process output path.” wan/animate.py (same commit as generate.py) does not treat it as a video file. It joins src_pose.mp4, src_face.mp4, and src_ref.png onto src_root_path, and, when --replace_flag is set, also joins src_bg.mp4 and src_mask.mp4. Passing the mp4 makes those joins look for files inside src_pose.mp4. The single-GPU replacement command already points at the process_results directory. The block below keeps every other flag from the README line and uses that directory. It was not run.

# The README and the model card point --src_root_path at process_results/src_pose.mp4.
# wan/animate.py joins the preprocess filenames onto that path, so this line uses the directory. It was not run.
python -m torch.distributed.run --nnodes 1 --nproc_per_node 8 generate.py --task animate-14B --ckpt_dir ./Wan2.2-Animate-14B/ --src_root_path ./examples/wan_animate/replace/process_results/ --refert_num 1 --replace_flag --use_relighting_lora --dit_fsdp --t5_fsdp --ulysses_size 8

--size defaults to 1280*720. wan/configs/__init__.py lists animate-14B supported sizes as 720*1280 and 1280*720. --refert_num defaults to 77. Its help says the recommended values are 1 or 5. The printed commands pass 1. If --prompt is omitted, EXAMPLE_PROMPT for animate-14B is 视频中的人在做动作. If --save_file is omitted, generate.py writes an mp4 in the working directory. The name joins the task, the size, the ulysses size, the first 50 characters of the prompt after replacing spaces and slashes with underscores, and a timestamp from datetime.now(). save_video uses cfg.sample_fps.

The README says: if you are using Wan-Animate, it does not recommend using LoRA models trained on Wan2.2, since weight changes during training may lead to unexpected behavior.

The repository README checklist marks Diffusers integration done and prints the snippet below. The model card checklist leaves that box empty and does not print the snippet. The snippet’s from_pretrained call has no comma between model_id and torch_dtype. This page does not insert one. The snippet uses torch.bfloat16 and does not show an import of torch.

from diffusers import WanAnimatePipeline
from diffusers.utils import export_to_video, load_image, load_video

device = "cuda:0"
dtype = torch.bfloat16
model_id = "Wan-AI/Wan2.2-Animate-14B-Diffusers"
pipe = WanAnimatePipeline.from_pretrained(model_id torch_dtype=dtype)
pipe.to(device)

seed = 42
prompt = "People in the video are doing actions."

# Animation
image = load_image("/path/to/animate/reference/image/src_ref.png")
pose_video = load_video("/path/to/animate/pose/video/src_pose.mp4")
face_video = load_video("/path/to/animate/face/video/src_face.mp4")

animate_video = pipe(
    image=image,
    pose_video=pose_video,
    face_video=face_video,
    prompt=prompt,
    mode="animate",
    segment_frame_length=77,  # clip_len in original code
    prev_segment_conditioning_frames=1,  # refert_num in original code
    guidance_scale=1.0,
    num_inference_steps=20,
    generator=torch.Generator(device=device).manual_seed(seed),
).frames[0]
export_to_video(animate_video, "diffusers_animate.mp4", fps=30)

The replacement snippet in the same README says to create the pipeline as in the animation code, then calls export_to_video(replace_video, "diffusers_replace.mp4", fps=30) with mode="replace" and background_video plus mask_video.

ComfyUI

The repository README checklist marks ComfyUI integration done. It does not print a ComfyUI install. The official page Wan2.2 Animate ComfyUI native workflow, read 2026-11-13, documents Mix mode (replace the character in the video with the reference image) and Move mode (animate the reference image from the input video). It says to disconnect background_video and character_mask on the subgraph node to switch to Move. It says the first run should use a small size, that width and height should be multiples of 16, and that each Video Extend group extends another 77 frames. The parenthetical on that sentence is “Around 4.8125 seconds”. This page did not measure it.

The page names these files and folders, and it does not print a GPU GB figure or a shell download command:

  • models/diffusion_models/Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors
  • models/diffusion_models/wan2.2_animate_14B_bf16.safetensors
  • models/loras/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors
  • models/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors
  • models/clip_visions/clip_vision_h.safetensors
  • models/vae/wan_2.1_vae.safetensors

It links the workflow JSON at Comfy-Org/workflow_templates templates/video_wan2_2_14B_animate.json, and it names the custom nodes kijai/ComfyUI-KJNodes and Fannovel16/comfyui_controlnet_aux. The bf16 and VAE links use Comfy-Org/Wan_2.2_ComfyUI_Repackaged. A request for that repository on 2026-11-13 returned HTTP 307 to Comfy-Org/Wan-2.2. Resolve requests for the six linked files returned HTTP 200 the same day. This page does not print their byte lengths. The shell lines below are this page’s, built from those links. They were not run.

# The ComfyUI page links the files and does not print a shell command. These lines are this page's. They were not run.
hf download Kijai/WanVideo_comfy_fp8_scaled Wan22Animate/Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors --local-dir ~/wan-animate-comfy
hf download Comfy-Org/Wan-2.2 split_files/diffusion_models/wan2.2_animate_14B_bf16.safetensors --local-dir ~/wan-animate-comfy
hf download Kijai/WanVideo_comfy Lightx2v/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors --local-dir ~/wan-animate-comfy
hf download Comfy-Org/Wan_2.1_ComfyUI_repackaged split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors --local-dir ~/wan-animate-comfy
hf download Comfy-Org/Wan_2.1_ComfyUI_repackaged split_files/clip_vision/clip_vision_h.safetensors --local-dir ~/wan-animate-comfy
hf download Comfy-Org/Wan-2.2 split_files/vae/wan_2.1_vae.safetensors --local-dir ~/wan-animate-comfy

Installing ComfyUI itself is How to install ComfyUI and ComfyUI-Manager on a cloud GPU. The docs site also has a page titled Wan Animate 2. This page does not copy that page. The ComfyUI examples directory wan22 at HEAD f9431bb000ce792094ff345446e22cac1ea6cef3 (2025-11-26) lists 5B and 14B text-to-video and image-to-video workflows and does not list an Animate workflow.

When it fails

CUDA out of memory. The Animate section prints no GPU GB figure and no OOM flag of its own. generate.py documents --offload_model. The T2V section names --offload_model True, --convert_model_dtype, and --t5_cpu. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. requirements.txt requires torch>=2.4.0 and does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test Wan2.2-Animate on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Preprocess cannot find FLUX.1-Kontext-dev. The animation command passes --use_flux. The UserGuider names that directory. The model sibling list did not include it. The UserGuider also describes basic retargeting with --retarget_flag and without --use_flux. This page did not run either form.

Save the video, then destroy

Copy the mp4 from the working directory, and the files under the preprocess save_path, before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Frequently asked questions

What GPU memory figure does the Wan2.2 Animate section print?

The Wan2.2-Animate commands in the repository README and on the model card do not print a GPU GB figure. The computational-efficiency image does not list Animate-14B. The README’s at least 24GB sentence is on the TI2V-5B command, and its at least 80GB sentences are on the T2V-A14B, I2V-A14B, and S2V-14B commands. This page does not apply those sentences to Animate. The model API safetensors total on 2026-11-13 was 17274817108, all BF16. This page does not convert that count into GB. gpu-prices.json updated_at 2026-11-13T21:06:02.664Z lists vram_gb values from 8 to 141. This page did not run Wan2.2-Animate and does not mark a row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Where does the video go?

If --save_file is omitted, generate.py writes an mp4 in the working directory. The name joins the task, the size, the ulysses size, the first 50 characters of the prompt after replacing spaces and slashes with underscores, and a timestamp. If --prompt is omitted, the animate-14B example prompt is 视频中的人在做动作. The config sets sample_fps to 30. Preprocess writes src_face.mp4 and src_pose.mp4 under save_path, and replacement mode also writes src_bg.mp4 and src_mask.mp4. The Diffusers snippet writes diffusers_animate.mp4 and diffusers_replace.mp4. This page did not run the commands.

Does official ComfyUI document Wan2.2 Animate?

The page https://docs.comfy.org/tutorials/video/wan/wan2-2-animate, read 2026-11-13, documents Mix and Move, the filenames and folders, and links the weight files. It prints no GPU GB figure. It says each Video Extend extends another 77 frames, with the parenthetical Around 4.8125 seconds. This page did not measure that. A separate docs page is titled Wan Animate 2. This page does not copy that page. The catalog template list had a template named ComfyUI and no template whose id or name contained Wan or Animate.

Which license covers Wan2.2-Animate?

The repository README and the model card say the models in this repository are licensed under the Apache 2.0 License. The GitHub license field on 2026-11-13 was Apache-2.0. The model card license field was apache-2.0 and gated was false. That statement is the upstream license, not a CloudGPU price.

Sources (read 2026-11-13, Asia/Shanghai)

  • Wan2.2 README (install, Animate preprocess, animation and replacement commands, multi-GPU flags, Diffusers snippet, Apache 2.0, efficiency image): https://github.com/Wan-Video/Wan2.2 commit b7ec3a885dfbba256f27f09dcd82c8e29c3666fb. Repository HEAD 1ea34ff48f87168174e12956e200b1d908b1c5ff
  • Model card Wan-AI/Wan2.2-Animate-14B (Animate download id, install block, empty Diffusers checkbox, license apache-2.0, gated false, sha cb93a225fbaf1ca100f54e79da8f994995b689b3, lastModified 2025-11-05T10:15:40.000Z, safetensors total 17274817108 BF16)
  • generate.py (--src_root_path help text), wan/animate.py (joins src_pose.mp4, src_face.mp4, src_ref.png, src_bg.mp4, and src_mask.mp4 onto src_root_path), requirements_animate.txt, UserGuider.md, wan/configs/wan_animate_14B.py, wan/configs/__init__.py: commit 29d4a35d32273d5309a3a95250bd4e118d8789b2
  • requirements.txt: commit 1e7d07e4b3bcbcb5202d8de4cb9ef58d82a33527. LICENSE.txt last commit fa96d0963f1aef3b0f9dd312296d54b13e2da538. GitHub license field Apache-2.0
  • ComfyUI Wan2.2 Animate workflow (filenames, folders, Mix and Move, 77 frames): https://docs.comfy.org/tutorials/video/wan/wan2-2-animate
  • ComfyUI examples wan22 (no Animate workflow): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Hugging Face CLI docs (hf download, no huggingface-cli on that page): https://huggingface.co/docs/huggingface_hub/main/en/guides/cli
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T21:06:02.664Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T21:06:03.185Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no Wan or Animate template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).