yycc commited on
Commit
9dfbf10
Β·
verified Β·
1 Parent(s): 4e1e405

docs: head-to-head vs Wan2.2-Animate, with clips

Browse files
.gitattributes CHANGED
@@ -39,3 +39,6 @@ examples/media/reference.png filter=lfs diff=lfs merge=lfs -text
39
  examples/media/compare-monkey.mp4 filter=lfs diff=lfs merge=lfs -text
40
  examples/media/compare-parka.mp4 filter=lfs diff=lfs merge=lfs -text
41
  examples/media/compare-horns.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
39
  examples/media/compare-monkey.mp4 filter=lfs diff=lfs merge=lfs -text
40
  examples/media/compare-parka.mp4 filter=lfs diff=lfs merge=lfs -text
41
  examples/media/compare-horns.mp4 filter=lfs diff=lfs merge=lfs -text
42
+ examples/media/compare-costume.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ examples/media/compare-prop.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ examples/media/compare-style.mp4 filter=lfs diff=lfs merge=lfs -text
MODIFICATIONS.md CHANGED
@@ -67,13 +67,20 @@ crop of it (`crop=512:768:389:0`, no scaling):
67
  The driving clip itself is **not** bundled. `examples/demo.sh` rebuilds it, with the
68
  documented crop, from your own copy of the base model.
69
 
70
- **The comparison clips** β€” `compare-monkey.mp4`, `compare-parka.mp4`, `compare-horns.mp4` β€” are a
71
  different matter. Their driving videos are
72
  real filmed footage that we hold the rights to, and they are among the clips this model was
