28 luglio 2026 · 10 min lettura
Intelligenza ArtificialeAgente AI di Nous Research in LXC con GPU passthrough e Ollama locale: i gotcha CUDA su Turing e perché qwen3:4b batte l'8b come cervello agentico.
Intelligenza ArtificialeHeadroom si installa con pip, si mette davanti al tuo LLM come proxy e comprime gli output rumorosi — log, JSON, chunk RAG — prima che arrivino al modello. Sul mio homelab, davanti a Ollama e LM Studio, ha tagliato in media il 51% dei token. Ma con un asterisco grosso: su un log

Iscriviti alla newsletter per ricevere i migliori articoli direttamente nella tua inbox.
Ollama e Open WebUI girano in locale, ma la config default manda dati fuori. Guida pratica: cosa bloccare, come isolare l'inferenza senza cloud nel 2026.
Il montaggio video AI di cui senti parlare ovunque — Runway, Luma Dream Machine, Pika — non monta niente: genera. Crea footage sintetico da un prompt, zero girato reale da tagliare. La versione opposta esiste: un'AI che decide i tagli su una ripresa vera senza mai toccare un pixel, e lascia il render a un motore deterministico. L'ho costruita in tre giorni: si chiama /monta.
/monta è un progetto personale che ho scritto con Claude Code tra il 22 e il 24 luglio 2026: tre giorni, sviluppo test-driven con subagent dedicati e review a ogni task, circa 130 test verdi a fine percorso. Non è un prodotto rilasciato né un servizio: è una skill personale che uso per montare video reali, pensata per girare sul mio homelab con una RTX 5080 a disposizione per l'inferenza GPU. In pratica è un editor video AI locale — gira sul tuo hardware, non manda footage a un servizio cloud, e produce file intermedi che puoi aprire e controllare uno per uno.
Il primo giorno ha prodotto lo spec, i moduli di analisi (M1) e il contratto di montaggio (M2). Il secondo ha aggiunto gli effetti da social (M3) — color grading, musica, zoom, sottotitoli — uniti al branch main nella stessa giornata. Poi è arrivato il vero test: non un file di esempio, ma un promo reale girato con una fotocamera vera.
Il montaggio video AI raccontato dalla stampa si divide in due categorie, e nessuna delle due risolve il problema di chi ha già girato qualcosa di vero. Da una parte i generativi text-to-video — Runway, Luma Dream Machine, Pika — che creano footage sintetico da un prompt: utili per produrre contenuto da zero, inutili se hai già dodici minuti di ripresa reale da tagliare. Dall'altra gli agent "pre-NLE" come Wideframe, che dichiarano esplicitamente di non toccare un pixel né decidere un taglio in autonomia. Automatizzano ricerca e organizzazione del materiale, poi lasciano la finitura a Premiere o DaVinci Resolve, perché — dicono loro stessi — i clienti preferiscono chiudere il montaggio lì.
Poi c'è una terza via, più vicina a un'officina che a un prodotto: un progetto come OpenMontage, che nasce per generare video da zero con una pipeline agentica a sette stadi — ricerca, proposta, script, scene plan, generazione asset, editing, composizione. Anche lì un coding assistant orchestra tool Python in sequenza e lascia il render a ffmpeg, e il sistema è dichiaratamente ibrido: accanto alla generazione ci sono pipeline che montano footage reale, proprio o recuperato da archivi aperti. La differenza con /monta sta altrove: OpenMontage non scrive un contratto di montaggio verificabile, /monta sì — un EDL in JSON con ogni taglio motivato, su dodici minuti di ripresa vera analizzata prima in modo deterministico.
La scelta tra questi tre approcci dipende da una domanda sola: hai già il girato o no? Se parti da zero e ti serve contenuto sintetico, i generativi restano la strada più veloce. Se hai footage reale e vuoi restare dentro un editor professionale, un agent pre-NLE come Wideframe accorcia solo la fase di organizzazione. Se invece vuoi un editing quasi automatico ma verificabile — con un contratto scritto tra quello che l'AI decide e quello che il render esegue — serve qualcosa come /monta.
L'architettura di /monta si regge su tre strati separati, e la separazione è la parte che conta: analisi deterministica, decisione dell'AI, render automatico via ffmpeg. Nessuno dei tre si fida ciecamente degli altri due — ognuno produce un artefatto verificabile (un dossier, un EDL, un video) prima di passare la mano al successivo. Non è una scatola nera che restituisce un video finito: è una pipeline ispezionabile a ogni passaggio.
Il primo strato è puro Python, senza alcuna AI in mezzo. Whisper large-v3 trascrive parola per parola con timestamp precisi; silero-vad rileva i silenzi con precisione al millisecondo; un modulo separato individua scene, frame chiave, facce, oggetti e movimento. Tutto finisce in un dossier strutturato — niente di creativo, solo dati misurati.
Qui entra in scena Claude Code: legge il dossier e scrive un edl.json, cioè un Edit Decision List in formato JSON. È un caso concreto di EDL intelligenza artificiale: l'Edit Decision List non è un'invenzione recente, ma uno standard di post-produzione vecchio di decenni, nato con il formato CMX3600 per ricostruire un montaggio a partire dai sorgenti originali. /monta lo reinterpreta in JSON, ma il principio resta lo stesso — un contratto scritto tra cosa va tagliato, dove, e perché. L'AI non tocca mai un fotogramma: decide, motiva, e si ferma lì.
Il terzo strato è il render automatico via ffmpeg, che legge l'EDL e produce il video senza margine di interpretazione: ogni taglio, ogni transizione, ogni sovrapposizione audio è già scritta nel contratto. Segue un self-eval automatico che confronta il risultato atteso con quello ottenuto.

