{"id":1338,"date":"2026-03-08T06:55:41","date_gmt":"2026-03-08T06:55:41","guid":{"rendered":"https:\/\/wiro.ai\/blog\/?p=1338"},"modified":"2026-02-28T04:33:34","modified_gmt":"2026-02-28T04:33:34","slug":"wan2-2-animate-vs-vace-vs-hailuo-2-3-6-motion-tests","status":"publish","type":"post","link":"https:\/\/wiro.ai\/blog\/wan2-2-animate-vs-vace-vs-hailuo-2-3-6-motion-tests\/","title":{"rendered":"Wan2.2 Animate vs VACE vs Hailuo 2.3: 6 Motion Tests"},"content":{"rendered":"<h2>Wan2.2 Animate vs VACE vs Hailuo 2.3: 6 motion tests<\/h2>\n<p>This test compares three different ways to animate a still image into a short video. Wan2.2 Animate uses a driving video for motion transfer. VACE and Hailuo 2.3 use an image-first prompt.<\/p>\n<h2>Models used<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiro.ai\/models\/wan-ai\/wan2-2-animate-animation\">wan-ai\/wan2-2-animate-animation<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/models\/pruna\/vace\">pruna\/vace<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/models\/minimax\/hailuo-2-3\">minimax\/hailuo-2-3<\/a><\/li>\n<\/ul>\n<h2>Test setup<\/h2>\n<ul>\n<li>One reference image was used for all 6 tests.<\/li>\n<li>Wan2.2 Animate: image + driving video. Driving videos were generated with <a href=\"https:\/\/wiro.ai\/models\/pruna\/p-video\">pruna\/p-video<\/a> using simple motion prompts.<\/li>\n<li>VACE: image + prompt (480p, fast settings).<\/li>\n<li>Hailuo 2.3: image-first + prompt (768P, 6 seconds).<\/li>\n<\/ul>\n<h2>Reference image<\/h2>\n<figure>\n  <img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-char-a.jpg\" alt=\"Reference portrait used for all motion tests\"\/><figcaption>Single reference image used across all runs.<\/figcaption><\/figure>\n<h2>Results: 6 motion prompts<\/h2>\n<h3>Test 1: wave<\/h3>\n<p>Prompt: faces the camera and waves slowly with the right hand.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-01.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-01.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-01.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Test 2: smile and nod<\/h3>\n<p>Prompt: looks into the camera, smiles, then nods twice.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-02.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-02.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-02.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Test 3: walk forward<\/h3>\n<p>Prompt: walks forward slowly toward the camera for a few steps, then stops.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-03.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-03.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-03-1.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Test 4: head turn left and right<\/h3>\n<p>Prompt: slowly turns the head to the left, then to the right, then back to center.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-04.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-04b.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-04b.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Test 5: two-step dance and clap<\/h3>\n<p>Prompt: does a simple two step dance move, side to side, then claps once.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-05.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-05.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-05-1.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Test 6: jump and celebrate<\/h3>\n<p>Prompt: jumps lightly in place once, then raises both hands in celebration.<\/p>\n<table>\n<thead>\n<tr>\n<th>Wan2.2 Animate<\/th>\n<th>VACE<\/th>\n<th>Hailuo 2.3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-wan-06.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-vace-06-1.mp4\"><\/video><\/td>\n<td><video controls preload=\"metadata\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vidcmp-hailuo-06-1.mp4\"><\/video><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Takeaways<\/h2>\n<ul>\n<li>Driving-video motion transfer can preserve the starting identity, but it depends heavily on the motion source video.<\/li>\n<li>Image-first prompting can work without a driving video, but motion intent must be described clearly.<\/li>\n<li>Output length and resolution differ by model, so real apps should standardize settings per workflow.<\/li>\n<\/ul>\n<h2>Try the models<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiro.ai\/models\/wan-ai\/wan2-2-animate-animation\">Wan2.2 Animate<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/models\/pruna\/vace\">VACE<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/models\/minimax\/hailuo-2-3\">Hailuo 2.3<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Wan2.2 Animate vs VACE vs Hailuo 2.3: 6 motion tests This test compares three different ways to animate a still image into&hellip;<\/p>\n","protected":false},"author":4,"featured_media":1337,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[72,73,117,58,118,93,57,116,115],"class_list":["post-1338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-model-comparison","tag-benchmark","tag-comparison","tag-hailuo","tag-image-to-video","tag-minimax","tag-pruna","tag-text-to-video","tag-vace","tag-wan2-2"],"_links":{"self":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/comments?post=1338"}],"version-history":[{"count":1,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1338\/revisions"}],"predecessor-version":[{"id":1376,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1338\/revisions\/1376"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media\/1337"}],"wp:attachment":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media?parent=1338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/categories?post=1338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/tags?post=1338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}