{"id":1356,"date":"2026-03-06T18:44:39","date_gmt":"2026-03-06T18:44:39","guid":{"rendered":"https:\/\/wiro.ai\/blog\/?p=1356"},"modified":"2026-09-27T17:53:26","modified_gmt":"2026-09-27T17:53:26","slug":"wan2-2-animate-vs-hailuo-2-3-6-motion-tests","status":"publish","type":"post","link":"https:\/\/wiro.ai\/blog\/wan2-2-animate-vs-hailuo-2-3-6-motion-tests\/","title":{"rendered":"Wan2.2 Animate vs VACE vs Hailuo 2.3: Six Motion Tests"},"content":{"rendered":"<h2>Wan2.2 Animate vs VACE vs Hailuo 2.3: Six Motion Tests<\/h2>\n<p><strong>Wan2.2 Animate vs VACE vs Hailuo 2.3<\/strong> asks a narrower question than a generic video benchmark: which tool fits a particular kind of motion job? The original gallery contains six labelled tests and 18 WP-hosted video players. This update keeps every one of those files, but documents what the published frames actually show and where the setup does not support a clean winner.<\/p>\n<nav><strong>In this guide<\/strong><\/p>\n<ul>\n<li><a href=\"#setup\">What the test was meant to check<\/a><\/li>\n<li><a href=\"#outputs\">What the published outputs actually show<\/a><\/li>\n<li><a href=\"#parameters\">Parameters, runtime, and cost<\/a><\/li>\n<li><a href=\"#pick\">Which model to pick<\/a><\/li>\n<\/ul>\n<\/nav>\n<h2 id=\"setup\">What this test set out to check<\/h2>\n<p>The six written prompts target six practical motion cases: an aerial skyline pan, a neon-lit dancer, a cyclist tracking shot, a pedestrian bridge, a macro insect shot, and a mountain dolly-out. They specify a 6-second, 16:9, 720p target where appropriate. Together, that set would test camera movement, subject movement, crowd behavior, fine detail, and temporal stability.<\/p>\n<p>The three systems are not interchangeable. <a href=\"https:\/\/wiro.ai\/models\/wan-ai\/wan2-2-animate-animation\">Wan2.2 Animate Animation<\/a> is an image-plus-driving-video workflow: the reference image supplies identity and the driving video supplies motion. <a href=\"https:\/\/wiro.ai\/models\/pruna\/vace\">VACE<\/a> takes a text prompt and optionally one to three reference images. <a href=\"https:\/\/wiro.ai\/models\/minimax\/hailuo-2-3\">Hailuo 2.3<\/a> takes text and may take a first-frame image. That matters. A text-only prompt is a fair test for VACE and Hailuo, but it does not exercise Animate&#8217;s defining control surface unless a source image and motion clip are supplied.<\/p>\n<p>Wan&#8217;s open model work explains why this distinction is useful: its video family is designed around high-definition text-to-video and image-to-video generation, while the Animate route explicitly separates character appearance from driving motion. See the <a href=\"https:\/\/github.com\/Wan-Video\/Wan2.2\" target=\"_blank\" rel=\"noopener\">Wan2.2 GitHub repository<\/a> and the <a href=\"https:\/\/huggingface.co\/Wan-AI\/Wan2.2-T2V-A14B\" target=\"_blank\" rel=\"noopener\">Wan2.2 model card<\/a>. Hailuo 2.3 is documented by <a href=\"https:\/\/www.minimax.io\/\" target=\"_blank\" rel=\"noopener\">MiniMax<\/a> as a video-generation product; its Wiro controls expose duration, resolution, a first image, and prompt optimization.<\/p>\n<h2 id=\"outputs\">What the published outputs actually show<\/h2>\n<p>This is the important audit finding: several players do not visibly match their captioned prompt. The supplied poster frames are the only frame-level evidence retained with the post, so the observations below do not claim unverified motion quality. They describe what the reader can actually see before pressing play.<\/p>\n<ul>\n<li><strong>Prompt 1, skyline:<\/strong> the Wan poster is a sunlit coastal cliff rather than a city skyline. The VACE and Hailuo posters are studio watch shots. Those are polished product-style frames, but they cannot establish skyline-pan adherence.<\/li>\n<li><strong>Prompt 2, dancer:<\/strong> the Wan poster shows a neon wet alley, while the VACE poster shows a coastal cliff with birds. The Hailuo poster shows another sunlit coastal view. None visibly contains the requested dancer, so this row should be treated as a camera-and-lighting sample, not a dancer-motion result.<\/li>\n<li><strong>Prompt 3, cyclist:<\/strong> the Wan player again uses a coastal cliff frame. VACE shows a child with a red balloon, and Hailuo shows a neon street cyclist. Hailuo is the only visible poster that directly matches the cyclist subject, although a still cannot prove tracking stability.<\/li>\n<li><strong>Prompt 4, bridge crowd:<\/strong> the existing post reuses the Wan and VACE source files from earlier rows. Hailuo shows a rainy neon alley with a cyclist rather than a pedestrian bridge. This is not a controlled crowd-motion comparison.<\/li>\n<li><strong>Prompt 5, macro:<\/strong> Hailuo&#8217;s poster clearly shows an insect on a dew-covered leaf. The Wan and VACE players reuse earlier non-macro files. The Hailuo frame has convincing droplets and a readable insect silhouette; only playback can answer whether those details hold through the clip.<\/li>\n<li><strong>Prompt 6, mountain trail:<\/strong> the three players reuse coastal-cliff, balloon-child, and watch assets. They do not visibly show a mountain trail or a dolly-out. This row should not be used to judge landscape-camera performance.<\/li>\n<\/ul>\n<p>That does not make the files useless. The watch frames offer a quick check on glossy surfaces, circular geometry, reflections, and shallow depth of field. The rainy street material provides a useful check on wet highlights, haze, neon color separation, and a moving bicycle. The macro leaf is the strongest subject-specific asset in the gallery. The honest conclusion is simpler than a leaderboard: this published set has examples of cinematic imagery, but it does not preserve a one-to-one mapping between every declared prompt and every output.<\/p>\n<h2 id=\"parameters\">Parameters, runtime, and cost on Wiro<\/h2>\n<p>The original post states 6 seconds, 16:9, and 720p in its first prompt, but it does not store the submitted job records. Therefore no per-output runtime or cost can be attributed to these existing videos without inventing data.<\/p>\n<table>\n<thead>\n<tr>\n<th>Model<\/th>\n<th>Relevant Wiro controls<\/th>\n<th>Runtime and cost evidence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Wan2.2 Animate<\/td>\n<td>Input image, driving video, resolution (default, 480p, 580p, 720p), steps (default 20), scale (1.0), shift (5.0), seed.<\/td>\n<td>The model documentation lists no fixed price or typical elapsed time for these files. Do not assume a 6-second render cost from the clip length.<\/td>\n<\/tr>\n<tr>\n<td>VACE<\/td>\n<td>Prompt; optional 1-3 images; 480p or 720p; auto\/16:9\/9:16 ratio; frame count (default 81); three speed modes; sample steps (default 50); solver, guidance, shift, and seed.<\/td>\n<td>No run receipt is attached to the post, so there is no defensible per-output cost or render time.<\/td>\n<\/tr>\n<tr>\n<td>Hailuo 2.3<\/td>\n<td>Prompt; optional first image; prompt optimizer; 768P or 1080P; 6 or 10 seconds. At 1080P, Wiro documents 6 seconds only; 10 seconds is available at 768P.<\/td>\n<td>No job receipt appears in the source post. The docs show configuration limits, not a fixed price or SLA.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>For a repeatable rerun, record the exact prompt, input file IDs, resolution, duration or frame count, seed, queue-to-complete time, and billed task total for every clip. That turns a gallery into a comparison readers can reproduce. It also prevents a fast setting on VACE from being compared with a higher-quality configuration on another model.<\/p>\n<h2 id=\"pick\">When to pick each model<\/h2>\n<p>Pick <a href=\"https:\/\/wiro.ai\/models\/wan-ai\/wan2-2-animate-animation\">Wan2.2 Animate<\/a> when motion transfer and identity retention are the main requirement. Supply a clean character image plus a suitable driving clip. It is the right tool for a person, mascot, or stylized subject that must perform a known movement. It is not the natural first choice for a prompt-only landscape shot.<\/p>\n<p>Pick <a href=\"https:\/\/wiro.ai\/models\/pruna\/vace\">VACE<\/a> when a prompt-led clip needs optional image conditioning and granular sampling controls. The frame count, speed mode, steps, solver, guidance, and seed make it the most adjustment-oriented setup in this group. Use that control when a team expects to rerun variations and wants to keep the parameters comparable.<\/p>\n<p>Pick <a href=\"https:\/\/wiro.ai\/models\/minimax\/hailuo-2-3\">Hailuo 2.3<\/a> for prompt-led cinematic clips with a simpler duration-and-resolution decision. Use a first image when composition must start from a known frame. The visible cyclist and macro assets make it the clearest fit in this gallery for those two subjects, but a full playback review is still required before judging temporal consistency.<\/p>\n<p>For related test formats, see <a href=\"https:\/\/wiro.ai\/blog\/ltx-video-vs-kling-vs-seedance\/\">LTX-Video vs Kling vs Seedance<\/a>, <a href=\"https:\/\/wiro.ai\/blog\/cinematic-image-to-video-models\/\">Best Cinematic Image-to-Video Models<\/a>, and <a href=\"https:\/\/wiro.ai\/blog\/wan-2-7-video-5-video-prompt-tests\/\">WAN 2.7 Video<\/a>. Run the model that matches the control you need, keep the inputs fixed, and save the task receipt alongside the media.<\/p>\n<h2>Published output gallery<\/h2>\n<p>All existing WP-hosted videos and posters are retained below, unchanged.<\/p>\n<div style=\"display:flex;gap:18px;flex-wrap:wrap;\">\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p2-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p2.mp4\" type=\"video\/mp4\" \/>Your browser does not support the video tag.<\/video><figcaption>Wan2.2 Animate &#8211; P1 skyline-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p1-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p1.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P1 skyline-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p1-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p1.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P1 skyline-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p3-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p3.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Wan2.2 Animate &#8211; P2 dancer-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p2-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p2.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P2 dancer-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p2-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p2.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P2 dancer-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p4-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p4.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Wan2.2 Animate &#8211; P3 cyclist-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p3-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p3.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P3 cyclist-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p3-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p3.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P3 cyclist-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p2-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p2.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Wan2.2 Animate &#8211; P4 bridge-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p2-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p2.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P4 bridge-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p4-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p4.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P4 bridge-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p3-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p3.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Wan2.2 Animate &#8211; P5 macro-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p3-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p3.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P5 macro-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p5-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p5.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P5 macro-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p4-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-sora-p4.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Wan2.2 Animate &#8211; P6 mountain-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p5-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-veo-p5.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>VACE &#8211; P6 mountain-labelled output.<\/figcaption><\/figure>\n<figure><video controls preload=\"metadata\" poster=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p1-poster.jpg\"><source src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/comp-hailuo-p1.mp4\" type=\"video\/mp4\" \/><\/video><figcaption>Hailuo 2.3 &#8211; P6 mountain-labelled output.<\/figcaption><\/figure>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wan2.2 Animate vs VACE vs Hailuo 2.3: Six Motion Tests Wan2.2 Animate vs VACE vs Hailuo 2.3 asks a narrower question than&hellip;<\/p>\n","protected":false},"author":4,"featured_media":1476,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[73,58,57],"class_list":["post-1356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-model-comparison","tag-comparison","tag-image-to-video","tag-text-to-video"],"_links":{"self":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1356","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=1356"}],"version-history":[{"count":7,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1356\/revisions"}],"predecessor-version":[{"id":4192,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1356\/revisions\/4192"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media\/1476"}],"wp:attachment":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media?parent=1356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/categories?post=1356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/tags?post=1356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}