Sul primo promo reale — dodici minuti di girato in 4K — la pipeline ha prodotto 14 clip motivate una per una, con un drift dei sottotitoli di 0,24 secondi e zero parole mozzate su 13 confini di taglio. Il render finale è arrivato in 96 secondi: un rapporto di compressione di circa 7,5 volte tra girato e output, ottenuto senza che l'AI aprisse mai un editor video.
(Se non ti interessano i dettagli tecnici, salta pure i prossimi due paragrafi.) Il primo strato — quello Python — gira su Windows con faster-whisper, l'implementazione di Whisper basata su CTranslate2 e dichiarata dal progetto stesso fino a 4 volte più veloce dell'originale a parità di accuratezza. Sulla carta è una scelta ovvia. Nella pratica, su Windows con GPU, CTranslate2 ignora add_dll_directory di Python: le DLL di cublas, cudnn e nvjitlink non vengono trovate anche se sono installate, e serve prependerle manualmente al PATH prima di importare la libreria.
Comunque, tornando al punto: con whisper large-v3 GPU su una RTX 5080 la trascrizione dei dodici minuti ha impiegato 69,6 secondi, contro i 95,5 secondi del modello small su CPU — ed è il modello con meno errori di trascrizione tra quelli disponibili.
Il giorno successivo è arrivata la fase degli effetti social (M3): color grading con LUT da S-Log3 a Rec.709 più un preset warm-cinematic, con una scoperta non ovvia — il preset da solo non converte il log, va applicato insieme alla LUT, non al posto suo. Poi musica con ducking automatico (margine misurato di 24,9 dB quando parte il parlato), tre effetti sonori, zoom motivati sui momenti giusti, un freeze comico su un fotogramma preciso.

