Video IA

Produzione video IA self-hosted: l'esperimento — video talking-head generati interamente sul proprio hardware

Produzione video IA self-hosted: l'esperimento — video talking-head generati interamente sul proprio hardware

Produzione video IA self-hosted: l'esperimento — video talking-head generati interamente sul proprio hardware

Un report d'esperimento: abbiamo messo alla prova quanto arriva l'hardware locale nella generazione completa di video talking-head — da ComfyUI e MiniMax-H3 fino alla sincronizzazione labiale di una voce clonata. Il risultato: sorprendentemente vicino, ma non pronto per la produzione. Tutti i numeri, le impostazioni e i vicoli ciechi.

Di cosa parla questo articolo

I video IA con persone che parlano sono ovunque: clip LinkedIn, spiegazioni di prodotto, formati social. I soliti strumenti girano nel cloud — carichi le foto, scegli una voce, e il server di qualcun altro produce il video. È comodo, ma ha tre inconvenienti: ogni clip costa diversi euro, le registrazioni dei clienti lasciano la tua infrastruttura, e i controlli disponibili sono limitati. Chi vuole un controllo preciso e riproducibile — la stessa persona, la stessa stanza, la stessa estetica di camera — si scontra presto con un muro.

Per questo abbiamo fatto l'esperimento opposto in Context Studios: una pipeline in cui ogni componente gira sul nostro hardware — un esperimento per capire cosa è possibile oggi su un singolo dispositivo da scrivania. Questo articolo spiega in modo accessibile come è costruita la pipeline, quali decisioni abbiamo preso, cosa ha funzionato nelle misurazioni e cosa no — compresi i numeri che questi report di solito omettono.

I mattoni di una pipeline video self-hosted

Prima di entrare nel dettaglio, un po' di orientamento. Quattro componenti lavorano insieme:

L'hardware. Un ASUS Ascent GX10 — un mini PC piatto e compatto basato sulla piattaforma NVIDIA DGX Spark. Nel chip GB10, una CPU Arm e una GPU Blackwell condividono 128 GB di memoria unificata.

Il livello immagine. Prima di qualsiasi video, la persona deve essere giusta — come un regista che conosce le foto della sua attrice prima che parta la ripresa. Un modello di immagine (nel nostro caso Qwen-Image-2.1) genera o valida le foto di riferimento della persona chiave: viso, capelli, barba, occhiali, abbigliamento.

Il modello video. MiniMax-H3 prende le foto di riferimento e un prompt da copione, e genera un clip video — compresi il movimento delle labbra e persino la voce generata.

La voce. Un voice clone (nel nostro caso via ElevenLabs) pronuncia il testo tedesco con la voce di marca del cliente. Il punto cruciale: questa voce e il movimento delle labbra nel video devono essere sincronizzati — è un passaggio a sé stante, con i suoi strumenti e le sue insidie.

text
Il flusso dei dati in una frase:
Foto di riferimento → il modello immagine valida l'identità → il
modello video genera un avatar parlante → il voice clone produce
l'audio → il lip-sync allinea le labbra all'audio → post-look → QC

Il setup nel dettaglio

La nostra pipeline gira in ComfyUI. Pensala come un stabilone per modelli IA: si collegano i blocchi col mouse fino a formare un flusso, e il tutto può inoltre essere pilotato automaticamente da programmi (tramite una cosiddetta API HTTP) — esattamente ciò che serve all'automazione. Sulla DGX Spark troviamo:

  • MiniMax-H3, quantizzato int8 (dettagli tra poco), come modello video — rendering verticale a 768×1344 pixel, il classico formato 9:16 dei clip social
  • Qwen3-VL-32B come cervello testuale: un modello linguistico che legge il prompt da copione e lo traduce in una forma con cui il modello video può lavorare
  • Due decoder VAE separati — componenti traduttori che riconvertono i dati interni del modello in vere immagini e suono: uno per le immagini video, uno per l'audio. H3 genera entrambi insieme
  • Una gestione dinamica della memoria: il modello video precarica solo 19,9 GB e recupera il resto quando serve davvero — come prendere gli attrezzi dall'armadio solo quando servono davvero
text
Tempi di rendering (clip di 5 secondi, 24 fps):
864×480 baseline:                  280 secondi
768×1344, 20 passi di campionamento: ~23 minuti, decode inclusa

