Passa al contenuto principale

Cos'è Stable Diffusion?

Stable Diffusion è un modello di intelligenza artificiale generativa (AI generativa) che produce immagini fotorealistiche uniche da messaggi di testo e immagini. È stato lanciato originariamente nel 2022. Oltre alle immagini, puoi utilizzare il modello anche per creare video e animazioni. Il modello si basa sulla tecnologia di diffusione e utilizza lo spazio latente. Ciò riduce notevolmente i requisiti di elaborazione ed è possibile eseguire il modello su desktop o laptop dotati di GPU. Stable Diffusion può essere ottimizzato per soddisfare esigenze specifiche con un minimo di cinque immagini tramite apprendimento induttivo.

Stable Diffusion è disponibile per tutti con una licenza permissiva. Ciò differenzia Stable Diffusion dai suoi predecessori.

Scopri di più sull'IA generativa»

Perché è importante Stable Diffusion?

Stable Diffusion è importante perché è accessibile e facile da usare. Può funzionare su schede grafiche di livello consumer. Per la prima volta, chiunque può scaricare il modello e generare le proprie immagini. Puoi anche controllare gli iperparametri chiave, come il numero di fasi di riduzione del rumore e il grado di rumore applicato. 

Stable Diffusion è intuitivo e non sono necessarie informazioni aggiuntive per creare immagini. Ha una comunità attiva, quindi è dotato di un'ampia documentazione e tutorial pratici. La versione del software è sotto licenza Creative ML OpenRAIL-M, che consente di utilizzare, modificare e ridistribuire il software modificato. Se rilasciate software derivato, dovete rilasciarlo con la stessa licenza e includere una copia della licenza originale Stable Diffusion.

Come funziona Stable Diffusion?

Come modello di diffusione, Stable Diffusion si differenzia da molti altri modelli di generazione di immagini. In linea di principio, i modelli di diffusione utilizzano il rumore gaussiano per codificare un'immagine. Quindi, utilizzano un predittore di rumore insieme a un processo di diffusione inversa per ricreare l'immagine.

Oltre ad avere le differenze tecniche di un modello di diffusione, Stable Diffusion è unico in quanto non utilizza lo spazio dei pixel dell'immagine. Utilizza invece uno spazio latente a definizione ridotta.  

