Corso
In collaborazione con diversi ricercatori accademici e organizzazioni non profit, Stability AI, una startup fondata nel 2019, ha sviluppato il modello Stable Diffusion, rilasciato per la prima volta nel 2022.
Stable Diffusion è un modello di deep learning open source progettato per generare immagini dettagliate e di alta qualità a partire da descrizioni testuali. Può anche modificare immagini esistenti o migliorare immagini a bassa risoluzione usando input testuali. Il modello ha continuato a evolversi e i progressi più recenti ne hanno migliorato prestazioni e capacità.
In questo articolo vedremo come funziona Stable Diffusion e passeremo in rassegna vari metodi per eseguirlo.
Che cos'è Stable Diffusion?
Stable Diffusion è un avanzato modello di deep learning open source sviluppato da Stability AI. Rilasciato nel 2022, eccelle nel generare immagini dettagliate e di alta qualità a partire da descrizioni testuali. Questo modello versatile può anche modificare immagini esistenti o migliorare immagini a bassa risoluzione usando input testuali.
Addestrato inizialmente su un vasto dataset di 2,3 miliardi di immagini, Stable Diffusion sfrutta i principi della modellazione generativa e dei processi di diffusione. Ciò gli consente di creare nuove immagini realistiche imparando pattern e strutture dai dati di training. Le sue capacità sono paragonabili ad altri modelli all'avanguardia, rendendolo uno strumento potente per un'ampia gamma di applicazioni nella generazione e nella manipolazione di immagini.
Nel febbraio 2024, Stability AI ha annunciato Stable Diffusion 3 in un'anteprima iniziale, mostrando prestazioni notevolmente migliorate, soprattutto nella gestione di prompt con più soggetti, nella qualità delle immagini e nell'ortografia. La suite Stable Diffusion 3 va da 800 milioni a 8 miliardi di parametri, puntando su scalabilità e qualità per soddisfare diverse esigenze creative. A giugno 2024, il rilascio di Stable Diffusion 3 Medium, un modello da 2 miliardi di parametri, ha segnato un progresso significativo, offrendo dettaglio, colore e fotorealismo eccezionali pur funzionando in modo efficiente su GPU consumer standard.
Stable Diffusion 3 incorpora una nuova architettura multimodale chiamata Diffusion Transformer (MMDiT), che utilizza set di pesi separati per le rappresentazioni di immagini e linguaggio. Questa innovazione migliora la comprensione del testo e le capacità di spelling rispetto alle versioni precedenti del modello. Sulla base di valutazioni delle preferenze umane, Stable Diffusion 3 supera altri sistemi leader di generazione testo-immagine come DALL·E 3, Midjourney v6 e Ideogram v1 in tipografia e aderenza ai prompt.
Stability AI ha pubblicato un articolo di ricerca completo che dettaglia la tecnologia alla base di Stable Diffusion 3, evidenziandone i progressi e le prestazioni superiori. Questi miglioramenti rendono Stable Diffusion 3 uno strumento potente per generare immagini di alta qualità a partire da descrizioni testuali, con notevoli progressi nella gestione di prompt complessi e nella produzione di output realistici.
Come funziona Stable Diffusion?
Stable Diffusion è un sofisticato esempio di una classe di modelli di deep learning nota come modelli di diffusione. Più specificamente, rientra nella categoria dei modelli generativi. Questi modelli sono progettati per generare nuovi dati simili a quelli su cui sono stati addestrati, consentendo di creare output nuovi e realistici basati su pattern e strutture apprese.
I modelli di diffusione si ispirano al concetto di diffusione in fisica, in cui le particelle si spostano nel tempo da aree ad alta concentrazione verso aree a bassa concentrazione. Nel contesto del deep learning, i modelli di diffusione simulano questo processo in uno spazio dati ad alta dimensionalità. Il modello parte da rumore casuale e lo affina iterativamente attraverso una serie di passaggi per generare immagini coerenti e di alta qualità.
La modellazione generativa, un tipo di apprendimento non supervisionato, prevede l'addestramento di modelli per scoprire e apprendere automaticamente i pattern nei dati di input. Una volta addestrati, questi modelli possono generare nuovi esempi che somigliano ai dati originali. Questa capacità rende i modelli generativi particolarmente utili per attività come la sintesi di immagini, l'aumento dei dati e altro ancora.
Se vuoi saperne di più su questi modelli, valuta il nostro percorso di corsi Deep Learning in Python.
Il processo di diffusione
Il processo di diffusione in Stable Diffusion prevede due fasi principali: il processo di diffusione in avanti e il processo inverso di denoising.
1. Processo di diffusione in avanti:
In questa fase si aggiunge gradualmente rumore ai dati di training (immagini) per diversi passaggi fino a quando le immagini diventano puro rumore. Questo processo è progettato matematicamente per essere reversibile.
2. Processo inverso di denoising:
Durante questa fase, il modello impara a invertire il processo di aggiunta del rumore. Partendo da rumore casuale, il modello denoisa iterativamente l'immagine attraverso molteplici passaggi, ricostruendo gradualmente un'immagine coerente e di alta qualità. Questo processo inverso è guidato dai pattern e dalle strutture appresi dai dati di training.
Architettura Multimodal Diffusion Transformer (MMDiT)
Stable Diffusion 3 introduce una nuova architettura nota come Multimodal Diffusion Transformer (MMDiT). Questa architettura impiega set di pesi separati per le rappresentazioni di immagini e linguaggio, migliorando la capacità del modello di comprendere e generare a partire da prompt testuali. Usando percorsi distinti per elaborare immagini e informazioni testuali, MMDiT migliora coerenza e accuratezza delle immagini generate, in particolare nella gestione di prompt complessi e della tipografia.
Applicazioni pratiche di Stable Diffusion
Stable Diffusion può essere usato per diverse applicazioni pratiche, tra cui:
- Generazione di immagini: creare nuove immagini da descrizioni testuali.
- Modifica di immagini: modificare immagini esistenti in base a prompt testuali.
- Miglioramento di immagini: migliorare la qualità di immagini a bassa risoluzione.
Queste capacità rendono Stable Diffusion uno strumento potente per artisti, designer, ricercatori e chiunque sia interessato a esplorare il potenziale della IA generativa.
Come eseguire Stable Diffusion online
Se vuoi iniziare subito a usare il modello Stable Diffusion, puoi eseguirlo online con i seguenti strumenti.
1. DreamStudio
Stability AI, i creatori di Stable Diffusion, hanno reso estremamente semplice per chi è curioso testare il loro modello testo-immagine grazie allo strumento online DreamStudio.
DreamStudio offre accesso alla versione più recente dei modelli Stable Diffusion e consente di generare un'immagine in fino a 15 secondi.