Un riscontro inatteso: il chip GB10 si limita termicamente. Sopra gli 85 °C di temperatura del die, abbassa il clock di circa il dieci per cento. In una sessione di rendering di cinque ore si è accumulato 81 minuti di limitazione attiva — e spiega perché rendering identici richiedevano ora 53, ora 105 secondi per passo. Chi confronta benchmark deve pensare anche al raffreddamento.

Passo 1: la persona deve essere giusta — il livello immagine

Il modello video è buono quanto il suo materiale di riferimento. Abbiamo usato tre foto di una persona reale e testato sistematicamente quali impostazioni massimizzano l'identità (la somiglianza con la persona vera) e il realismo (pelle naturale, micro-espressioni naturali).

Quantizzazione: int8 invece di fp8. Entrambe le varianti danno metriche di texture della pelle identiche. int8 vince perché carica più veloce — un guadagno di velocità gratuito.

Meno passi di campionamento può essere meglio. 20 passi con il sampler euler e lo scheduler beta57 hanno prodotto micro-espressioni chiaramente più naturali (sopracciglia, pieghe degli occhi, sbadigli) del rendering originale, molto più lungo, che avevamo come confronto.

Il compromesso del Realism-LoRA. Un LoRA è un piccolo modello aggiuntivo che spinge un modello base in una direzione — qui, una pelle fotorealistica. Il nostro test ha confermato l'effetto: pori, filamenti della barba, pieghe degli occhi diventavano visibilmente più naturali. Ma c'era un neo che si nota solo al secondo sguardo: il LoRA modificava anche i tratti identitari — l'attaccatura dei capelli diventava più pronunciata, la barba più grigia e fitta, gli occhiali diversi. La nostra soluzione: ridurre la forza del LoRA da 1,0 a 0,7. Il guadagno di texture resta, lo scarto diventa accettabile.

La trappola che nessuno ha sul radar. Il nostro prompt conteneva deliberatamente molti attributi da "realismo iPhone": leggero tremolio di mano, autofocus esitante, respiro dell'esposizione. L'effetto era sorprendente — e controproducente: il modello trasferiva l'estetica iPhone sulla scena e reinterpretava l'ambientazione. Dal muro verde salvia interno si passava a un muro di cemento con mattoni, all'aperto. La lezione: gli attributi di realismo e l'ambientazione vanno ancorati separatamente ed esplicitamente. Il nostro prompt di scena ora dice, in sostanza: "INDOOR: esattamente il muro verde salvia della foto di riferimento 1, niente esterno, niente cemento, niente mattoni."

Passo 2: il modello video — il dialogo parte del render

MiniMax-H3 ha una proprietà che semplifica decisamente la pipeline: genera video e audio insieme. Il dialogo va in un tag speciale del prompt da copione, e H3 produce un avatar che pronuncia quel testo — con il movimento labiale corrispondente e una voce udibile.

Nel nostro test il modello ha pronunciato la frase tedesca "Die meisten Leute machen KI-Video viel zu kompliziert. Drei lokale Modelle reichen vollkommen aus" in modo comprensibile. Non abbiamo solo ascoltato: abbiamo misurato. Un modello speech-to-text ha trascritto l'audio generato parola per parola.

Il grande vantaggio di questa co-generazione: movimento labiale e suono nascono nello stesso processo, la loro sincronizzazione è quindi meccanicamente perfetta. La barba resta intatta, le espressioni naturali. Lo svantaggio: la voce generata suona generica — non è la voce del cliente. Per la voce di marca servono i passi 3 e 4.

Passo 3: la voce — e la trappola delle allucinazioni

Per la voce di marca usiamo un voice clone su ElevenLabs: un modello che forma una voce a partire da registrazioni di riferimento di un vero parlante. Il nostro clone (internamente "CS-Klon") doveva pronunciare la frase di prova tedesca. Al primo ascolto il risultato sembrava normale. Poi abbiamo fatto la prova decisiva: trascrivere l'audio parola per parola, senza smussare nulla:

text
Testo previsto:  Die meisten Leute machen KI-Video viel zu kompliziert.
                 Drei lokale Modelle reichen vollkommen aus.

Effettivamente pronunciato: Ähm, und die meisten Leute machen KI-Video viel zu
                 kompliziert und drei lokale Modelle, ähm, reichen
                 vollkommen aus. Wir machen das, ähm

Tre "ähm", due "und" inseriti e una frase extra completamente inventata e interrotta — nulla di tutto ciò era nel prompt. Abbiamo anche misurato la melodia della voce con il pitch tracking: la frequenza fondamentale fluttuava in modo incontrollato (deviazione standard di 64 Hz su una media di 143 Hz — un coefficiente di variazione di quasi il 45 per cento, contro poco più del 28 per cento dopo la correzione). E l'andamento del tempo parlato andava da 5,6 a 10,4 secondi per lo stesso testo con impostazioni identiche.

