STABLE CASCADE

StabilityAI ha appena rilasciato in anteprima sotto licenza non commerciale Stable Cascade un nuovo modello di text2image basato sull’architettura Würstchen.

Stable Cascade è eccezionalmente facile da addestrare e perfezionare su consumer ( con consumi inferiori di una decina di volte ) grazie al suo approccio a tre fasi.

Oltre a fornire checkpoint e script di inferenza, StabilityAI ha rilasciato gli script per ControlNet e l’addestramento LoRA per consentire agli utenti la sperimentazione  con questa nuova architettura;  il codice è disponibile sulla pagina GitHub di Stability. Il modello per l’inferenza è diponibile nella libreria diffusers.

L’innovativo modello di text2image  introduce un interessante approccio a tre fasi, stabilendo nuovi standard per qualità, flessibilità, perfezionamento ed efficienza, con particolare attenzione ai limiti dell’hardware.

Dettagli Tecnici

Stable Cascade si differenzia da Stable Diffusion nella pipeline di allenamento composta da tre modelli distinti che chiameremo A, B e C.

Questa architettura consente una compressione gerarchica delle immagini utilizzando uno spazio latente altamente compresso.

Il  generatore di Spazio Latente C trasforma gli input dell’utente in latenti compatti da 24×24 ( al posto dei 64×64 della diffusione stabile ) che vengono passati ai Decoders  (Stadi A e B), utilizzati per comprimere le immagini in modo simile agli  Auto Encoder Variazionali ( VAE in Stable Diffusion ), ma con una compressione molto più elevata.

Separando la generazione condizionata dal testo (Stadio C) dalla decodifica allo spazio pixel ad alta risoluzione (Stadi A e B), è possibile continuare ad includere  fasi di addestramento aggiuntive come ControlNets e LoRAs.

Questa ulteriore compressione comporta una riduzione massima del carico di lavoro inferiore di circa 16 volte  rispetto all’addestramento di un modello Stable Diffusion di dimensioni simili.

Gli Stadi A e B possono essere opzionalmente perfezionati per un controllo aggiuntivo..

Gli Stadi C e B saranno rilasciati con due modelli differenti: 1 miliardo (1B) e  3.6 miliardi (3.6B) di parametri per lo Stadio C e 700 milioni (700M)  / 1.5 miliardi (1.5B) parametri per lo Stadio B.

StabilityAI  consiglia di utilizzare il modello 3.6B  per lo Stadio C in quanto questo modello produce le uscite di qualità più elevata.

La versione a 1B  può essere utilizzata per coloro che operano con schede video di minor potenza.

Per lo Stadio B, entrambi i modelli ottengono ottimi risultati sebbene il modello 1.5B eccelle nel ricostruire dettagli fini.

Grazie all’approccio modulare di Stable Cascade, la quantità di VRAM per l’inferenza si attesta a circa 20 GB ma possono essere ulteriormente ridotti utilizzando le varianti più piccole (come già accennato), maciò potrebbe anche ridurre la qualità finale dell’output.

Confronto

Durante le valutazioni effettauate da StabilityAi, si è scoperto che Stable Cascade si comporta meglio sia nell’allineamento della richiesta ( aderenza al prompt) che nella qualità estetica in quasi tutti i confronti tra modelli. Le figure mostrano i risultati di una valutazione umana utilizzando una combinazione di richieste di parti e richieste estetiche.

L’immagine sopra confronta Stable Cascade (30 passaggi di inferenza) con Playground v2 (50 passaggi di inferenza), SDXL (50 passaggi di inferenza), SDXL Turbo (1 passaggio di inferenza) e Würstchen v2 (30 passaggi di inferenza).

L’immagine sopra mostra le differenze nella velocità di inferenza tra Stable Cascade, SDXL, Playground v2 e SDXL Turbo.

Il focus di Stable Cascade sull’efficienza è evidenziato dalla sua architettura e dallo spazio latente altamente compresso. Nonostante il modello più grande contenga 1,4 miliardi di parametri in più rispetto a Stable Diffusion XL, presenta comunque tempi di inferenza più veloci.

Funzionalità Aggiuntive

Oltre alla generazione standard di testo a immagine, Stable Cascade può creare variazioni di immagini come image2image.

Le variazioni di immagini funzionano estraendo incorporamenti di immagini da un’immagine data utilizzando CLIP e restituendolo al modello.

Qui sotto è possibile vedere alcuni esempi di output di un text2image. L’immagine a sinistra mostra l’originale, mentre le quattro a destra sono le variazioni generate.

Le generazioni image2image funzionano semplicemente aggiungendo rumore ad un’immagine di partenza utilizzandolo  come punto di partenza per la nuova generazione. Ecco un esempio di aggiunta di rumore all’immagine di sinistra e le variazioni.

Codice per Addestramento, Perfezionamento (Fine Tuning), ControlNet e LoRA

Con il rilascio di Stable Cascade, è in fase di rilascio  tutto il codice per addestramento, perfezionamento, ControlNet e LoRA in modo tale da abbassare i requisiti hardware. Ecco alcuni modelli  ControlNets di prossimo rilascio:

Inpainting / Outpainting: inserimento di un’immagine abbinata ad una maschera e un propmt testuale. Il modello riempirà la parte mascherata dell’immagine in comformità con il prompt  fornito.

Canny Edge: Genera una nuova immagine seguendo i bordi di un’immagine esistente immessa nel modello.

2x Super Resolution: Effettua l’upscaling di un’immagine fino a raddoppiarne il lato (ad esempio, trasformando un’immagine 1024 x 1024 in 2048×2048) può essere utilizzato anche su latenti generati dallo Stage C.

Courtesy StabilityAI – Copyright Stability AI