Il bug più insidioso, però, non stava nel montaggio: stava nella concatenazione audio. Unire i pezzi AAC con -c copy sembra l'opzione più sicura — nessuna riconversione, nessuna perdita — ma accumula il priming e il padding dell'encoder a ogni giunzione. Il risultato è una voce che scivola progressivamente in ritardo, fino a circa 0,36 secondi misurati per cross-correlazione, proprio nel punto in cui il bed musicale doveva restare allineato al parlato. La correzione è stata un concat filter gapless al posto della copia diretta.
Un'altra lezione, meno tecnica e più editoriale: whisper large-v3 allucina sui tratti quasi muti, ripetendo parole a caso — nel mio caso un "Buongiorno" moltiplicato per dieci dove in realtà c'era solo un respiro. Il rimedio è stato incrociare ogni transcript con i silenzi rilevati da silero-vad, invece di fidarsi ciecamente del testo. Una battuta in dialetto, che whisper storpiava sistematicamente, è rimasta fuori dal montaggio finale: meglio un buco che una parola inventata nei sottotitoli.
Il piano di sviluppo di /monta non è uscito perfetto al primo giro, ed è proprio questo il punto: le review a ogni task hanno trovato sei bug reali nel codice di M1 e M2 — un KeyError sulle scene, un crash sui frame illeggibili, un problema di quantizzazione in silero-vad, tra gli altri — che un gate di qualità fisso avrebbe lasciato passare comunque, bocciando poi il primo render valido a valle.
C'è stata anche una deviazione pianificata che è saltata in corsa: la fonte musicale prevista dallo spec, freepd.com, era morta — 404 su tutto il catalogo. Sostituita con Pixabay per la musica e con gli effetti sonori CC0 di kenney.nl, senza fermare lo sviluppo per aspettare un fix che non sarebbe mai arrivato.
Alla fine della fase M3 la review ha segnalato due problemi "importanti", non bloccanti in senso stretto. La scelta è stata sistemarli prima del merge invece di accettarli con riserva — una cinquantina di minuti di lavoro in più, spesi per non portarsi dietro un debito tecnico che nessuno avrebbe più guardato.
Qui vale la pena essere onesti sui limiti, perché la stampa di settore li ha già mappati bene. Due fonti indipendenti — NoFilmSchool ed Entrepreneur.com — convergono sulla stessa distinzione: l'AI assorbe bene il livello meccanico del montaggio (trascrizione, rimozione silenzi, rough cut, sottotitoli) ma non quello di giudizio — il timing comico o drammatico, l'ironia, la voce di un brand. È una critica che riguarda l'AI che genera o decide in autonomia senza supervisione, ed è per questo che l'architettura di /monta resta fuori dal suo bersaglio: propone tagli motivati su girato reale dentro un contratto EDL verificabile, con una review umana a ogni fase di sviluppo — non decide da sola cosa arriva al pubblico senza che nessuno l'abbia controllato prima.
Per chi ha un homelab la lezione più riutilizzabile non è /monta in sé, ma la classe di problema attraversata per arrivarci. Fare inferenza AI locale su GPU consumer, su Windows, fuori da un container Linux controllato, è terreno fertile per esattamente il tipo di attrito DLL/CUDA incontrato con faster-whisper. Non è un caso isolato del mio setup, ed è meglio saperlo prima di perderci un pomeriggio.
Il vantaggio concreto, per chi produce contenuto — social, marketing, semplice produttività personale — è avere un editing quasi automatico che resta ispezionabile a ogni passaggio: il dossier di analisi, l'EDL scritto dall'AI, il render finale sono tre file separati che puoi aprire e controllare, non un'unica scatola nera. Per un promo social da girato reale, o per sottotitoli e rough cut su contenuti lunghi, è esattamente il tipo di lavoro meccanico che l'AI fa bene — lasciando a chi monta il giudizio finale su cosa deve restare e cosa no.
13 confini di taglio. Zero parole mozzate.
I dati su velocità e requisiti di faster-whisper vengono dalla documentazione ufficiale del progetto e dalla issue sui requisiti CUDA/cuDNN; gli errori DLL ricorrenti sono documentati nella issue #535, nella issue #1276, su Whisper-WebUI e sul forum sviluppatori NVIDIA; la storia dell'EDL e del formato CMX3600 è su Wikipedia; il posizionamento di Wideframe è dalla sua pagina YCombinator; la critica sui limiti dell'AI nel montaggio è di NoFilmSchool ed Entrepreneur.com.