Perché succede — secondo la documentazione ufficiale

La spiegazione era tutta nella documentazione ElevenLabs; bisognava solo assemblarla.

Primo: l'Instant Voice Cloning è una procedura zero-shot. Il sistema mescola il materiale di riferimento con dati generici di un modello di base — e imita tutto ciò che sente in quel materiale. Se il materiale contiene respiri o suoni di riempimento, il clone produce esattamente quelli. La doc lo dice senza giri di parole: "The AI will attempt to mimic everything it hears in the audio."

Secondo: il parametro style della voce è più pericoloso di quanto il nome suggerisca. La pagina di troubleshooting raccomanda di tenerlo a 0 sempre, perché causa "inconsistent speed, mispronunciation and the addition of extra sounds". Avevamo valori fino a 0,45 — il principale sospettato dei suoni extra.

Terzo: una stabilità bassa non è un pulsante di espressività, è un pulsante di varianza. La doc mette in guardia da "performances troppo casuali che fanno parlare il personaggio troppo in fretta". E senza un seed impostato (un valore iniziale per il generatore casuale), ogni generazione è diversa — "determinism is not guaranteed".

Lo stack di correzioni e le sue metriche

Le nostre impostazioni finali: stabilità fissata a 0,55, similarità 0,75, style 0,0, speaker boost attivo, seed fissato per clip, numeri e acronimi scritti per esteso, niente puntini di sospensione. Più un gate di qualità: ogni generazione viene trascritta via speech-to-text — appena compare anche un solo "ähm", viene rigenerata.

text
                            prima                dopo
Filler nello STT:           3× "ähm" + frase     →  0 (6 generazioni su 6)
Varianza del pitch (CV):    44,8 %               →  28,0 %
Variazione della durata:    5,6–10,4 s           →  ±0,1 s (con seed)
Dinamica (LRA):             0,3–3,4 LU casuali   →  stabile 1,4 LU
Loudness:                   −33 LUFS             →  −16 LUFS (livello produzione)

Nel confronto d'ascolto tra due generazioni di modello ha vinto multilingual_v2 (breve, incisivo, prosodia calma) contro il più recente v4 (andamento più naturale, più presenza vocale). E la correzione più pulita è ancora da venire: ricostruire il clone da 60-120 secondi di materiale di riferimento curato, senza respiro — perché il clone imita ciò che sente.

Passo 4: la sincronizzazione labiale — tre approcci a confronto

Quando video e audio provengono da fonti diverse, la bocca va ricalcolata. Esiste un mercato di strumenti per questo — abbiamo testato tre approcci.

Approccio 1: tutto da una fonte (H3 nativo)

Poiché H3 genera suono e immagine insieme, la sincronizzazione è perfetta per costruzione. Tedesco comprensibile, barba impeccabile, espressioni naturali. Per iterare velocemente è la strada migliore. Il prezzo: la voce è quella del modello, non quella del cliente.

Approccio 2: voce esterna più un passaggio di lip-sync esterno

Per una vera voce di marca, un passaggio di sync è inevitabile: un modello specializzato ricalcola il movimento delle labbra per farlo combaciare con l'audio. Abbiamo testato la famiglia lipsync-2 di sync.so tramite l'infrastruttura fal.ai:

Il modello standard sincronizzava bene — ma la barba intorno alla bocca veniva quasi completamente cancellata. L'effetto "appena rasato". Il modello pro (con una garanzia esplicita su barba e denti) conservava parecchio più struttura della barba, anche se restava un assottigliamento lieve. La ragione è concettuale: questi modelli ri-renderizzano l'intera parte inferiore del viso.

Una seconda leva era la modalità di sincronizzazione: remap invece di cut_off. In modalità predefinita l'audio viene tagliato bruscamente alla durata del video; in modalità remap viene mappato sul movimento delle labbra. Questo ha migliorato in modo misurabile sia la qualità della sincronizzazione sia la conservazione della barba.

Ancora più importante è la lezione sul lato del rendering: i modelli di lip-sync di questa famiglia richiedono una bocca che parla attivamente in ingresso. Il nostro primo tentativo — renderizzare il video con le labbra chiuse e far animare la bocca dopo — produce, secondo la doc, solo "risultati generici". Renderizzate con una performance aperta e parlante; l'audio (sbagliato) del modello viene comunque scartato nel passaggio di sync.