Interfaccia utente di DreamStudio. Fonte immagine: DreamStudio.
Al momento della stesura di questo tutorial, i nuovi utenti ricevono 100 crediti gratuiti per provare DreamStudio, sufficienti per 500 immagini con le impostazioni predefinite! Ulteriori crediti possono essere acquistati all'interno dell'applicazione quando preferisci, a soli $10,00 per 1000 crediti.
2. Hugging Face
Hugging Face è una community e piattaforma di IA che promuove i contributi open source. Sebbene sia molto conosciuta per i suoi modelli transformer, Hugging Face fornisce anche accesso al più recente modello Stable Diffusion e, da vero amante dell'open source, è gratuito.
Per eseguire Stable Diffusion su Hugging Face, puoi provare una delle demo, ad esempio la demo di Stable Diffusion 2.1.
Il compromesso con Hugging Face è che non puoi personalizzare le proprietà come in DreamStudio e il tempo di generazione di un'immagine è visibilmente più lungo.

Demo di Stable Diffusion su Hugging Face. Immagine dell'autore.
Come eseguire Stable Diffusion in locale
E se invece vuoi fare esperimenti con Stable Diffusion sul tuo computer locale? Ci pensiamo noi.
Eseguire Stable Diffusion in locale ti permette di sperimentare con vari input testuali per generare immagini più adatte alle tue esigenze. Puoi anche ottimizzare finemente il modello sui tuoi dati per migliorare i risultati, in base agli input che fornisci.
Disclaimer: Devi avere una GPU per eseguire Stable Diffusion in locale.
Passaggio 1: installa Python e Git
Per eseguire Stable Diffusion dal tuo computer locale, ti servirà Python 3.10.6. Puoi installarlo dal sito ufficiale di Python. Se ti blocchi, dai un'occhiata al nostro tutorial Come installare Python.
Verifica che l'installazione sia andata a buon fine aprendo il prompt dei comandi, digitando python ed eseguendo il comando. Dovrebbe stampare la versione di Python in uso.
Disclaimer: La versione consigliata per eseguire Stable Diffusion è Python 3.10.6. Ti suggeriamo di non procedere senza questa versione per evitare problemi.
Successivamente devi installare il sistema di gestione dei repository di codice Git. La guida all'installazione di Git può aiutarti, e il nostro corso Introduzione a Git può approfondire le tue conoscenze su Git.
Passaggio 2: crea un account GitHub e Hugging Face
GitHub è un servizio di hosting per lo sviluppo software dove gli sviluppatori ospitano il loro codice per poter tracciare e collaborare con altri sviluppatori sui progetti. Se non hai un account GitHub, questo è anche un buon momento per crearne uno: consulta GitHub and Git Tutorial for Beginners per assistenza.
Hugging Face, invece, è una community di IA che sostiene i contributi open source. È l'hub per numerosi modelli di IA da vari domini, tra cui elaborazione del linguaggio naturale, computer vision e altro. Ti servirà un account per scaricare l'ultima versione di Stable Diffusion. Arriveremo a questo passaggio più avanti.
Passaggio 3: clona Stable Diffusion Web-UI
In questo passaggio scaricherai la Web-UI di Stable Diffusion sul tuo computer locale. Anche se è utile creare una cartella dedicata (ad es. stable-diffusion-demo-project) per questo scopo, non è obbligatorio.
1. Apri Git Bash:
- Assicurati di avere Git Bash installato sul tuo computer.
2. Vai alla cartella desiderata:
- Apri Git Bash e usa il comando
cdper spostarti nella cartella in cui vuoi clonare la Web-UI di Stable Diffusion. Ad esempio:
cd path/to/your/folder
3. Clona il repository:
- Esegui il seguente comando per clonare il repository della Web-UI di Stable Diffusion:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
4. Verifica la clonazione:
- Se il comando viene eseguito correttamente, dovresti vedere una nuova cartella chiamata
stable-diffusion-webuinella directory scelta.

