Modele și platforme AI
StreamDiffusion: O soluție la nivel de pipeline pentru generare interactivă în timp real

Din cauza potențialului său vast și a oportunităților de comercializare, în special în domeniul jocurilor, transmisiunilor și streaming-ului de video, Metaverse este în prezent una dintre tehnologiile care cresc cel mai rapid. Aplicațiile Metaverse moderne utilizează framework-uri AI, inclusiv viziunea computerizată și modele de difuzie, pentru a-și îmbunătăți realismul. O provocare semnificativă pentru aplicațiile Metaverse este integrarea diverselor pipeline-uri de difuzie care oferă latență scăzută și debit ridicat, asigurând interacțiunea eficientă între oameni și aceste aplicații.
Framework-urile actuale bazate pe difuzie excelează în crearea de imagini din promturi textuale sau de imagine, dar nu reușesc în interacțiunile în timp real. Această limitare este evidentă în special în sarcinile care necesită intrări continue și debit ridicat, cum ar fi grafica jocurilor video, aplicațiile Metaverse, transmisiunile și streaming-ul de video live.
În acest articol, vom discuta despre StreamDiffusion, un pipeline de difuzie în timp real dezvoltat pentru a genera imagini interactive și realiste, abordând limitările actuale ale framework-urilor bazate pe difuzie în sarcinile care implică intrări continue. StreamDiffusion este o abordare inovatoare care transformă zgomotirea secvențială a imaginii originale în zgomotire în batch, urmărind să permită un debit ridicat și fluxuri fluide. Această abordare se îndepărtează de metoda tradițională de așteptare și interacțiune utilizată de framework-urile existente bazate pe difuzie. În secțiunile următoare, vom explora în detaliu framework-ul StreamDiffusion, arhitectura și rezultatele comparative împotriva framework-urilor actuale de ultimă generație. Să începem.
StreamDiffusion: O introducere în generarea interactivă în timp real
Aplicațiile Metaverse sunt aplicații intensive din punct de vedere al performanței, deoarece procesează o cantitate mare de date, inclusiv texte, animații, videouri și imagini, în timp real, pentru a oferi utilizatorilor interfețe și experiențe interactive. Aplicațiile Metaverse moderne se bazează pe framework-uri bazate pe inteligență artificială, inclusiv viziunea computerizată, procesarea imaginilor și modelele de difuzie, pentru a atinge latență scăzută și debit ridicat, asigurând o experiență de utilizator fără întreruperi. În prezent, majoritatea aplicațiilor Metaverse se bazează pe reducerea numărului de iterații de zgomotire pentru a asigura un debit ridicat și pentru a îmbunătăți capacitățile interactive ale aplicației în timp real. Aceste framework-uri optează pentru o strategie comună care implică fie redefinirea procesului de difuzie cu ecuații diferențiale obișnuite (ODE), fie reducerea modelelor de difuzie multi-pași la câteva pași sau chiar la un singur pas. Deși abordarea oferă rezultate satisfăcătoare, are anumite limitări, inclusiv flexibilitate limitată și costuri computaționale ridicate.
Pe de altă parte, StreamDiffusion este o soluție la nivel de pipeline care pornește dintr-o direcție ortogonală și îmbunătățește capacitățile framework-ului de a genera imagini interactive în timp real, asigurând în același timp un debit ridicat. StreamDiffusion utilizează o strategie simplă, în care, în loc de a zgomoti imaginea de intrare, framework-ul zgomotește pașii de zgomotire. Strategia se inspiră din procesarea asincronă, deoarece framework-ul nu trebuie să aștepte finalizarea primului stadiu de zgomotire înainte de a trece la al doilea stadiu, așa cum se arată în imaginea următoare. Pentru a aborda problema frecvenței de procesare a U-Net și a frecvenței de intrare, framework-ul StreamDiffusion implementează o strategie de coadă pentru a stoca intrările și ieșirile.