Approccio 3: open source sulla propria macchina

Per la soluzione durevole senza costi API, il panorama open source 2026 si riassume così: KeySync dell'Imperial College è il modello libero più forte — diffusione a due stadi, gestione esplicita delle occlusioni (cruciale per gli occhiali!), e misurabilmente migliore della nota alternativa ByteDance LatentSync nel confronto scientifico; LatentSync non ha più rilasci dalla metà del 2025. LTX-LipDub è intrigante ma text-driven e non audio-driven — l'approccio sbagliato per file di voiceover. MuseTalk è da scartare con le barbe.

KeySync è sulla nostra roadmap: l'integrazione ComfyUI esiste, i checkpoint pesano circa 24 GB. La domanda aperta è il build sul chip GB10 — non ci sono ancora esperienze documentate al riguardo; faremo un report.

L'esperimento in 7 passi

text
1. Validare le foto di riferimento (frontale, dettagli, scena)
2. Modello immagine: verifica d'identità della persona
3. Render H3: 768×1344, 20 passi, euler/beta57, seed fisso,
   Realism-LoRA 0,7, dialogo nel tag lingua, performance aperta
   e parlante, scena ancorata esplicitamente
4. Voice clone con lo stack di correzioni + gate STT anti-filler
5. lipsync-2-pro in modalità remap
6. Post-look: contrasto sottile, grana leggera, toni caldi —
   estetica iPhone senza lucido HDR
7. QC: ispezione dei frame più verifica STT del mix finale

Circa 30 minuti per clip, di cui 23 minuti di render H3. La catena è interamente automatizzabile e ha funzionato in modo riproducibile nel nostro test — come allestimento sperimentale, non come linea di produzione.

Cosa abbiamo imparato

Cosa funziona: l'audio co-generato per iterare velocemente. La voce di marca esterna con lip-sync pro e modalità remap. Lo stack di correzioni documentato contro le allucinazioni dei voice clone. L'analisi STT parola per parola come gate di qualità automatico — ha reso visibili problemi che all'orecchio erano insignificanti. La fissazione del seed per take riproducibili. La quantizzazione int8 come guadagno di velocità gratuito.

Cosa non funziona: l'esagerazione dello stile sui voice clone (documentato, ma facile da perdere di vista). Una stabilità bassa come manopola "espressività". Labbra chiuse come target di sync. La modalità di sync predefinita con durate audio/video diverse. Sperare che barba e contorno degli occhiali sopravvivano a un lip-sync standard.

L'impressione complessiva onesta: l'esperimento funziona. Su un singolo dispositivo da scrivania, in mezz'ora nasce un clip con labbra sincronizzate e una voce esterna. Per l'uso in produzione, a nostro avviso, è ancora troppo presto — la qualità è buona, ma non abbastanza da generare contenuti e pubblicarli così com'è. L'ultimo residuo di artificialità non sta nella sincronizzazione, ma nelle micro-espressioni: un occhio allenato riconosce il limite della generazione di modelli attuale. È proprio questo quasi-vero che ci ha portato a documentare il progetto come esperimento anziché portarlo in produzione.

Guardare i risultati

Perché questo report non si limiti ad affermare ciò che spiega: ecco i due clip finali del test. Il primo mostra la variante con la voce di marca — voiceover tedesco dal voice clone, lip-sync tramite il passaggio pro, post-look in estetica iPhone. Il secondo mostra la variante H3 nativa, in cui il modello video genera voce e movimento labiale insieme, rendendo la sincronizzazione meccanicamente perfetta.

Variante A: voce del clone CS con lipsync-2-pro

Variante A: voce del clone CS (ElevenLabs) con lipsync-2-pro e modalità remap — il workflow finale.

Variante B: H3 nativo, audio co-generato

Variante B: H3 nativo — voce e bocca dallo stesso passaggio di diffusione, barba ed espressioni intatte.

Entrambi i clip provengono dallo stesso render (seed identico, prompt di scena identico) — la differenza sta interamente nella catena audio e sync. Quel confronto ci ha mostrato dove sta il punto di forza di ciascun metodo.

La pipeline in un diagramma

Il flusso completo dei dati a colpo d'occhio — dalle foto di riferimento attraverso il render H3 fino alle due varianti di risultato:

