Sistemi di generazione di immagini
Published: 2023-10-03 14:27:14

---
title: Sistemi di generazione di immagini
published: true
date: 2022-10-12 00:00:00 UTC
tags: 
canonical_url: 
---

Immagini sintetiche: nelle ultime settimane sono usciti moltissimi articoli che parlano di intelligenze artificiali in grado di generare immagini a partire da un testo inserito dall’utente.

Stable Diffusion e DALL-E 2 sono solo due esempi di questi sistemi open source per la creazione di immagini sintetiche: ma come funzionano?

# Cosa vedrai

- [Cosa sono](#cosa-sono)
- [Soluzioni sul mercato](#soluzioni-sul-mercato)
- [Come funzionano](#come-funzionano)
- [Risorse utili](#risorse-utili)

# Cosa sono

Sono sistemi che <ins> a partire da alcuni <em>front</em> (o testi) generano svariate illustrazioni</ins>; essi si basano su un tessuto di deep-learning, prettamente paragonabile al tessuto nervoso umano, contenente oltre **3 miliardi e mezzo di connessioni** e capace di generare immagini a partire da una vasta biblioteca di dati.

> Chiaramente questo lavoro richiede un addestramento fitto e oneroso, basti pensare che per “insegnare” a un sistema a generare immagini in autonomia servono diverse centinaia di CPU a lavorare simultaneamente.

# Soluzioni sul mercato

Il più conosciuto nel settore è [DALL-E 2](https://openai.com/dall-e-2/) che, come è facile intuire, è la seconda versione di un precedente sistema omonimo divenuto famoso per la sua capacità di generare immagini in buona qualità. [DALL-E 2](https://openai.com/dall-e-2/) genera immagini a partire da un prompt, vale a dire un input.

Questi sistemi di IA sono essenzialmente quasi tutti privati (sì, può utilizzarli il pubblico ma affinché possano poi essere venduti come servizi più completi); difatti, anche i grandi del settore non stanno perdendo tempo: Google ha sviluppato Party e [Imagen](https://imagen.research.google/), ancora in fase di sviluppo, Microsoft sta implementando [VQ-Diffusion](https://github.com/microsoft/VQ-Diffusion), META lavora su [Make-A-Scene](https://www.youtube.com/watch?v=ZM06MjPdoxw) (implementato perlopiù su scenari del metaverso), e un laboratorio indipendente sta sviluppando invece [Midjourney](https://www.midjourney.com/home/).

Fanno eccezione, per la loro caratteristica di essere open source, [Crayion](https://www.craiyon.com/) e DreamStudio prodotto da [Stability.AI](https://stability.ai/).

# Come funzionano

Questa rete neurale con cui sono stati costruiti è in grado di imparare a partire dai dataset vastissimi costituiti da immagini associati ad una “ **didascalia** ”; in altre parole partendo da una frase genererà la sua relativa **illustrazione**. Questa tecnica si chiama **[diffusion](https://ai.googleblog.com/2021/07/high-fidelity-image-generation-using.html)** e consente la generazione delle immagini. La diffusione in avanti avviene se partiamo da un’immagine a cui aggiungiamo via via più rumore, al contrario la diffusione all’indietro avviene grazie all’intervento dell’IA e parte dal rumore generando, attraverso milioni di esempi contenuti nel dataset, delle illustrazioni, che diventeranno intellegibili grazie all’intervento del prompt.

Spieghiamo meglio: affinché l’immagine generata dal sistema abbia un senso, al rumore dovrà essere associato un _input__testuale_ –e in questo caso parliamo di **text-guided-diffusion**.

Alcuni esempi di [immagini](https://www.linkedin.com/posts/piero-savastano-523b3016_stablediffusion-midjourney-dalle2-activity-6968202926204829696-BhBf?utm_source=share&utm_medium=member_desktop) generate da [Stable Diffusion](https://lnkd.in/dP5iCxHW):

![](https://theredcode.it/img/stable-diffusion-alien.png) _Alieno_

Un altro esempio oltre a quelli citati è [GLIDE](https://github.com/openai/glide-text2im): si tratta di un modello che sfrutta la diffusion basata sul testo condizionale per produrre immagini sintetiche, e che è possibile provare sfruttando Python congiuntamente al repository ufficiale.

# Riflessioni

La maggior parte di questi progetti di AI sono stati resi disponibili come progetti **open**  **source** : questo è un segnale importante nel voler coinvolgere la community per evitare che ci siano potenziali usi impropri di questi strumenti.

In diverse occasioni, sono stati utilizzati per generare immagini che risultano _divertenti_ e anche molto _comiche_:

![](https://theredcode.it/img/stable-diffusion-corgi-sunglasses.png) _Un corgi con gli occhiali da sole_

![](https://theredcode.it/img/stable-diffusion-cats-skiing.png) _Gatti che sciano (?)_

![](https://theredcode.it/img/stable-diffusion-rabbit-with-jacket.png) _Coniglio con giacca rossa_

![](https://theredcode.it/img/stable-diffusion-submarine-reading.png) _Sottomarino che legge_

Come in tutte le applicazioni, bisogna considerare che le _conseguenze_ che si hanno nel rendere questi strumenti alla portata di tutti: alcuni [utenti](https://www.youtube.com/bakztfuture) si sono infatti detti preoccupati dell’utilizzo di queste risorse per generare immagini che producano _deepfake_ o contenuti _pornografici_.

Diversi sistemi che generavano immagini di volti di persone sono stati più volte utilizzati per creare **profili**** fake** online: l’esempio più conosciuto è quello del sito [ThisPersonDoesNotExist](https://thispersondoesnotexist.com/).

Alcuni di questi servizi tuttavia sono **limitati** nel loro utilizzo: l’accesso per testarne la beta version è su richiesta e ha una lista di attesa estremamente lunga, e questo anche per limitarne la diffusione e le potenziali conseguenze negative.

Inoltre, vale la pena valutare la possibilità che questi sistemi possiedano dei bias: inserendo frasi come _“doctor at work”, “engineer” o “police”_ tramite il sito di [Stable Diffusion](https://huggingface.co/spaces/stabilityai/stable-diffusion), i risultati sono i seguenti:

![](https://theredcode.it/img/stable-diffusion-doctor.png) _“Doctor at work”_

![](https://theredcode.it/img/stable-diffusion-police.png) _“Police”_

![](https://theredcode.it/img/stable-diffusion-engineer.png) _“Engineer”_

Sebbene le capacità dei modelli di generazione di immagini siano impressionanti, possono anche rafforzare o esacerbare i pregiudizi della società. Poiché la maggior parte di questi modelli sono stati addestrati su dati non filtrati recuperati da Internet, è spesso possibile generare immagini che contengono _stereotipi_.

Come si evince dalla documentazione di questi sistemi, si tratta comunque di un topic al centro dell’attenzione delle persone che sviluppano questi sistemi, e su cui stanno lavorando proattivamente.

**Piccola nota:** i volti delle persone potrebbero risultare un po’ “strani”: come spiega la documentazione di [Craiyon](https://www.craiyon.com/), si tratterebbe di un problema causato dall’encoder delle immagini.

> E tu, che ne pensi?

# Risorse utili

- [Video sui sistemi di generazioni di immagini a cura di Piero Savastano](https://www.youtube.com/watch?v=2HX6jmYM1Jo)
- [Stable Diffusion](https://lnkd.in/dP5iCxHW)
- [Prova Stable Diffusione online](https://huggingface.co/spaces/stabilityai/stable-diffusion)
- [Repo Docker per provare Stable Diffusion](https://github.com/pieroit/stable-diffusion-jupyterlab-docker)