73
- evaluated against. Each file is a four-panel stack: painted reference, driving video,
74
- Wan2.2-Animate-14B, this model. The Wan2.2-Animate panels were rendered by us from the official
75
  [`Wan-AI/Wan2.2-Animate-14B`](https://huggingface.co/Wan-AI/Wan2.2-Animate-14B) weights and code,
76
- unmodified, at its documented replacement-mode settings β€” that panel is Wan's output, not ours.
 
 
 
 
 
 
 
77
 
78
  ## Not redistributed here
79
 
 
67
  The driving clip itself is **not** bundled. `examples/demo.sh` rebuilds it, with the
68
  documented crop, from your own copy of the base model.
69
 
70
+ **The comparison clips** β€” `compare-prop.mp4`, `compare-costume.mp4`, `compare-style.mp4` β€” are a
71
  different matter. Their driving videos are
72
  real filmed footage that we hold the rights to, and they are among the clips this model was
73
+ evaluated against. Each file is a four-panel stack: painted reference, driving video, this model,
74
+ Wan2.2-Animate-14B. The Wan2.2-Animate panels were rendered by us from the official
75
  [`Wan-AI/Wan2.2-Animate-14B`](https://huggingface.co/Wan-AI/Wan2.2-Animate-14B) weights and code,
76
+ unmodified, at the replacement-mode settings its own README documents (20 steps, `sample_shift 5.0`,
77
+ `--refert_num 1 --replace_flag --use_relighting_lora`, preprocessing at `--w_len 1 --h_len 1`) β€”
78
+ that panel is Wan's output, not ours.
79
+
80
+ Wan's `generate.py` hardcodes a 30 fps output timebase regardless of the source, so its raw files
81
+ claim 4.10 s for motion that is 24 fps. The panels are retimed (`setpts`), not resampled, so no
82
+ frames are dropped and both models play at the same speed. Every panel is letterboxed into the
83
+ driving clip's own geometry; nothing is stretched.
84
 
85
  ## Not redistributed here
86
 
README.md CHANGED
@@ -56,9 +56,9 @@ The repainted frame comes from an image editor, not from this model β€” the demo
56
 
57
  ## Compared to Wan2.2-Animate-14B
58
 
59
- One B200, 480Γ—832, 124 frames at 24 fps, bf16, no compile, no offload, idle card. Wan ran its
60
- official replacement recipe β€” 20 steps, `sample_shift 5.0`, `--refert_num 1 --replace_flag
61
- --use_relighting_lora` β€” after its own preprocessing pass.
62
 
63
  | | Viggle-Animate | Wan2.2-Animate-14B |
64
  |---|---|---|
@@ -66,34 +66,40 @@ official replacement recipe β€” 20 steps, `sample_shift 5.0`, `--refert_num 1 --
66
  | Render, after weights load | **26 s** | 160 s |
67
  | β€” of which sampling | **13.6 s** | 140 s |
68
  | Forward passes | **3** | 40 (20 steps Γ— 2 chunks) |
69
- | Parameters | 33 B | 14 B |
70
 
71
- **6Γ— faster per render, 10Γ— on sampling alone** β€” while being the 2.4Γ— larger model. Wan's
72
- preprocessing pass is not counted in its 160 s, so the real gap is wider. The win is step
73
- distillation, not a faster backbone: per forward pass we are 4.5 s to Wan's 3.5 s.
74
 
75
- Four panels each: **painted reference Β· driving video Β· Wan2.2-Animate-14B Β· this model.**
76
 
77
- <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-monkey.mp4"></video>
78
 
79
- The reference has a monkey's head. Wan replaces it with a bald human one.
 
80
 
81
- <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-parka.mp4"></video>
82
 
83
- A padded parka with a fur-trimmed hood, driven by a man in a fitted dress shirt. Wan returns a slim jacket.
 
84
 
85
- <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-horns.mp4"></video>
86
 
87
- Horns and a heavy fur coat, driven by a man in a suit. Wan drops both.
88
 
89
- This has a mechanical cause rather than a mysterious one. In replacement mode Wan composites its
90
- result back inside a segmentation mask traced from the **driving** performer, so anything that
91
- silhouette does not already contain has nowhere to go. We condition on the painted frame directly,
92
- with no mask and no skeleton, so the silhouette is free to change.
 
 
 
 
93
 
94
  These three are selected. Across the 24 clips we ran head to head, Wan came out ahead on one β€” a
95
- tight talking-head shot, where its explicit facial-landmark channel is more expressive than our
96
- face. That is the same weakness listed under Limitations below.
97
 
98
  ## What this is
99
 
 
56
 
57
  ## Compared to Wan2.2-Animate-14B
58
 
59
+ One B200, 480Γ—832, 124 frames at 24 fps, bf16, no compile, no offload. Wan ran its documented
60
+ replacement recipe β€” 20 steps, `sample_shift 5.0`, `--refert_num 1 --replace_flag
61
+ --use_relighting_lora`, `--w_len 1 --h_len 1` β€” after its own preprocessing pass.
62
 
63
  | | Viggle-Animate | Wan2.2-Animate-14B |
64
  |---|---|---|
 
66
  | Render, after weights load | **26 s** | 160 s |
67
  | β€” of which sampling | **13.6 s** | 140 s |
68
  | Forward passes | **3** | 40 (20 steps Γ— 2 chunks) |
69
+ | Parameters | 33.1 B | 17.3 B |
70
 
71
+ **6.1Γ— faster per render, 10.3Γ— on sampling alone**, on a model with 1.9Γ— the parameters. Wan's
72
+ preprocessing pass is not counted in its 160 s. The win is step distillation, not a faster
73
+ backbone: per forward pass we are 4.5 s to Wan's 3.5 s.
74
 
75
+ Four panels each: **painted reference Β· driving video Β· this model Β· Wan2.2-Animate-14B.**
76
 
77
+ <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-prop.mp4"></video>
78
 
79
+ A light-up toy held in both hands. Wan renders it as a featureless red blob, then as a blown-out
80
+ white rectangle for the rest of the clip.
81
 
82
+ <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-costume.mp4"></video>
83
 
84
+ A white bow headwrap, floral-print leggings and navy slippers, driven by a bearded man. Wan flattens
85
+ the leggings to plain white, drops the bow and the slippers, and lets the driver's beard through.
86
 
87
+ <video controls muted loop playsinline width="100%" src="https://huggingface.co/Viggle/Viggle-Animate/resolve/main/examples/media/compare-style.mp4"></video>
88
 
89
+ A flat 2D anime character. Wan drifts toward a semi-realistic face and recolours the outfit.
90
 
91
+ The two pipelines carry appearance very differently. In replacement mode Wan regenerates everything
92
+ inside a per-frame mask over the driving performer, and what it has to rebuild that region from is
93
+ one CLIP embedding plus one VAE latent of the character image, against a pose-skeleton video, 512Γ—512
94
+ face crops through a motion encoder, and a background plate with the region painted out β€” four of the
95
+ five conditioning streams derived from the driving clip. At the documented `--w_len 1 --h_len 1` the
96
+ painted-out region is the performer's whole bounding box, so a held prop sits inside it and is not
97
+ represented in any of those streams. We condition on the painted frame and the driving video, with no
98
+ pose extraction, no segmentation, no background plate and no prompt.
99
 
100
  These three are selected. Across the 24 clips we ran head to head, Wan came out ahead on one β€” a
101
+ tight talking-head shot, where its explicit face channel tracks expression that we render flat. That
102
+ is the same weakness listed under Limitations below. Roughly six were a wash.
103
 
104
  ## What this is
105
 
examples/media/compare-costume.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2a45ac3e161df80bff9e4b220e3282855821d450b1d14974b4e886609e001d8e
3
+ size 447259
examples/media/compare-prop.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4128c0e35bf144b5d0e72c5837cc1958421a749337af395977de04fa07b92fea
3
+ size 678070
examples/media/compare-style.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:692ff38363a0162b965d0c6944e9adb98455c8a4e92419b3f9bb764ce9bd6778
3
+ size 536776