Nota: Puoi trovare istruzioni più specifiche per il tuo hardware e sistema operativo nel repository GitHub della web UI di Stable Diffusion.
Passaggio 4: scarica l'ultimo modello Stable Diffusion
1. Accedi a Hugging Face:
- Accedi al tuo account Hugging Face.
2. Scarica il modello Stable Diffusion:
- Trova e scarica il modello Stable Diffusion che vuoi eseguire da Hugging Face. Questi file sono grandi, quindi il download può richiedere alcuni minuti.
3. Individua la cartella del modello:
- Vai alla seguente cartella sul tuo computer:
stable-diffusion-webui\models\Stable-diffusion
4. Sposta il modello scaricato:
- Nella cartella
Stable-diffusionvedrai un file di testo chiamatoPut Stable Diffusion Checkpoints here. - Sposta il file del modello Stable Diffusion scaricato in questa cartella.
Passaggio 5: configura la web UI di Stable Diffusion
In questo passaggio installerai gli strumenti necessari per eseguire Stable Diffusion.
1. Apri il Prompt dei comandi o il Terminale.
2. Vai alla cartella della web UI di Stable Diffusion:
- Usa il comando
cdper spostarti nella cartellastable-diffusion-webuiclonata in precedenza. Ad esempio:
cd path/to/stable-diffusion-webui
3. Esegui lo script di setup:
- Una volta nella cartella
stable-diffusion-webui, esegui il seguente comando:
webui-user.bat
Questo script creerà un ambiente virtuale e installerà tutte le dipendenze necessarie per eseguire Stable Diffusion. Il processo può richiedere circa 10 minuti, quindi abbi pazienza.
Nota: Puoi trovare istruzioni più specifiche per il tuo hardware e sistema operativo nel repository GitHub della web UI di Stable Diffusion.
Passaggio 6: esegui Stable Diffusion in locale
Dopo che le dipendenze sono state installate, nel prompt dei comandi apparirà un URL: http://127.0.0.1:7860.
- Copia e incolla questo indirizzo nel tuo browser per eseguire la web UI di Stable Diffusion.
- Ora puoi iniziare a inserire prompt e generare immagini!

