wan-video/wan-2.2-animate-replace 🔢🖼️✓❓ → 🖼️

⭐ Official ▶️ 28.4K runs 📅 Sep 2025 ⚙️ Cog 0.16.9
character-replacement video-consistent-character-generation video-editing video-to-video

About

Use Wan 2.2 Animate to replace a character in a video scene

Example Output

Output

Performance Metrics

83.09s Prediction Time
83.13s Total Time
All Input Parameters
{
  "video": "https://replicate.delivery/pbxt/Nm2vPyL3RrdSEaluBGX8YwOtGmDoLAZZ84Siw3DQZ5O17w9F/cpevn6cy8hrme0csg21vqy3v5m.mp4",
  "go_fast": true,
  "refert_num": 1,
  "resolution": "720",
  "merge_audio": true,
  "character_image": "https://replicate.delivery/pbxt/Nm2vQ6UMlVVGrc5Qb3sCC7g5HNMNRfwk2VrxmsCSJceDRt0Y/selfie_boy_wide_angle.webp",
  "frames_per_second": 24
}
Input Parameters
seed Type: integer
Random seed. Leave blank for random.
video (required) Type: string
Input video containing the character to be replaced.
go_fast Type: booleanDefault: false
Apply additional optimizations for faster generation.
refert_num Default: 1
Number of reference frames to use (must be 1 or 5. Deprecated, will always be set to 1.
resolution Default: 720
Resolution for processing.
merge_audio Type: booleanDefault: true
Merge audio from input video into output.
character_image (required) Type: string
New character image to replace the original character.
frames_per_second Type: integerDefault: 30Range: 5 - 60
Frames per second for output video. Deprecated, will always be set to 30.
Output Schema

Output

Type: stringFormat: uri

Example Execution Logs
Using seed: 388746
video frame:   0%|          | 0/120 [00:00<?, ?it/s]
video frame:   5%|▌         | 6/120 [00:00<00:02, 53.32it/s]
video frame:  10%|█         | 12/120 [00:00<00:02, 53.58it/s]
video frame:  15%|█▌        | 18/120 [00:00<00:01, 53.71it/s]
video frame:  20%|██        | 24/120 [00:00<00:01, 54.13it/s]
video frame:  25%|██▌       | 30/120 [00:00<00:01, 54.43it/s]
video frame:  30%|███       | 36/120 [00:00<00:01, 54.57it/s]
video frame:  35%|███▌      | 42/120 [00:00<00:01, 54.69it/s]
video frame:  40%|████      | 48/120 [00:00<00:01, 54.75it/s]
video frame:  45%|████▌     | 54/120 [00:00<00:01, 54.66it/s]
video frame:  50%|█████     | 60/120 [00:01<00:01, 54.60it/s]
video frame:  55%|█████▌    | 66/120 [00:01<00:00, 54.46it/s]
video frame:  60%|██████    | 72/120 [00:01<00:00, 54.57it/s]
video frame:  65%|██████▌   | 78/120 [00:01<00:00, 54.70it/s]
video frame:  70%|███████   | 84/120 [00:01<00:00, 52.12it/s]
video frame:  75%|███████▌  | 90/120 [00:01<00:00, 50.18it/s]
video frame:  80%|████████  | 96/120 [00:01<00:00, 48.87it/s]
video frame:  84%|████████▍ | 101/120 [00:01<00:00, 49.02it/s]
video frame:  88%|████████▊ | 106/120 [00:02<00:00, 47.99it/s]
video frame:  93%|█████████▎| 112/120 [00:02<00:00, 48.88it/s]
video frame:  98%|█████████▊| 117/120 [00:02<00:00, 48.43it/s]
video frame: 100%|██████████| 120/120 [00:02<00:00, 51.74it/s]
/root/.pyenv/versions/3.11.13/lib/python3.11/site-packages/sam2/sam2_video_predictor.py:786: UserWarning: cannot import name '_C' from 'sam2' (/root/.pyenv/versions/3.11.13/lib/python3.11/site-packages/sam2/__init__.py)
Skipping the post-processing step due to the error above. You can still use SAM 2 and it's OK to ignore the error above, although some post-processing functionality may be limited (which doesn't affect the results in most cases; see https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).
pred_masks_gpu = fill_holes_in_mask_scores(
propagate in video:   0%|          | 0/120 [00:00<?, ?it/s]
propagate in video:   2%|▎         | 3/120 [00:00<00:04, 27.19it/s]
propagate in video:   5%|▌         | 6/120 [00:00<00:04, 22.84it/s]
propagate in video:   8%|▊         | 9/120 [00:00<00:05, 20.12it/s]
propagate in video:  10%|█         | 12/120 [00:00<00:05, 19.21it/s]
propagate in video:  12%|█▏        | 14/120 [00:00<00:05, 18.80it/s]
propagate in video:  13%|█▎        | 16/120 [00:00<00:05, 18.54it/s]
propagate in video:  15%|█▌        | 18/120 [00:00<00:05, 18.33it/s]
propagate in video:  17%|█▋        | 20/120 [00:01<00:05, 17.94it/s]
propagate in video:  18%|█▊        | 22/120 [00:01<00:05, 17.50it/s]
propagate in video:  20%|██        | 24/120 [00:01<00:05, 17.18it/s]
propagate in video:  22%|██▏       | 26/120 [00:01<00:05, 17.29it/s]
propagate in video:  23%|██▎       | 28/120 [00:01<00:05, 17.44it/s]
propagate in video:  25%|██▌       | 30/120 [00:01<00:05, 17.52it/s]
propagate in video:  28%|██▊       | 33/120 [00:01<00:04, 20.30it/s]
propagate in video:  30%|███       | 36/120 [00:01<00:04, 19.69it/s]
propagate in video:  32%|███▏      | 38/120 [00:02<00:04, 19.32it/s]
propagate in video:  33%|███▎      | 40/120 [00:02<00:04, 18.94it/s]
propagate in video:  35%|███▌      | 42/120 [00:02<00:04, 18.65it/s]
propagate in video:  37%|███▋      | 44/120 [00:02<00:04, 18.47it/s]
propagate in video:  38%|███▊      | 46/120 [00:02<00:04, 18.32it/s]
propagate in video:  40%|████      | 48/120 [00:02<00:03, 18.21it/s]
propagate in video:  42%|████▏     | 50/120 [00:02<00:03, 18.14it/s]
propagate in video:  43%|████▎     | 52/120 [00:02<00:03, 18.08it/s]
propagate in video:  45%|████▌     | 54/120 [00:02<00:03, 17.19it/s]
propagate in video:  47%|████▋     | 56/120 [00:03<00:03, 17.41it/s]
propagate in video:  48%|████▊     | 58/120 [00:03<00:03, 17.57it/s]
propagate in video:  50%|█████     | 60/120 [00:03<00:03, 17.68it/s]
propagate in video:  52%|█████▎    | 63/120 [00:03<00:02, 20.67it/s]
propagate in video:  55%|█████▌    | 66/120 [00:03<00:02, 19.96it/s]
propagate in video:  57%|█████▊    | 69/120 [00:03<00:02, 19.35it/s]
propagate in video:  59%|█████▉    | 71/120 [00:03<00:02, 19.01it/s]
propagate in video:  61%|██████    | 73/120 [00:03<00:02, 18.74it/s]
propagate in video:  62%|██████▎   | 75/120 [00:04<00:02, 18.52it/s]
propagate in video:  64%|██████▍   | 77/120 [00:04<00:02, 18.38it/s]
propagate in video:  66%|██████▌   | 79/120 [00:04<00:02, 18.26it/s]
propagate in video:  68%|██████▊   | 81/120 [00:04<00:02, 18.19it/s]
propagate in video:  69%|██████▉   | 83/120 [00:04<00:02, 18.13it/s]
propagate in video:  71%|███████   | 85/120 [00:04<00:01, 18.09it/s]
propagate in video:  72%|███████▎  | 87/120 [00:04<00:01, 18.04it/s]
propagate in video:  74%|███████▍  | 89/120 [00:04<00:01, 18.02it/s]
propagate in video:  77%|███████▋  | 92/120 [00:04<00:01, 20.80it/s]
propagate in video:  79%|███████▉  | 95/120 [00:05<00:01, 20.04it/s]
propagate in video:  82%|████████▏ | 98/120 [00:05<00:01, 19.50it/s]
propagate in video:  83%|████████▎ | 100/120 [00:05<00:01, 19.12it/s]
propagate in video:  85%|████████▌ | 102/120 [00:05<00:00, 18.82it/s]
propagate in video:  87%|████████▋ | 104/120 [00:05<00:00, 18.58it/s]
propagate in video:  88%|████████▊ | 106/120 [00:05<00:00, 18.42it/s]
propagate in video:  90%|█████████ | 108/120 [00:05<00:00, 18.31it/s]
propagate in video:  92%|█████████▏| 110/120 [00:05<00:00, 18.22it/s]
propagate in video:  93%|█████████▎| 112/120 [00:06<00:00, 18.16it/s]
propagate in video:  95%|█████████▌| 114/120 [00:06<00:00, 18.13it/s]
propagate in video:  97%|█████████▋| 116/120 [00:06<00:00, 17.68it/s]
propagate in video:  98%|█████████▊| 118/120 [00:06<00:00, 17.80it/s]
propagate in video: 100%|██████████| 120/120 [00:06<00:00, 17.88it/s]
propagate in video: 100%|██████████| 120/120 [00:06<00:00, 18.59it/s]
Reshaping reference image from (1168, 784) to (1280, 720)
  0%|          | 0/3 [00:00<?, ?it/s]
 33%|███▎      | 1/3 [00:07<00:14,  7.17s/it]
 67%|██████▋   | 2/3 [00:09<00:04,  4.56s/it]
100%|██████████| 3/3 [00:17<00:00,  5.77s/it]
100%|██████████| 3/3 [00:17<00:00,  5.70s/it]
  0%|          | 0/3 [00:00<?, ?it/s]
 33%|███▎      | 1/3 [00:07<00:14,  7.21s/it]
 67%|██████▋   | 2/3 [00:09<00:04,  4.58s/it]
100%|██████████| 3/3 [00:17<00:00,  5.77s/it]
100%|██████████| 3/3 [00:17<00:00,  5.71s/it]
/root/.pyenv/versions/3.11.13/lib/python3.11/site-packages/cog/server/scope.py:22: ExperimentalFeatureWarning: current_scope is an experimental internal function. It may change or be removed without warning.
warnings.warn(
Version Details
Version ID
33ec6b986ba9010eee4cd812be67d25e72150fad7d2b11d3abed66a9c7ac1ba1
Version Created
January 28, 2026
Run on Replicate →