Immagine AI

LiveAnimate è un nuovo sistema per la generazione continua di animazioni umane guidate dal movimento che estende Wan2.2-Animate trasformandolo da modello di elaborazione offline a framework capace di produrre video in streaming quasi in tempo reale. Il progetto è stato sviluppato da nove ricercatori della Chinese University of Hong Kong, del Qwen Applications Business Group di Alibaba e di Liblib AI ed è descritto nello studio LiveAnimate: Stable Long-Form Streaming Human Animation in Real-Time. Il sistema trasferisce a un soggetto di riferimento movimenti full-body, pose della parte superiore del corpo, gesti delle mani e dinamiche facciali, raggiungendo 19,63 fotogrammi al secondo su due GPU NVIDIA H100 e mantenendo relativamente stabile l’identità anche durante sequenze lunghe diversi minuti.

La differenza rispetto alla versione originale di Wan2.2-Animate riguarda soprattutto il modo in cui viene costruito il video. Wan2.2-Animate considera normalmente una sequenza nel suo insieme e richiede quindi di completare l’elaborazione prima di restituire il risultato, mentre LiveAnimate suddivide la generazione in blocchi consecutivi e produce ogni nuovo segmento utilizzando le informazioni già disponibili. In questo modo il sistema può continuare a generare mentre l’azione procede, senza conoscere in anticipo i frame futuri. Ogni blocco viene prodotto in soli tre passaggi di inferenza e alcune pose precedenti vengono conservate come memoria per aiutare il modello a mantenere nel tempo aspetto, abbigliamento e caratteristiche del soggetto. Il sistema utilizza inoltre una LoRA, ma combina questa componente con generazione streaming, cache delle pose, memoria persistente e ottimizzazioni specifiche per GPU.

L’addestramento viene svolto in due fasi. Nella prima, i video sono suddivisi in blocchi successivi e ogni blocco viene generato utilizzando come contesto quelli precedenti corretti, in modo che il modello impari inizialmente a proseguire la sequenza partendo da informazioni affidabili. Durante l’intero processo rimane disponibile l’immagine di riferimento originale attraverso un meccanismo denominato Ref Sink, che fornisce un richiamo permanente all’identità e all’aspetto della persona. Al termine di ciascun blocco, una procedura chiamata Clean KV Update converte le informazioni appena prodotte in contesto storico utilizzabile dai blocchi successivi. Questa prima fase utilizza ancora 50 passaggi di denoising per blocco e non sarebbe quindi sufficientemente veloce per un utilizzo live.

La seconda fase distilla invece la generazione da 50 a tre passaggi e addestra il modello utilizzando anche la propria cronologia generata, anziché esclusivamente segmenti precedenti privi di errori. Questo passaggio è necessario perché, durante l’utilizzo reale, ogni nuovo blocco deve necessariamente dipendere anche da output già prodotti dal modello e quindi potenzialmente imperfetti. Conservare l’intera storia computazionale di un video sarebbe troppo oneroso; per questo viene eseguita inizialmente una sequenza completa, che viene poi ripercorsa durante l’addestramento un blocco alla volta, consentendo di aggiornare il modello senza mantenere attiva in memoria tutta la sequenza. In combinazione con l’adattamento LoRA, questa strategia permette di distillare il modello Wan2.2-Animate da 14 miliardi di parametri utilizzando un singolo nodo con otto GPU H100 da 80 GB.

La continuità delle sequenze è gestita attraverso Pose-Retrieval Sink Attention, o PR-Sink, progettato per evitare che il costo computazionale aumenti progressivamente con la durata del video. Il sistema conserva permanentemente il primo blocco generato come Static Sink, mantiene una posa storica rilevante come Dynamic Sink e utilizza inoltre una finestra mobile contenente il blocco corrente e i due blocchi precedenti. L’immagine originale resta separatamente accessibile tramite Ref Sink. La dimensione di queste strutture rimane fissa, per cui memoria e latenza non crescono con l’allungarsi dello stream.

La scelta delle pose storiche viene effettuata con ViTPose. Le posizioni del corpo e delle mani estratte da tre frame vengono trasformate in una rappresentazione compatta e inserite in una memory bank che conserva cinque pose rappresentative. La banca viene costruita durante i primi 20 blocchi selezionando pose differenti ed evitando duplicati troppo simili. Quando arriva una nuova posa, LiveAnimate la confronta con quelle memorizzate e recupera quella più vicina, ottenendo così una precedente rappresentazione del soggetto in una configurazione corporea simile. Il blocco immediatamente precedente non viene considerato nella ricerca perché è già presente nella finestra mobile, permettendo al Dynamic Sink di recuperare informazioni più lontane nel tempo.

