Stable Diffusion
Stable Diffusion è la famiglia di modelli di diffusione latente a pesi aperti di Stability AI, che genera e modifica immagini da prompt testuali su GPU consumer.
Stable Diffusion è una famiglia di modelli da testo a immagine con pesi aperti di Stability AI, in grado di generare e modificare immagini a partire da prompt in linguaggio naturale. La prima versione, pubblicata nell'agosto 2022, è nata dalla collaborazione con il gruppo CompVis della LMU di Monaco e Runway e ha applicato la ricerca sulla diffusione latente a immagini 512×512 provenienti da un sottoinsieme del dataset LAION-5B. La U-Net da 860 milioni di parametri e l'encoder di testo da 123 milioni di parametri funzionavano su una GPU consumer con almeno 10 GB di memoria; poiché chiunque poteva scaricare i pesi, il modello è diventato la base di un vasto ecosistema di modelli ottimizzati, adattatori e strumenti di modifica. La versione attuale, Stable Diffusion 3.5 dell'ottobre 2024, sostituisce la U-Net con un Transformer di diffusione multimodale addestrato con flusso rettificato.
Come funziona Stable Diffusion#
Stable Diffusion è un modello di diffusione che elimina il rumore da un'immagine compressa invece che dai pixel, usando tre reti:
- Autoencoder variazionale (VAE): L'encoder comprime un'immagine 512×512×3 in una rappresentazione latente 64×64×4, con 48 volte meno valori; il decoder riconverte una rappresentazione latente completata in un'immagine. Tutta la rimozione del rumore avviene sulla piccola rappresentazione latente, consentendo al modello di funzionare su hardware consumer.
- Encoder di testo: Converte il prompt, fino a 77 token, in embedding. Stable Diffusion 1.x usa il CLIP ViT-L/14 di OpenAI, la versione 2.x usa OpenCLIP ViT-H/14, SDXL combina due encoder CLIP e Stable Diffusion 3 aggiunge un modello linguistico T5-XXL ai due encoder CLIP per comprendere meglio i prompt.
- Rete di rimozione del rumore: Prevede il rumore da rimuovere a ogni passaggio. Le versioni 1.x, 2.x e SDXL usano una U-Net, i cui livelli di attenzione incrociata consentono alle caratteristiche dell'immagine di prestare attenzione agli embedding di testo; le versioni 3 e 3.5 usano una MMDiT che elabora insieme i token dell'immagine e del testo.
La generazione parte da una rappresentazione latente casuale 64×64×4. Uno scheduler esegue la rete di rimozione del rumore in genere per 20-50 passaggi, rimuovendo ogni volta una parte del rumore previsto; la guida senza classificatore rafforza l'influenza del prompt. Il decoder VAE produce quindi l'immagine:
Poiché la rappresentazione latente iniziale è casuale, lo stesso prompt con un seed diverso genera un'immagine diversa, mentre lo stesso seed e le stesse impostazioni riproducono il risultato.
Versioni del modello#
- Stable Diffusion 1.x (2022): Generazione 512×512 con una U-Net da 860 milioni di parametri; la versione 1.5 è diventata una base comune per le ottimizzazioni della community e il documento su ControlNet si è basato su di essa. I pesi sono distribuiti con la licenza CreativeML OpenRAIL-M.
- Stable Diffusion 2.x (fine 2022): È passato all'encoder di testo OpenCLIP e ha aggiunto un modello 768×768.
- SDXL (luglio 2023): Generazione nativa 1024×1024 con una U-Net di circa 2,6 miliardi di parametri e due encoder di testo. SDXL Turbo, pubblicato nel novembre dello stesso anno, usa la distillazione avversaria della diffusione per generare un'immagine in un solo passaggio.
- Stable Diffusion 3 e 3.5 (2024): Sostituiscono la U-Net con un Transformer a flusso rettificato, con pesi separati per i token dell'immagine e del testo. Stable Diffusion 3.5 Large ha 8,1 miliardi di parametri e 3.5 Medium ne ha 2,5 miliardi. La licenza della community di Stability AI consente l'uso commerciale gratuito alle organizzazioni con ricavi annui inferiori a 1 milione di dollari.
Modificare immagini con Stable Diffusion#
- Da immagine a immagine: Codifica un'immagine esistente, vi aggiunge rumore fino a un passaggio intermedio determinato da un valore di intensità e lo rimuove con un nuovo prompt, così il risultato conserva la disposizione e i colori originali, modificandone lo stile o il contenuto.
- Ottimizzazione fine: DreamBooth e LoRA adattano il modello a un nuovo soggetto o stile usando poche decine di immagini; ControlNet aggiunge mappe di bordi, profondità o posa come condizioni strutturali.
- Inpainting delle immagini: Rigenera solo una regione mascherata per adattarla a un prompt e a ciò che la circonda. I checkpoint di inpainting di Stable Diffusion aggiungono cinque canali di ingresso alla U-Net: quattro per l'immagine mascherata codificata e uno per la maschera stessa.
Le maschere per l'inpainting sono bianche nelle aree dell'immagine da modificare e nere in quelle da conservare. I modelli Ultralytics YOLO26 di segmentazione di istanze Ultralytics YOLO26 producono automaticamente maschere di questo tipo, ad esempio per sostituire o rimuovere dalla foto di una strada tutti i veicoli di una determinata classe:
import cv2
from ultralytics import YOLO
# Segmenta l'autobus (classe COCO 5) con un modello YOLO26 di segmentazione di istanze
model = YOLO("yolo26n-seg.pt")
results = model("https://ultralytics.com/images/bus.jpg", classes=[5], retina_masks=True)
result = results[0]
# Il bianco indica i pixel che Stable Diffusion deve ridipingere, il nero quelli da conservare
mask = (result.masks.data.sum(dim=0) > 0).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_inpaint_mask.png", mask)Il file bus_inpaint_mask.png salvato ha la risoluzione completa della foto, perché retina_masks=True restituisce maschere delle dimensioni originali dell'immagine. Fornendo la foto, questa maschera e un prompt come "un autobus rosso a due piani", una pipeline di inpainting rigenera l'autobus e conserva la strada circostante.
Applicazioni nel mondo reale#
- Dati sintetici per i modelli di visione: I team generano immagini di difetti rari, condizioni meteorologiche insolite o prospettive poco comuni per colmare le lacune nei dataset di addestramento e usano l'inpainting per inserire nuovi oggetti in sfondi reali.
- Concept art e design: Durante le prime fasi della progettazione, gli studi di videogiochi, gli architetti e i designer di prodotti esplorano in pochi minuti numerosi stili e composizioni.
- Immagini per marketing ed e-commerce: Da immagine a immagine e ControlNet mantengono invariata la forma del prodotto mentre il prompt ne modifica l'ambientazione, l'illuminazione e lo sfondo.
Stable Diffusion e modelli correlati#
- Modelli di diffusione latente: Stable Diffusion è l'implementazione più nota dell'architettura di diffusione latente, quindi ogni modello Stable Diffusion è un modello di diffusione latente.
- GAN: Generano un'immagine in un unico passaggio in avanti, ma sono meno stabili durante l'addestramento e coprono una varietà minore. Stable Diffusion richiede molti passaggi di rimozione del rumore, a meno che non venga distillato, come nel caso di SDXL Turbo.
- Generatori chiusi: Servizi come i modelli per immagini di OpenAI e Midjourney funzionano solo sui server dei rispettivi fornitori. I pesi di Stable Diffusion possono essere scaricati, eseguiti offline, esaminati e ottimizzati.
- FLUX.1: Black Forest Labs, fondata nel 2024 da ricercatori che avevano partecipato al documento originale sulla diffusione latente, tra cui Robin Rombach, Andreas Blattmann e Patrick Esser, ha pubblicato la famiglia FLUX.1 da 12 miliardi di parametri, che usa lo stesso approccio del Transformer a flusso rettificato di Stable Diffusion 3.