La ragione di ciò è che un'immagine a colori con risoluzione 512x512 ha 786.432 valori possibili. In confronto, Stable Diffusion utilizza un'immagine compressa 48 volte più piccola con 16.384 valori. Ciò riduce notevolmente i requisiti di elaborazione. Ed è per questo che puoi usare Stable Diffusion su un desktop con una GPU NVIDIA con 8 GB di RAM. Lo spazio latente più piccolo funziona perché le immagini naturali non sono casuali. Stable Diffusion utilizza file VAE (l'autoencoder variazionale) nel decoder per disegnare dettagli fini come gli occhi. 

Stable Diffusion V1 è stato addestrato utilizzando tre set di dati raccolti da LAION tramite il Common Crawl. Ciò include il set di dati LAION-Aesthetics v2.6 di immagini con un punteggio estetico pari o superiore a 6.

Quale architettura utilizza Stable Diffusion?

I principali componenti architettonici di Stable Diffusion includono un autoencoder variazionale, la diffusione diretta e inversa, un predittore di rumore e il condizionamento del testo.

Autoencoder variazionale

L'autoencoder variazionale è costituito da un encoder e un decoder separati. L'encoder comprime l'immagine da 512x512 pixel in un modello più piccolo di 64x64 in uno spazio latente più facile da manipolare. Il decoder ripristina il modello dallo spazio latente in un'immagine a grandezza naturale di 512x512 pixel.

Diffusione diretta

La diffusione diretta aggiunge progressivamente rumore gaussiano a un'immagine fino a quando non rimane che rumore casuale. Non è possibile identificare quale fosse l'immagine dall'immagine rumorosa finale. Durante l'addestramento, tutte le immagini vengono sottoposte a questo processo. La diffusione diretta non viene ulteriormente utilizzata tranne quando si esegue una conversione da immagine a immagine.

Diffusione inversa

Questo processo è essenzialmente un processo parametrizzato che annulla iterativamente la diffusione diretta. Ad esempio, puoi addestrare il modello con solo due immagini, come un gatto e un cane. Se lo facessi, il processo inverso si sposterebbe verso un gatto o un cane e niente in mezzo. In pratica, l'addestramento dei modelli coinvolge miliardi di immagini e utilizza le istruzioni per creare immagini uniche.

Predittore di rumore (U-Net)

Un predittore di rumore è fondamentale per ridurre il rumore delle immagini. Stable Diffusion utilizza un modello U-Net per eseguire questa operazione. I modelli U-Net sono reti neurali convoluzionali originariamente sviluppate per la segmentazione delle immagini in biomedicina. In particolare, Stable Diffusion utilizza il modello di rete neurale residua (ResNet) sviluppato per la visione artificiale.

Il predittore di rumore stima la quantità di rumore nello spazio latente e la sottrae dall'immagine. Ripete questo processo un determinato numero di volte, riducendo il rumore in base ai passaggi specificati dall'utente. Il predittore di rumore è sensibile ai comandi di condizionamento che aiutano a determinare l'immagine finale.

Condizionamento del testo

La forma più comune di condizionamento sono le istruzioni di testo. Un tokenizzatore CLIP analizza ogni parola in un prompt testuale e incorpora questi dati in un vettore di 768 valori. È possibile utilizzare fino a 75 token in un prompt. Stable Diffusion invia queste istruzioni dall'encoder di testo al predittore di rumore U-Net utilizzando un trasformatore di testo. Impostando tutto su un generatore di numeri casuali, puoi generare immagini diverse nello spazio latente.

Cosa può fare Stable Diffusion?

La Stable Diffusion rappresenta un notevole miglioramento nella generazione di modelli da testo a immagine. È ampiamente disponibile e richiede una potenza di elaborazione notevolmente inferiore rispetto a molti altri modelli da testo a immagine. Le sue funzionalità includono testo a immagine, immagine a immagine, grafica, modifica delle immagini e creazione di video.

Generazione da testo a immagine

Questo è il modo più comune in cui le persone usano Stable Diffusion. Stable Diffusion genera un'immagine utilizzando un prompt testuale. È possibile creare immagini diverse regolando il numero di seme per il generatore casuale o modificando il programma di riduzione del rumore per diversi effetti.

Generazione da immagine a immagine

Utilizzando un'immagine di input e un prompt di testo, è possibile creare immagini basate su un'immagine di input. Un caso tipico sarebbe quello di utilizzare uno schizzo e un prompt adatto.

Creazione di grafica, artwork e loghi

Utilizzando una selezione di istruzioni, è possibile creare artwork, grafica e loghi in un'ampia varietà di stili. Naturalmente, non è possibile predeterminare l'output, sebbene sia possibile guidare la creazione del logo utilizzando uno schizzo.

Modifica e ritocco delle immagini

Puoi usare Stable Diffusion per modificare e ritoccare le foto. Utilizzando AI Editor, carica un'immagine e usa lo strumento per cancellare per mascherare l'area che desideri modificare. Quindi, generando un prompt che definisce ciò che desideri ottenere, modifica o ridipingi l'immagine. Ad esempio, è possibile ripristinare vecchie foto, rimuovere oggetti dalle immagini, modificare le caratteristiche del soggetto e aggiungere nuovi elementi all'immagine.

Creazione di video

Utilizzando funzionalità come Deforum di GitHub, è possibile creare brevi videoclip e animazioni con Stable Diffusion. Un'altra applicazione consiste nell'aggiungere stili diversi a un filmato.  È anche possibile animare le foto creando un'impressione di movimento, come con l'acqua che scorre. 

In che modo AWS può aiutare con Stable Diffusion?

Amazon Bedrock è il modo più semplice per creare e scalare applicazioni AI generative con modelli di base. Amazon Bedrock è un servizio completamente gestito che mette a disposizione i principali modelli di fondazione, tra cui Stable Diffusion, attraverso un'API, permettendoti di trovare il modello più adatto al tuo caso d'uso. Con Bedrock puoi accelerare lo sviluppo e l'implementazione di applicazioni di IA generativa scalabili, affidabili e sicure senza gestire l'infrastruttura.

Amazon SageMaker JumpStart, un hub di machine learning che offre modelli, algoritmi e soluzioni, fornisce l'accesso a centinaia di modelli di base, inclusi modelli di base ad alte prestazioni disponibili al pubblico come Stable Diffusion. Continuano ad essere aggiunti nuovi modelli di base, tra cui Stable Diffusion XL 1.0, l'ultima versione del modello di generazione di immagini.