Anche il runtime è stato ottimizzato per ridurre la latenza. Il calcolo dell’attenzione viene distribuito su due GPU H100, sovrapponendo comunicazione e computazione e riutilizzando le informazioni presenti nelle cache. Con una singola H100 il sistema raggiunge 12,41 FPS, mentre con due GPU arriva a 19,63 FPS e con quattro a 22,13 FPS. L’aumento ottenuto passando da due a quattro GPU risulta quindi relativamente contenuto a causa dell’overhead di comunicazione, motivo per cui la configurazione a due H100 è stata scelta come compromesso preferenziale. A 19,63 FPS, un blocco composto da 12 frame RGB viene generato in 0,611 secondi. L’inferenza richiede complessivamente 160 GB di VRAM nella configurazione a due H100.

LiveAnimate è stato addestrato utilizzando 40.000 video parlati provenienti dal dataset AVSpeech e altri 20.000 video di movimenti umani provenienti dai dataset TikTok e HumanVid. Il training e l’inferenza supportano risoluzioni di 480×480, 384×672 e 672×384 pixel. L’addestramento parte dal checkpoint Wan2.2-Animate-14B e utilizza una LoRA con rank 128; la prima fase è stata eseguita per 10.000 step e la seconda per 20.000 step su otto NVIDIA H100. I video vengono prodotti in blocchi da tre latent frame, equivalenti a 12 frame RGB dopo la decodifica, mentre l’inferenza finale viene eseguita su due H100.

La valutazione ha confrontato LiveAnimate con EverAnimate, One-to-All, SCAIL, UniAnimate-DiT e Wan2.2-Animate sia su sequenze brevi sia su generazioni della durata di tre minuti. Poiché SCAIL e UniAnimate-DiT non supportano nativamente la generazione long-form, nei test più lunghi sono stati estesi tramite una procedura sliding-window senza ulteriore training, mentre EverAnimate e One-to-All sono stati utilizzati con i rispettivi metodi nativi per i video lunghi. Le metriche impiegate comprendono Aesthetic Score e no-reference Image Quality Assessment per la qualità visiva dei frame, DINO similarity per la coerenza dell’aspetto rispetto all’identità di riferimento, Fréchet Inception Distance per la qualità distribuzionale e VideoMAE feature distance per misurare la conservazione delle caratteristiche temporali e del movimento.

Nei primi 30 secondi LiveAnimate ha ottenuto un Aesthetic Score di 2,823 e un valore IQA di 4,047, entrambi i più elevati nella valutazione iniziale riportata. Soprattutto, durante tre minuti di generazione continua i valori relativi a qualità visiva e consistenza dell’identità sono rimasti quasi invariati, mentre alcuni sistemi concorrenti hanno mostrato un deterioramento progressivo. One-to-All ha registrato una diminuzione più marcata della qualità visiva e della coerenza dell’identità accompagnata da un aumento dell’errore distribuzionale, mentre anche Wan2.2-Animate ha mostrato una perdita parziale di consistenza dell’identità nel corso della sequenza.

I confronti qualitativi evidenziano lo stesso comportamento. Nei test full-body della durata di tre minuti, One-to-All ha mostrato un deterioramento marcato, UniAnimate-DiT e SCAIL hanno prodotto fenomeni di flickering, mentre Wan-Animate ed EverAnimate hanno sviluppato nel tempo variazioni dei colori o dello sfondo. LiveAnimate ha invece mantenuto più stabilmente l’aspetto del soggetto e l’ambiente circostante durante tutta la sequenza. Nei test meno complessi relativi alla parte superiore del corpo, EverAnimate e LiveAnimate hanno entrambi raggiunto una buona stabilità sul lungo periodo, ma soltanto LiveAnimate ha effettuato la generazione con caratteristiche prossime al tempo reale.

La differenza nei tempi di elaborazione risulta particolarmente significativa nei benchmark long-form. I sistemi offline confrontati hanno richiesto complessivamente circa due-cinque ore per generare una sequenza di tre minuti, mentre LiveAnimate ha completato la stessa durata in circa quattro minuti mantenendo un throughput di 19,63 FPS. Il sistema permette inoltre di gestire differenti scenari, dai movimenti completi del corpo come danza e attività all’aperto fino a situazioni da intervista caratterizzate da movimenti più contenuti di testa, mani e parte superiore del corpo. In alcune condizioni specifiche due dei framework concorrenti hanno conservato l’identità leggermente meglio, ma nessuno dei sistemi messi a confronto opera in modalità streaming.

LiveAnimate introduce quindi un’architettura nella quale la generazione continua non dipende dall’accumulo indefinito dell’intera cronologia del video: l’identità viene mantenuta attraverso l’immagine di riferimento, mentre una memoria a dimensione fissa conserva soltanto le pose e i blocchi considerati utili per proseguire la sequenza. Questa combinazione consente al modello da 14 miliardi di parametri di produrre animazioni umane long-form con memoria e latenza sostanzialmente indipendenti dalla durata dello stream, rendendo tecnicamente possibili utilizzi interattivi come live streaming, telepresenza e avatar virtuali senza attendere il completamento offline dell’intero video.

Questo articolo è stato redatto con il supporto di strumenti di intelligenza artificiale (AI)

Di Fantasy