Midjourney e Stable Diffusion sono due famosi strumenti basati sull’intelligenza artificiale per la generazione di immagini a partire da descrizioni testuali. Midjourney ha un’interfaccia utente più semplice rispetto a Stable Diffusion ma, confrontato con quest’ultimo, offre pochi modelli personalizzabili. L’uso di Midjourney richiede inoltre la stipula di un abbonamento mentre Stable Diffusion mette a disposizione una versione gratuita, scaricabile sotto forma di codice sorgente. La versione utilizzabile on-premises, tuttavia, richiede una potenza di elaborazione elevata. Anche il modello DALL-E, integrato in vari software come Microsoft Edge, Paint e Windows, permette di generare immagini utilizzando semplici o più articolati prompt di testo.
Fooocus, generare e modificare immagini. A costo zero
Sul repository ufficiale GitHub, è possibile trovare un promettente progetto che raccoglie il meglio dai “mondi” Midjourney e Stable Diffusion. Fooocus è un’applicazione Python in grado non soltanto di creare nuove immagini a partire da una descrizione ma anche di consegnare evolute funzionalità di fotoritocco, indisponibili anche nei programmi più conosciuti e costosi.
Per produrre immagini con l’intelligenza artificiale, Fooocus utilizza “generative diffusion models” ossia modelli generativi che non intervengono direttamente sui singoli pixel bensì si servono di una serie di passaggi iterativi per aggiornare e integrare gradualmente l’immagine. In ogni passo, il modello diffonde l’informazione attraverso l’immagine, attivandosi per svilupparne una rappresentazione progressiva.
Fooocus ha fatto proprie diverse ottimizzazioni che conducono a miglioramenti qualitativi da lasciare di stucco. Gli utenti, tuttavia, non devono conoscere i parametri tecnici che governano il funzionamento di Foocus: possono invece dare libero sfogo alla propria creatività e fantasia.
Requisiti di sistema
L’applicazione può funzionare su sistemi Windows, Linux e macOS. È tuttavia indispensabile utilizzare una GPU performante che si occuperà di gestire il carico di lavoro di Fooocus permettendo l’ottenimento delle immagini richieste in tempi brevi. La tabella seguente chiarisce tutto:
Sistema | GPU | Memoria GPU minima | RAM minima | Note |
---|---|---|---|---|
Windows/Linux | NVidia RTX 4XXX | 4GB | 8GB | Configurazione consigliata |
Windows/Linux | NVidia RTX 3XXX | 4GB | 8GB | In generale, più veloce di RTX 2XXX |
Windows/Linux | NVidia RTX 2XXX | 4GB | 8GB | In generale, più veloce di GTX 1XXX |
Windows/Linux | NVidia GTX 1XXX | 8GB (* 6GB Incerto) | 8GB | Leggermente più veloce della CPU |
Windows/Linux | NVidia GTX 9XX | 8GB | 8GB | Più veloce o più lenta della CPU |
Windows/Linux | NVidia GTX < 9XX | Non Supportato | — | — |
Windows (AMD GPU) | AMD GPU | 8GB | 8GB | Tramite DirectML, circa 3x più lenta di NVidia RTX 3XXX |
Linux (AMD GPU) | AMD GPU | 8GB | 8GB | Tramite ROCm, circa 1.5x più lenta di NVidia RTX 3XXX |
Mac | M1/M2 MPS | Condivisa | Condivisa | Circa 9x più lenta di NVidia RTX 3XXX |
Windows/Linux/Mac | Solo CPU | — | 32GB | Circa 17x più lenta di NVidia RTX 3XXX |
Come si vede, la situazione ottimale sarebbe disporre di un computer basato su scheda video NVidia RTX serie 4000 con almeno 4 GB di VRAM, affiancata da 8 GB di memoria RAM o più sul sistema principale. È possibile usare Fooocus anche con GPU meno performanti ma le prestazioni ne risentiranno di conseguenza. Addirittura, si può anche eseguire Fooocus appoggiandosi semplicemente alla CPU ma in questo caso il sistema deve essere equipaggiato con almeno 32 GB di RAM e la generazione delle immagini sarà in media 17 volte più lenta rispetto all’utilizzo di una GPU RTX 3000.
Mettete da parte i programmi di fotoritocco: fate spazio a Fooocus
Come accennato in apertura, Fooocus non permette soltanto di generare immagini con l’intelligenza artificiale ma consente di modificare foto preesistenti ottenendo risultati a dir poco eccezionali.
Sebbene sia possibile farlo, non è strettamente necessario inserire lunghi e complicati prompt descrittivi nel campo Type prompt here or paste parameters. Inserendo semplici parole separate da virgole, Fooocus userà un modello generativo per creare automaticamente una descrizione più articolata.
Ovvio che se si desiderassero ottenere immagini in grado di soddisfare requisiti stringenti, bisogna essere necessariamente più precisi al momento dell’immissione del prompt. Il consiglio è inoltre quello di avanzare le richieste usando sempre la lingua inglese. Usando l’italiano, i risultati sono spesso insoddisfacenti.
Foocus, per impostazione predefinita, genera sempre una coppia di immagini tra le quali è poi possibile scegliere. Cliccando su Advanced, tuttavia, è possibile personalizzare questo e altri parametri. Nelle immagini precedenti e successiva, presentiamo due esempi di foto generate dall’intelligenza artificiale di Fooocus.
Nell’immagine seguente si vede come Fooocus permetta di impostare le dimensioni (risoluzione) dell’immagine da generare, le preferenze legate alla velocità di elaborazione e lo stile da usare.
Per impostazione predefinita, Fooocus ignora stili personalizzati a meno che quelli predefiniti non siano disattivati.
Il riquadro Negative prompt consente di specificare uno o più termini, così da indicare ciò che NON si desidera ottenere al momento della creazione dell’immagine. Ad esempio, specificando B&W, si avrà la certezza di ricevere solo foto a colori.
Ridimensionare un’immagine senza perdite qualitative
Abbiamo già visto cosa si intende per upscaling delle immagini: cliccando sulla casella Input in basso e inviando un’immagine a Fooocus, è possibile aumentare le dimensioni della foto senza perdite di qualità. L’applicazione consente anche di raddoppiare la risoluzione dell’immagine originale.
Dopo aver selezionato l’opzione preferita, per ottenere il ridimensionamento dell’immagine, basta fare clic sul pulsante Generate poco più in alto.
Combinare un’operazione di modifica dell’immagine con un prompt personalizzato
Nulla vieta di chiedere, ad esempio, di creare una variante dell’immagine iniziale (opzione Vary) e abbinare un prompt personalizzato. In questo modo Fooocus crea una versione derivata della foto caricata e prende in considerazione le indicazioni dell’utente per rielaborare l’immagine e creare qualcosa di completamente nuovo.
Ricalcare pose umane e sostituire volti
I metodi PyraCanny e CPDS consentono di inviare un’immagine in input e chiedere, mediante prompt, di sostituire il soggetto mostrato nella foto originale con un altro. Ad esempio, scrivendo woman, Fooocus imiterà la posa della persona raffigurata nell’immagine originale sostituendola con la figura di una donna generata tramite IA.
È addirittura possibile inviare un’immagine e specificare ciò che si desidera ottenere per conservare il volto della persona raffigurata nella prima foto. Con un prompt “ad hoc” si può arrivare al risultato di face swapping ovvero la sostituzione di un volto con un altro.
Inpainting e outpainting
Fooocus permette di utilizzare anche la tecnica dell’inpainting per sostituire parti specifiche di un’immagine. Usando il pennello dell’applicazione per indicare le parti sulle quali intervenire, si possono ottenere foto migliorate, contenenti elementi completamente nuovi (anche in questo caso è eventualmente possibile combinare l’uso di un prompt).
Con l’outpainting, invece, è possibile estendere o aggiungere contenuto a un’immagine al di là dell’area occupata originariamente. Si pensi a una foto che ha una risoluzione ridotta e uno sfondo che non vi aggrada: con Fooocus è possibile chiedere all’IA di generare automaticamente le parti mancanti.
Come installare ed eseguire Fooocus in Windows
Installare Fooocus in Windows è molto semplice: basta scaricare questo archivio compresso quindi estrarne il contenuto in una cartella di propria scelta (ad esempio c:\fooocus
) per poi fare doppio clic sul file run.bat
.
La prima volta che si esegue il file batch, lo script provvede a scaricare i modelli generativi utilizzati per produrre e modificare le immagini. I modelli sono tre e sono brevemente descritti in questa pagina.
Non appena si provasse a utilizzare la funzionalità di inpainting, Fooocus provvederà a scaricare un modello di controllo aggiuntivo: il file si chiama Fooocus\models\inpaint\inpaint_v*.fooocus.patch
e pesa più di 1,2 GB.
Gli sviluppatori di Fooocus invitano comunque gli utenti a verificare che il file di paginazione sia attivo e correttamente configurato in ambiente Windows. Per accertarsene basta premere Windows+R
, digitare sysdm.cpl ,3
, premere Invio quindi cliccare sul primo pulsante Impostazioni (riquadro Prestazioni). Con un clic sulla scheda Avanzate quindi sul pulsante Cambia, il file di paging deve essere indicato come Gestito dal sistema. È consigliata l’apposizione di una spunta sulla casella Gestisci automaticamente dimensioni file di paging per tutte le unità.
Su ogni unità, inoltre, dovrebbero essere disponibili almeno 40 GB di spazio libero.
L’installazione su Linux e macOS è altrettanto semplice e si concretizza impartendo alcuni semplici comandi.
Come provare Fooocus con Google Colab, senza installare nulla in locale
Google Colab, abbreviazione di Colaboratory, è un servizio che offre un ambiente di sviluppo basato su cloud. Consente l’esecuzione di codice Python sui server dell’azienda di Mountain View, limitandosi a usare esclusivamente il browser Web. Senza quindi la necessità di installare, configurare e gestire un ambiente locale. È particolarmente utile per il machine learning, l’analisi dati e la condivisione di progetti interattivi.
Il piano gratuito di Colab è immediatamente disponibile e a tutti coloro che posseggono un account Google (anche quelli free), l’azienda di Mountain View offre la possibilità di avvantaggiarsi dell’accelerazione hardware GPU e TPU (Tensor Processing Unit) per eseguire le operazioni più complesse, come ad esempio l’addestramento dei modelli generativi.
Ovviamente, Colab non offre particolari garanzie agli utenti che non attivano un piano a pagamento. Le performance delle loro applicazioni Python non sono in alcun modo garantite e l’esecuzione può interrompersi improvvisamente, soprattutto nel caso in cui utilizzassero quantitativi di risorse cloud troppo elevati. È tutto scritto nero su bianco nelle condizioni d’uso di Colab.
Colab, tuttavia, offre la preziosa opportunità (da cogliere al volo!) di provare Fooocus senza installare nulla in locale.
Avviare Fooocus da Colab
Per procedere, basta raggiungere questo URL quindi fare clic sul pulsante Connetti T4 in alto a destra. Con un clic sul pulsante circolare a sinistra (Esegui cella) della prima riga di codice (!pip install pygit2==
) si può avviare l’applicazione, avendo cura di fare clic su Esegui comunque. In alternativa, basta premere CTRL+INVIO
.
È possibile modificare l’ultima riga di codice come !python entry_with_update.py --share
oppure !python entry_with_update.py --preset anime --share
o, ancora, !python entry_with_update.py --preset realistic --share
a seconda del modello che si intende usare.
Cliccando sull’URL del tipo gradio.live
, è possibile iniziare a interagire subito con Fooocus senza abbandonare il browser Web. Gradio offre un’interfaccia visuale che consente agli utenti di definire facilmente gli input e gli output desiderati per il loro modello di machine learning.
Credit immagine in apertura: iStock.com – FotografieLink