Flusso di dati della pipeline video IA self-hosted: foto di riferimento, verifica identità Qwen-Image, render MiniMax-H3, voice clone ElevenLabs con gate STT, lipsync-2-pro remap, post-look e controllo qualità
Flusso di dati della pipeline video IA self-hosted: foto di riferimento, verifica identità Qwen-Image, render MiniMax-H3, voice clone ElevenLabs con gate STT, lipsync-2-pro remap, post-look e controllo qualità

Fonti

Domande frequenti

Perché fare self-hosting quando esistono lip-sync e modelli video come API?

Tre motivi. Primo, il costo: un clip di 5 secondi costa rapidamente diversi euro via API cloud, e il lavoro iterativo moltiplica la cifra. Secondo, il controllo dei dati: le registrazioni dei clienti e le foto di riferimento non lasciano mai la propria infrastruttura. Terzo, il controllo su ogni manopola: seed, sampler, scheduler, forza del LoRA e percorso di rendering sono accessibili pienamente solo in self-hosting — esattamente le leve che ci sono servite per correggere la deriva d'identità e gli errori di scena. L'API resta nella nostra pipeline dove è migliore: il passaggio di lip-sync.

La sincronizzazione labiale con un file voiceover esterno funziona davvero in modo pulito?

Sì, ma non sovrapponendo semplicemente l'audio. Renderizziamo il video con una performance aperta e parlante, lasciamo che un modello specializzato ricalcoli il movimento delle labbra per farlo combaciare esattamente con l'audio — in modalità remap, che mappa l'audio sul movimento invece di tagliarlo — e verifichiamo il risultato con l'ispezione dei frame. Il compromesso documentato: la barba intorno alla bocca si assottiglia leggermente, perché il modello ri-renderizza la parte inferiore del viso. Il modello pro attenua nettamente l'effetto; i modelli open source con maschere di occlusione sono il passo successivo.

Perché un voice clone allucina parole di riempimento come "ähm" mai presenti nel testo?

L'Instant Voice Cloning è una procedura zero-shot: il modello mescola il materiale di riferimento con dati generici di fondazione e imita tutto ciò che sente — compresi respiro e suoni di riempimento. Se il prompt contiene in più acronimi, numeri o puntini di sospensione, il modello improvvisa ancora di più. I rimedi sono documentati ufficialmente e hanno funzionato nel nostro test: materiale di riferimento pulito senza respiro, parametro style a 0, stabilità tra 0,5 e 0,65, un seed impostato, scrivere per esteso tutto ciò che va scritto per esteso — e verificare il risultato via speech-to-text prima che entri in pipeline.

Quanto vicino è il risultato a un vero video iPhone?

Più vicino di quanto ci aspettassimo, con un limite chiaro. La combinazione di attributi da camera a mano nel prompt, grana sottile, toni caldi e l'assenza del lucido HDR regge bene nel confronto a immagine fissa. L'occhio allenato resta sulle micro-espressioni: sbattere le palpebre e le sopracciglia sembrano naturali, ma la gamma delle espressioni facciali è più stretta che in una ripresa reale. Per clip social da 5 a 15 secondi con camera ferma la differenza è quasi invisibile; per i formati lunghi, a nostro avviso, serve un'altra generazione di modelli.

Vale la pena un dispositivo del genere per esperimenti video?

Per il nostro esperimento: sì — a occhi aperti. I 128 GB di memoria condivisa permettono di tenere caricati contemporaneamente il modello video e il modello immagine, e circa 25 minuti per clip sono accettabili per un lavoro di produzione iterativo. Contro: la limitazione termica sotto carico sostenuto e lo svantaggio dell'ecosistema — i modelli open source recenti non hanno un build documentato per questo chip, e alcune librerie grafiche vanno patchate prima. Il GX10 non è un sostituto di una render farm, ma un affascinante dispositivo sperimentale per una persona o un piccolo team — ed è esattamente così che l'abbiamo usato.

Qual è il prossimo passo per eliminare l'ultimo residuo di artificialità?

Tre leve in ordine di priorità. Prima, KeySync in locale sulla macchina: un lip-sync che preserva la barba senza costi API, pur con l'effort di build reale sull'architettura GB10. Seconda, la ricostruzione del voice clone da 60-120 secondi di materiale senza filler né respiro — la correzione documentata alla radice delle allucinazioni. Terza, la selezione best-of-N: generare più take per clip e scegliere automaticamente il migliore via speech-to-text e metriche d'immagine, invece di puntare su una singola generazione.

Un tema per il Suo team? Parliamone 30 minuti.

Valutiamo cosa funziona davvero nella Sua azienda — in concreto, senza valanghe di slide.

Senza impegno · 30 minuti · Offerta entro 48 h