Deși pipeline-ul StreamDiffusion se inspiră din procesarea asincronă, este unic în felul său, deoarece implementează paralelismul GPU, care permite framework-ului să utilizeze o singură componentă U-Net pentru a zgomoti o caracteristică latentă zgomotită în batch. În plus, pipeline-urile actuale bazate pe difuzie pun accentul pe prompturile date în imaginile generate prin încorporarea ghidării gratuite de clasificator, ca urmare a cărui fapt pipeline-urile actuale sunt încărcate cu suprasarcină computațională redundantă și excesivă. Pentru a preveni ca pipeline-ul StreamDiffusion să nu întâmpine aceleași probleme, acesta implementează o abordare inovatoare RCFG (Residual Classifier-Free Guidance), care utilizează un zgomot rezidual virtual pentru a aproxima condițiile negative, permițând astfel framework-ului să calculeze condițiile de zgomot negative în stadiile inițiale ale procesului. În plus, pipeline-ul StreamDiffusion reduce, de asemenea, cerințele computaționale ale unui pipeline de difuzie tradițional prin implementarea unei strategii de filtrare a similarității stohastice care determină dacă pipeline-ul ar trebui să proceseze imaginile de intrare prin calcularea similarităților dintre intrările continue.
Framework-ul StreamDiffusion se bazează pe învățămintele modelelor de difuzie și accelerarea difuziei.

Modelele de difuzie sunt cunoscute pentru capacitățile lor excepționale de generare de imagini și pentru cantitatea de control pe care o oferă. Datorită capacităților lor, modelele de difuzie și-au găsit aplicații în editarea imaginilor, generarea de imagini din text și generarea de videouri. În plus, dezvoltarea de modele consistente a demonstrat potențialul de a îmbunătăți eficiența procesării mostrelor fără a compromite calitatea imaginilor generate de model, ceea ce a deschis noi oportunități pentru a extinde aplicabilitatea și eficiența modelelor de difuzie prin reducerea numărului de pași de mostre. Deși sunt extrem de capabile, modelele de difuzie au o limitare majoră: generarea lentă de imagini. Pentru a aborda această limitare, dezvoltatorii au introdus modele de difuzie accelerate, care nu necesită pași suplimentari de antrenament sau implementează strategii de corectare a predictorilor și soluții de dimensiune adaptivă pentru a crește viteza de ieșire.
Factorul distinctiv dintre StreamDiffusion și framework-urile tradiționale bazate pe difuzie este că, în timp ce acestea din urmă se concentrează în primul rând pe latența scăzută a modelelor individuale, StreamDiffusion introduce o abordare la nivel de pipeline destinată să atingă debite ridicate, permițând o difuzie interactivă eficientă.
StreamDiffusion: Funcționare și arhitectură
Pipeline-ul StreamDiffusion este un pipeline de difuzie în timp real dezvoltat pentru a genera imagini interactive și realiste și utilizează 6 componente cheie, și anume: RCFG (Residual Classifier Free Guidance), strategia de batch Stream, filtrul de similaritate stohastică, o coadă de intrare-ieșire, unelte de accelerare a modelului cu autoencoder și o procedură de precalcul. Să discutăm despre aceste componente în detaliu.
Strategia de batch Stream
În mod tradițional, pașii de zgomotire dintr-un model de difuzie sunt efectuate secvențial, ceea ce duce la o creștere semnificativă a timpului de procesare U-Net în funcție de numărul de pași de procesare. Cu toate acestea, este esențial să se crească numărul de pași de procesare pentru a genera imagini de înaltă fidelitate, iar framework-ul StreamDiffusion introduce strategia de batch Stream pentru a depăși rezoluția cu latență ridicată în cadrul difuziei interactive.
În strategia de batch Stream, operațiunile de zgomotire secvențiale sunt restructurate în procese în batch, fiecare batch corespunzând unui număr predeterminat de pași de zgomotire, iar numărul acestor pași de zgomotire este determinat de dimensiunea fiecărui batch. Datorită abordării, fiecare element din batch poate continua cu un pas înainte utilizând o singură trecere U-Net în secvența de zgomotire. Prin implementarea strategiei de batch Stream în mod iterativ, imaginile de intrare codificate la timpul “t” pot fi transformate în rezultatele lor corespunzătoare de imagine-la-imagine la timpul “t+n”, astfel simplificând procesul de zgomotire.
Residual Classifier Free Guidance
CFG (Classifier Free Guidance) este un algoritm AI care efectuează o serie de calcule vectoriale între termenul de condiționare original și un termen de condiționare negativ sau necondiționat pentru a îmbunătăți efectul condiționării originale. Algoritmul întărește efectul promptului, chiar dacă pentru a calcula zgomotul rezidual negativ, este necesar să se asocieze variabilele latente individuale de intrare cu încorporarea condiționării negative, urmată de trecerea încorporărilor prin U-Net la timpul de referință.
Pentru a aborda problema ridicată de algoritmul Classifier Free Guidance, framework-ul StreamDiffusion introduce algoritmul Residual Classifier Free Guidance, cu scopul de a reduce costurile computaționale pentru interferența suplimentară U-Net pentru încorporarea condiționării negative. Mai întâi, intrarea latentă codificată este transferată la distribuția de zgomot utilizând valorile determinate de programatorul de zgomot. Odată ce modelul de consistență latentă a fost implementat, algoritmul poate prezice distribuția de date și utiliza zgomotul rezidual CFG pentru a genera următoarea distribuție de zgomot.

