Vai al contenuto
Capitolo 02 · 12 min

Come funziona la generazione di immagini

Il modo dominante in cui le macchine generano immagini è quasi l'opposto di come immagineresti. Non dipingono pennellata dopo pennellata; partono da rumore puro e lo eliminano progressivamente finché non compare un'immagine. Una volta capito come funziona la diffusione, tutto il campo dell'IA per le immagini smette di essere magia.

Diffusion: from noise to image, step by stepFive frames left to right. The first is pure random noise; each step removes a little noise, guided by the prompt, until a clean image emerges. Generation is repeated denoising.pure noiseimage

Uno scultore non aggiunge marmo. Parte da un blocco grezzo e toglie tutto ciò che non è la statua.

La generazione come denoising

Un modello di diffusione è addestrato su un'idea semplice, quasi ingenua. Prendi un'immagine reale, aggiungici un po' di rumore casuale e insegna a un modello a eliminarlo. Fallo su tutti i livelli di rumore, dal leggermente sgranato fino al rumore puro. Il modello diventa esperto in una cosa: data un'immagine rumorosa, prevedere una versione leggermente più pulita.

Per generare, parti da rumore puro (rumore casuale) e applichi questo passo di denoising ancora e ancora. Ogni passaggio elimina un po' di rumore, e poiché il modello ha imparato come sono fatte le immagini vere, il rumore si risolve in un'immagine coerente. La generazione non è altro che denoising, eseguito dal nulla.

Diffusion: from noise to image, step by stepFive frames left to right. The first is pure random noise; each step removes a little noise, guided by the prompt, until a clean image emerges. Generation is repeated denoising.pure noiseimage
Partire da rumore casuale; ogni passo ne toglie un po', guidato dal prompt, finché non emerge un'immagine nitida. La creazione come sottrazione ripetuta.

Come il prompt la dirige

Un denoising puro produrrebbe un'immagine plausibile, ma non la tua immagine. Il prompt interviene come guida: a ogni passo di denoising, il modello è condizionato sul tuo testo, orientando il risultato verso un'immagine che corrisponde alla descrizione. Il testo viene convertito in una rappresentazione (usando quel tipo di spazio condiviso immagine-testo che vedremo nel capitolo 6) che il denoiser può seguire.

Ecco perché lo stesso prompt dà immagini diverse ogni volta (parti da un rumore casuale diverso), e perché piccole modifiche al prompt possono cambiare radicalmente il risultato: stai pilotando un processo, non recuperando un'immagine. Il prompt è un campo di forza sul denoising, non una chiave di ricerca.

Lavorare in piccolo: la diffusione latente

Fare denoising direttamente di un'immagine a piena risoluzione è estremamente costoso (milioni di pixel, centinaia di passi). La svolta che ha messo la generazione di immagini alla portata dell'hardware comune è stata lavorare in uno spazio compresso. Un encoder riduce l'immagine a una piccola rappresentazione "latente", tutto il denoising costoso avviene lì, poi un decoder riespande il risultato a piena risoluzione.

Working in latent spaceA full-resolution image is compressed by an encoder into a small latent representation. The expensive generation work happens there, then a decoder expands the result back to a full image. Less to compute, same result.pixelsenclatentdenoise heredecimage
Comprimere in uno spazio latente ridotto, eseguire lì la generazione costosa, poi decodificare a piena risoluzione. Lo stesso risultato per una frazione del calcolo.

Questo approccio di diffusione latente, diffuso intorno al 2022, spiega perché i generatori di immagini sono passati da curiosità di laboratorio a strumenti che girano su una GPU da gaming. L'idea (fare il lavoro difficile in uno spazio compresso) ritorna ovunque nell'IA efficiente.

Cosa spiega questo sull'IA per le immagini

L'immagine del denoising spiega le stranezze che hai osservato. Perché le immagini impiegano tempo a generarsi (molti passi). Perché i dettagli come le mani e il testo storicamente venivano fuori distorti (i dettagli fini e strutturati sono difficili da recuperare dal rumore). Perché puoi guidare, fare inpainting e variare un'immagine (puoi intervenire nel denoising). E perché gli output non sono deterministici (rumori di partenza diversi). La stranezza non è casualità: è il meccanismo che traspare.

Una riga per ciascuno

  • I modelli di diffusione generano partendo da rumore puro e togliendolo progressivamente finché non emerge un'immagine.
  • Sono addestrati aggiungendo rumore a immagini vere e imparando a invertirlo: la generazione esegue questa inversione dal nulla.
  • Il prompt guida ogni passo di denoising; i diversi rumori di partenza spiegano perché lo stesso prompt dà immagini diverse.
  • La diffusione latente fa il lavoro costoso in uno spazio compresso, ed è ciò che ha messo la generazione di immagini alla portata dell'hardware comune.
Come funziona la generazione di immagini · Corsi di IA · SDEN