Web UI di Stable Diffusion in esecuzione in locale. Immagine dell'autore.
Conclusione
Stable Diffusion rappresenta un significativo progresso nel campo dell'IA generativa. Offre la possibilità di generare immagini dettagliate e di alta qualità a partire da descrizioni testuali. Che tu voglia modificare immagini esistenti, migliorare immagini a bassa risoluzione o creare visual completamente nuovi, Stable Diffusion mette a disposizione un set di strumenti potente e versatile.
Con gli aggiornamenti e i miglioramenti recenti in Stable Diffusion 3 e Medium, le capacità del modello sono state ulteriormente potenziate, rendendolo un punto di riferimento nello spazio dell'IA generativa.
Eseguire Stable Diffusion in locale o tramite varie piattaforme online come DreamStudio e Hugging Face ti permette di esplorarne e sfruttarne appieno il potenziale. Seguendo i passaggi descritti in questa guida, puoi configurare e iniziare a usare Stable Diffusion per soddisfare le tue esigenze creative e pratiche!
Approfondisci l'IA generativa
L'IA generativa è una modalità rivoluzionaria di deep learning che crea testi, immagini e altri contenuti di alta qualità basandosi sui dati su cui è stata addestrata. Strumenti come Stable Diffusion, ChatGPT e DALL-E sono ottimi esempi di come l'IA generativa stia trasformando vari settori, abilitando nuove forme di creatività e innovazione. Man mano che queste tecnologie evolvono, aprono nuove possibilità per artisti, sviluppatori e ricercatori per spingere oltre i confini di ciò che è possibile.
Se vuoi approfondire il mondo dell'IA generativa, ecco alcune risorse da esplorare:
FAQ
Posso eseguire Stable Diffusion su un computer senza GPU dedicata?
Eseguire Stable Diffusion richiede una potenza di calcolo significativa, tipicamente fornita da una GPU dedicata. Sebbene teoricamente sia possibile eseguirlo su una CPU, il processo sarebbe estremamente lento e inefficiente. Per la migliore esperienza, è consigliabile usare una macchina con una GPU potente che abbia almeno 6 GB di VRAM.
Come posso eseguire il fine-tuning di Stable Diffusion con il mio dataset?
Il fine-tuning di Stable Diffusion prevede il riaddestramento del modello sul tuo dataset specifico per migliorarne le prestazioni nel tuo caso d'uso. Questo processo richiede una buona comprensione del machine learning e l'accesso a un ambiente di calcolo adeguato. In generale, dovrai preparare il tuo dataset, modificare gli script di training per includere i tuoi dati e poi eseguire il processo di training usando una GPU potente. Istruzioni dettagliate sul fine-tuning dei modelli si trovano spesso nella documentazione dei framework di machine learning come PyTorch.
Dai un'occhiata al nostro tutorial Fine-tuning di Stable Diffusion XL con DreamBooth e LoRA per maggiori informazioni.
Quali sono alcuni problemi comuni che potrei incontrare eseguendo Stable Diffusion in locale e come posso risolverli?
Problemi comuni includono:
- Errori di installazione: assicurati che tutte le dipendenze siano installate correttamente e compatibili con il tuo sistema.
- Errori di memoria insufficiente: riduci la dimensione dell'immagine o il batch size se la tua GPU non ha abbastanza VRAM.
- Prestazioni lente: verifica che i driver della GPU siano aggiornati e che il sistema non stia eseguendo altri processi intensivi.
Consulta la pagina delle issue del repository GitHub e i forum della community per suggerimenti e soluzioni di troubleshooting specifici.
Come posso ottimizzare le prestazioni di Stable Diffusion sulla mia GPU?
Per ottimizzare le prestazioni di Stable Diffusion sulla tua GPU:
- Aggiorna i driver: assicurati che i driver della GPU siano aggiornati.
- Regola le impostazioni: riduci la risoluzione dell'immagine o il batch size per rientrare nei limiti di VRAM della tua GPU.
- Usa librerie ottimizzate: utilizza librerie e framework ottimizzati come CUDA e cuDNN per GPU NVIDIA.
- Chiudi i processi in background: libera risorse di sistema chiudendo processi in background non necessari.
- Monitora le prestazioni: usa strumenti di monitoraggio per tenere traccia dell'utilizzo della GPU e regola le impostazioni di conseguenza per ottenere prestazioni ottimali.
Posso usare Stable Diffusion per generare animazioni o video?
- Generazione frame-by-frame: crea fotogrammi individuali variando leggermente il prompt di input o il seed per ciascun frame.
- Interpolazione: usa tecniche per interpolare tra keyframe generati da Stable Diffusion.
- Software di editing video: combina i fotogrammi usando un software di montaggio video per produrre animazioni o video fluidi. Tieni presente che la creazione di animazioni di alta qualità può richiedere un notevole post-processing e competenze di video editing.