Coadă de intrare-ieșire
Problema majoră cu framework-urile de generare de imagini de înaltă viteză este reprezentată de modulele de rețea neuronală, inclusiv componentele U-Net și VAE. Pentru a maximiza eficiența și viteza de ieșire generală, framework-urile de generare de imagini mută procese precum prelucrarea și postprocesarea imaginilor, care nu necesită manipulare suplimentară de către modulele de rețea neuronală, în afara pipeline-ului, după care sunt procesate în paralel. În plus, în ceea ce privește manipularea imaginii de intrare, operațiuni specifice, inclusiv conversia formatului tensor, redimensionarea imaginilor de intrare și normalizarea, sunt executate de pipeline în mod metodic.
Pentru a aborda disparitatea în frecvențele de procesare între debitul modelului și intrarea umană, pipeline-ul integrează un sistem de coadă de intrare-ieșire care permite o paralelizare eficientă, așa cum se arată în imaginea următoare.

Tenzorii de intrare procesați sunt coadați metodic pentru modelele de difuzie, iar la fiecare cadru, modelul extrage tensorul cel mai recent din coada de intrare și îl transmite encoder-ului VAE, inițiind astfel procesul de generare de imagini. În același timp, tensorul de ieșire din decoder-ul VAE este transmis în coada de ieșire. În final, datele imaginii procesate sunt transmise clientului de renderizare.
Filtrul de similaritate stohastică
În scenariile în care imaginile rămân neschimbate sau prezintă modificări minime, fără un mediu static sau fără interacțiune activă a utilizatorului, imaginile de intrare care se aseamănă sunt alimentate în mod repetat în componentele U-Net și VAE. Alimentarea repetată duce la generarea de imagini aproape identice și la consumul suplimentar de resurse GPU. În plus, în scenariile care implică intrări continue, imaginile de intrare nemodificate pot apărea ocazional. Pentru a depăși această problemă și a preveni utilizarea inutilă a resurselor, pipeline-ul StreamDiffusion utilizează un filtru de similaritate stohastică în pipeline-ul său. Filtrul de similaritate stohastică calculează mai întâi similaritatea cosinusoidală între imaginea de referință și imaginea de intrare și utilizează scorul de similaritate pentru a calcula probabilitatea de a sări peste procesele U-Net și VAE ulterioare.
Pe baza scorului de probabilitate, pipeline-ul decide dacă procesele ulterioare, cum ar fi codarea VAE, decodarea VAE și U-Net, ar trebui să fie sărite sau nu. Dacă aceste procese nu sunt sărite, pipeline-ul salvează imaginea de intrare la momentul respectiv și actualizează imaginea de referință care urmează a fi utilizată în viitor. Mecanismul de sărire bazat pe probabilitate permite pipeline-ului StreamDiffusion să funcționeze pe deplin în scenarii dinamice cu similaritate inter-cadru scăzută, iar în scenarii statice, pipeline-ul funcționează cu similaritate inter-cadru mai ridicată. Abordarea ajută la conservarea resurselor computaționale și asigură, de asemenea, o utilizare optimă a GPU-ului, în funcție de similaritatea imaginilor de intrare.
Precalcul
Arhitectura U-Net necesită atât încorporări de condiționare, cât și variabile latente de intrare. În mod tradițional, încorporările de condiționare sunt derivate din încorporări de prompt care rămân constante pe cadre. Pentru a optimiza derivarea din încorporările de prompt, pipeline-ul StreamDiffusion precalculează aceste încorporări de prompt și le stochează într-o cache, care sunt apoi chemate în modul de streaming sau interactiv. În cadrul framework-ului U-Net, perechea cheie-valoare este calculată pe baza încorporării de prompt precalculate pentru fiecare cadru, iar cu modificări minore în U-Net, aceste perechi cheie-valoare pot fi reutilizate.
Accelerarea modelului și AutoEncoder-ul mic
Pipeline-ul StreamDiffusion utilizează TensorRT, un kit de instrumente de optimizare de la Nvidia (NVDA ) pentru interfețele de învățare profundă, pentru a construi motoarele VAE și U-Net, pentru a accelera viteza de inferență. Pentru a realiza acest lucru, componenta TensorRT efectuează numeroase optimizări asupra rețelelor neuronale, care sunt proiectate pentru a îmbunătăți eficiența și a crește debitul pentru framework-urile și aplicațiile de învățare profundă.
Pentru a optimiza viteza, pipeline-ul StreamDiffusion configurează framework-ul pentru a utiliza dimensiuni de intrare fixe și dimensiuni de batch statice, pentru a asigura o alocare optimă a memoriei și a graficelor computaționale pentru o anumită dimensiune de intrare, în încercarea de a obține timpi de procesare mai rapizi.

Figura de mai sus oferă o imagine de ansamblu a pipeline-ului de inferență. Pipeline-ul de difuzie de bază găzduiește componentele U-Net și VAE. Pipeline-ul incorporează un batch de zgomotire, o cache de zgomot mostrelor, o cache de încorporări de prompt precalculate și o cache de valori programator, pentru a îmbunătăți viteza și capacitatea pipeline-ului de a genera imagini în timp real. Filtrul de similaritate stohastică (SSF) este implementat pentru a optimiza utilizarea GPU-ului și pentru a controla dinamic trecerea modelului de difuzie.
StreamDiffusion: Experimente și rezultate
Pentru a evalua capacitățile sale, pipeline-ul StreamDiffusion a fost implementat pe framework-urile LCM și SD-turbo. TensorRT de la Nvidia a fost utilizat ca accelerator de model, iar pentru a permite eficiență ușoară, pipeline-ul a utilizat componenta TAESD. Să aruncăm o privire la modul în care pipeline-ul StreamDiffusion se desfășoară în comparație cu framework-urile actuale de ultimă generație.
Evaluare cantitativă
Figura următoare demonstrează comparația de eficiență între U-Net-ul secvențial original și componentele de zgomotire în batch din pipeline, și, așa cum se poate vedea, implementarea abordării de zgomotire în batch ajută la reducerea timpului de procesare în mod semnificativ, cu aproximativ 50%, în comparație cu buclele U-Net tradiționale la pașii de zgomotire secvențiali.

În plus, timpul mediu de inferență la diferiți pași de zgomotire a experimentat, de asemenea, o creștere semnificativă, cu diferiți factori de accelerare, în comparație cu pipeline-urile actuale de ultimă generație, iar rezultatele sunt prezentate în imaginea următoare.

Pipeline-ul StreamDiffusion cu componenta RCFG demonstrează un timp de inferență mai scăzut în comparație cu pipeline-urile care includ componenta CFG tradițională.

În plus, impactul utilizării componentei RCFG este evident în imaginile următoare, în comparație cu utilizarea componentei CFG.

Așa cum se poate vedea, utilizarea CFG intensifică impactul promptului textual asupra imaginii generate, iar imaginea se aseamănă mult mai mult cu promptul de intrare în comparație cu imaginile generate de pipeline-ul fără componenta CFG. Rezultatele se îmbunătățesc și mai mult cu utilizarea componentei RCFG, deoarece influența promptului asupra imaginilor generate este mult mai semnificativă în comparație cu componenta CFG originală.
Gânduri finale
În acest articol, am discutat despre StreamDiffusion, un pipeline de difuzie în timp real dezvoltat pentru a genera imagini interactive și realiste, abordând limitările actuale ale framework-urilor bazate pe difuzie în sarcinile care implică intrări continue. StreamDiffusion este o abordare simplă și inovatoare care urmărește să transforme zgomotirea secvențială a imaginii originale în zgomotire în batch. StreamDiffusion urmărește să permită un debit ridicat și fluxuri fluide, eliminând abordarea tradițională de așteptare și interacțiune adoptată de framework-urile actuale bazate pe difuzie. Câștigurile potențiale de eficiență subliniază potențialul pipeline-ului StreamDiffusion pentru aplicații comerciale care oferă calcul de înaltă performanță și soluții atractive pentru inteligența artificială generativă.












