Strumenti di IA 101

Flux di Black Forest Labs: il prossimo passo avanti nei modelli di testo-immagine. È meglio di Midjourney?

mm
Aggiungi Unite.AI alle tue fonti preferite su Google
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labs, il team dietro il modello di diffusione stabile, ha rilasciato Flux – una suite di modelli all’avanguardia che promettono di ridefinire le capacità dell’immagine generata da AI. Ma Flux rappresenta veramente un passo avanti in questo campo e come si confronta con i leader del settore come Midjourney? Scopriamo insieme il potenziale di Flux e il suo impatto sul futuro dell’arte e dei media generati da AI.

La nascita di Black Forest Labs

Black Forest Labs non è solo un’altra startup di AI, ma un potere di talenti con un record di sviluppo di modelli generativi di base. Il team include i creatori di VQGAN, Latent Diffusion e la famiglia di modelli di diffusione stabile che hanno fatto scalpore nel mondo dell’arte di AI.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Con un round di finanziamento Series Seed di 31 milioni di dollari guidato da Andreessen Horowitz e supportato da noti investitori angelici, Black Forest Labs si è posizionata alla forefront della ricerca sull’AI generativa. La loro missione è chiara: sviluppare e avanzare modelli di apprendimento profondo generativo di stato dell’arte per media come immagini e video, spingendo i confini della creatività, dell’efficienza e della diversità.

Introduzione alla famiglia di modelli Flux

Black Forest Labs ha introdotto la suite di modelli di testo-immagine FLUX.1, progettati per stabilire nuovi benchmark nel dettaglio dell’immagine, nell’aderenza ai prompt, nella diversità di stile e nella complessità della scena. La famiglia Flux consiste di tre varianti, ciascuna adattata a diversi casi d’uso e livelli di accessibilità:

  1. FLUX.1 [pro]: il modello flagship, che offre prestazioni di alto livello nella generazione di immagini con un’aderenza ai prompt superiore, una qualità visiva, un dettaglio dell’immagine e una diversità di output. Disponibile tramite un’API, è posizionato come opzione premium per l’uso professionale e aziendale.
  2. FLUX.1 [dev]: un modello a peso aperto, distillato con guida per applicazioni non commerciali. È progettato per raggiungere una qualità e un’aderenza ai prompt simili a quelle della versione pro, ma con una maggiore efficienza.
  3. FLUX.1 [schnell]: il modello più veloce della suite, ottimizzato per lo sviluppo locale e l’uso personale. È disponibile apertamente con una licenza Apache 2.0, rendendolo accessibile per una vasta gamma di applicazioni e esperimenti.

Fornirò alcuni esempi di prompt unici e creativi che mostrano le capacità di FLUX.1. Questi prompt metteranno in evidenza la capacità del modello di gestire il testo, le composizioni complesse e gli elementi sfidanti come le mani.

  • Fusione di stili artistici con testo: “Crea un ritratto di Vincent van Gogh nel suo stile caratteristico, ma sostituisci la sua barba con pennellate ondulate che formano le parole ‘Starry Night’ in corsivo.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Scena di azione dinamica con integrazione di testo: “Un supereroe che esce da una pagina di fumetto. Le linee di azione e gli effetti sonori dovrebbero formare il nome del supereroe ‘FLUX FORCE’ in tipografia dinamica e in grassetto.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Concetto surreale con posizionamento di oggetti precisi: “Primo piano di un gatto carino con colori marrone e bianco sotto la luce del sole che filtra dalla finestra. Fuoco selettivo sulla texture e il colore degli occhi. Illuminazione naturale per catturare l’autentico splendore e la profondità degli occhi.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Questi prompt sono progettati per mettere alla prova le capacità di FLUX.1 nella resa del testo, nella composizione di scene complesse e nella creazione di oggetti dettagliati, mentre mostrano anche il suo potenziale per la generazione di immagini creative e uniche.

Innovazioni tecniche dietro Flux

Al cuore delle impressionanti capacità di Flux ci sono una serie di innovazioni tecniche che lo distinguono dai suoi predecessori e contemporanei:

Modelli di flusso alimentati da trasformatori a scala

Tutti i modelli FLUX.1 pubblici sono costruiti su un’architettura ibrida che combina blocchi di diffusione trasformatori multimodali e paralleli, scalati a un impressionante 12 miliardi di parametri. Ciò rappresenta un notevole balzo in avanti in termini di dimensioni e complessità del modello rispetto a molti modelli di testo-immagine esistenti.

I modelli Flux migliorano i precedenti modelli di diffusione di stato dell’arte incorporando la corrispondenza di flusso, un metodo generale e concettualmente semplice per l’addestramento di modelli generativi. La corrispondenza di flusso fornisce un framework più flessibile per la modellazione generativa, con i modelli di diffusione come caso speciale all’interno di questo approccio più ampio.

Per migliorare le prestazioni del modello e l’efficienza dell’hardware, Black Forest Labs ha integrato le incastonature di posizionamento rotative e i layer di attenzione paralleli. Queste tecniche consentono una migliore gestione delle relazioni spaziali nelle immagini e un’elaborazione più efficiente di grandi quantità di dati.

Innovazioni architettoniche

Vediamo di analizzare alcuni degli elementi architettonici chiave che contribuiscono alle prestazioni di Flux:

  1. Architettura ibrida: combinando blocchi di diffusione trasformatori multimodali e paralleli, Flux può elaborare efficacemente sia informazioni testuali che visive, portando a una migliore allineazione tra prompt e immagini generate.
  2. Corrispondenza di flusso: questo approccio consente un addestramento più flessibile e efficiente dei modelli generativi. Fornisce un framework unificato che comprende modelli di diffusione e altre tecniche generative, potenzialmente portando a una generazione di immagini più robusta e versatile.
  3. Incastonature di posizionamento rotative: queste incastonature aiutano il modello a comprendere e mantenere meglio le relazioni spaziali all’interno delle immagini, aspetto cruciale per la generazione di contenuto visivo coerente e dettagliato.
  4. Layer di attenzione paralleli: questa tecnica consente un’elaborazione più efficiente dei meccanismi di attenzione, fondamentali per comprendere le relazioni tra diversi elementi sia nei prompt testuali che nelle immagini generate.
  5. Scalabilità a 12 miliardi di parametri: le dimensioni del modello gli consentono di catturare e sintetizzare pattern e relazioni più complessi, potenzialmente portando a output di alta qualità e più diversificati.

Test di Flux: un nuovo standard nella sintesi di immagini

https://blackforestlabs.ai/announcing-black-forest-labs/

https://blackforestlabs.ai/announcing-black-forest-labs/

Black Forest Labs afferma che FLUX.1 stabilisce nuovi standard nella sintesi di immagini, superando modelli popolari come Midjourney v6.0, DALL·E 3 (HD) e SD3-Ultra in diversi aspetti chiave:

  1. Qualità visiva: Flux mira a produrre immagini con fedeltà più alta, dettagli più realistici e un appeal estetico generale migliore.
  2. Adesione ai prompt: il modello è progettato per aderire più strettamente ai prompt testuali dati, generando immagini che riflettono più fedelmente le intenzioni dell’utente, specialmente per richieste complesse o sottili.
  3. Variazione di dimensioni e aspetto: Flux supporta una gamma diversificata di rapporti di aspetto e risoluzioni, da 0,1 a 2,0 megapixels, offrendo flessibilità per vari casi d’uso.
  4. Tipografia: il modello mostra capacità migliorate nella generazione e resa del testo all’interno delle immagini, una sfida comune per molti modelli di testo-immagine.
  5. Diversità di output: Flux è specificamente ottimizzato per preservare l’intera diversità di output dall’addestramento pre-trattato, offrendo una gamma più ampia di possibilità creative.

Flux vs. Midjourney: un’analisi comparativa

https://blackforestlabs.ai/announcing-black-forest-labs/

Ora, affrontiamo la domanda bruciante: Flux è meglio di Midjourney? Per rispondere, dobbiamo considerare diversi fattori:

Qualità dell’immagine e aesthetiche

Sia Flux che Midjourney sono noti per produrre immagini di alta qualità e visivamente spettacolari. Midjourney è stato elogiato per il suo stile artistico e la capacità di creare immagini con un appeal estetico distinto. Flux, con la sua architettura avanzata e un numero maggiore di parametri, mira a eguagliare o superare questo livello di qualità.

Esempi iniziali di Flux mostrano dettagli impressionanti, texture realistiche e una forte comprensione della luce e della composizione. Tuttavia, la natura soggettiva dell’arte rende difficile affermare con certezza la superiorità in questo ambito. Gli utenti potrebbero trovare che ogni modello ha i suoi punti di forza in diversi stili o tipi di immagini.

Adesione ai prompt

Un’area in cui Flux potrebbe superare Midjourney è l’adesione ai prompt. Black Forest Labs ha enfatizzato il loro focus sull’miglioramento della capacità del modello di interpretare e eseguire correttamente i prompt dati. Ciò potrebbe risultare in immagini generate che riflettono più fedelmente le intenzioni dell’utente, specialmente per richieste complesse o sottili.

Midjourney è stato talvolta criticato per aver preso libertà creative con i prompt, portando a risultati belli ma inaspettati. L’approccio di Flux potrebbe offrire un controllo più preciso sull’output generato.

Velocità ed efficienza

Con l’introduzione di FLUX.1 [schnell], Black Forest Labs sta puntando a una delle principali vantaggi di Midjourney: la velocità. Midjourney è noto per i tempi di generazione rapidi, che lo hanno reso popolare per processi creativi iterativi. Se Flux può eguagliare o superare questa velocità mantenendo la qualità, potrebbe essere un punto di forza significativo.

Accessibilità e facilità d’uso

Midjourney ha guadagnato popolarità in parte grazie alla sua interfaccia utente e all’integrazione con Discord. Flux, essendo più recente, potrebbe aver bisogno di tempo per sviluppare interfacce altrettanto accessibili. Tuttavia, la natura open-source di FLUX.1 [schnell] e [dev] potrebbe portare a una vasta gamma di strumenti e integrazioni sviluppati dalla comunità, potenzialmente superando Midjourney in termini di flessibilità e opzioni di personalizzazione.

Capacità tecniche

L’architettura avanzata e le dimensioni maggiori del modello Flux suggeriscono che potrebbe avere una maggiore capacità raw di comprendere prompt complessi e generare dettagli intricati. L’approccio di corrispondenza di flusso e l’architettura ibrida potrebbero permettere a Flux di gestire una gamma più ampia di compiti e generare output più diversificati.

Considerazioni etiche e mitigazione dei pregiudizi

Sia Flux che Midjourney affrontano la sfida di affrontare le preoccupazioni etiche nell’immagine generata da AI, come i pregiudizi, la disinformazione e le questioni di copyright. L’enfasi di Black Forest Labs sulla trasparenza e il loro impegno a rendere i modelli ampiamente accessibili potrebbero potenzialmente portare a una maggiore supervisione della comunità e a miglioramenti più rapidi in queste aree.

Implementazione del codice e distribuzione

Utilizzo di Flux con Diffusers

I modelli Flux possono essere facilmente integrati in workflow esistenti utilizzando la libreria Hugging Face Diffusers. Ecco una guida passo dopo passo per utilizzare FLUX.1 [dev] o FLUX.1 [schnell] con Diffusers:

  1. Innanzitutto, installa o aggiorna la libreria Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Quindi, puoi utilizzare la FluxPipeline per eseguire il modello:
import torch
from diffusers import FluxPipeline

<p># Carica il modello
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)</p>

<p># Abilita l'offloading della CPU per risparmiare VRAM (opzionale)
pipe.enable_model_cpu_offload()</p>

<p># Genera un'immagine
prompt = "Un gatto che tiene un cartello che dice ciao mondo"
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type="pil",
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]</p>

<p># Salva l'immagine generata
image.save("flux-dev.png")

Questo codice snippet mostra come caricare il modello FLUX.1 [dev], generare un’immagine da un prompt testuale e salvare il risultato.

Distribuzione di Flux come API con LitServe

Per coloro che desiderano distribuire Flux come un servizio API scalabile, Black Forest Labs fornisce un esempio utilizzando LitServe, un motore di inferenza ad alte prestazioni. Ecco una panoramica del processo di distribuzione:

Definisci il server del modello:

from io import BytesIO
from fastapi import Response
import torch
import time
import litserve as ls
from optimum.quanto import freeze, qfloat8, quantize
from diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer, T5EncoderModel, T5TokenizerFast

<p>class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# Carica i componenti del modello
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="scheduler")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2", torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2", torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="transformer", torch_dtype=torch.bfloat16)</p>

<p># Quantizza a 8 bit per adattarsi a un'GPU L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>

<p># Inizializza la pipeline Flux
self.pipe = FluxPipeline(
scheduler=scheduler,
text_encoder=text_encoder,
tokenizer=tokenizer,
text_encoder_2=None,
tokenizer_2=tokenizer_2,
vae=vae,
transformer=None,
)
self.pipe.text_encoder_2 = text_encoder_2
self.pipe.transformer = transformer
self.pipe.enable_model_cpu_offload()</p>

<p>def decode_request(self, request):
return request["prompt"]</p>

<p>def predict(self, prompt):
image = self.pipe(
prompt=prompt,
width=1024,
height=1024,
num_inference_steps=4,
generator=torch.Generator().manual_seed(int(time.time())),
guidance_scale=3.5,
).images[0]
return image</p>

<p>def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})</p>

<p># Avvia il server
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>

Questo codice imposta un’API LitServe per Flux, compresa la caricamento del modello, la gestione delle richieste, la generazione dell’immagine e la codifica della risposta.

Avvia il server:

</pre>
python server.py
<pre>

Utilizza l’API del modello:

Puoi testare l’API utilizzando uno script client semplice:

import requests
import json

<p>url = "http://localhost:8000/predict"
prompt = "un robot seduto su una sedia che dipinge un quadro su una tela di una città futuristica, pop art"</p>

<p>response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)</p>

<p>print("Immagine generata e salvata come generated_image.png")</p>

Caratteristiche chiave della distribuzione

  1. Architettura serverless: l’impostazione di LitServe consente una distribuzione scalabile e serverless che può scalare a zero quando non in uso.
  2. API privata: puoi distribuire Flux come un’API privata sulla tua infrastruttura.
  3. Supporto multi-GPU: l’impostazione è progettata per funzionare efficientemente su più GPU.
  4. Quantizzazione: il codice dimostra come quantizzare il modello a 8 bit, consentendogli di funzionare su hardware meno potente come le GPU L4 di NVIDIA.
  5. Offloading della CPU: il metodo enable_model_cpu_offload() viene utilizzato per conservare la memoria della GPU offloading parti del modello sulla CPU quando non in uso.

Applicazioni pratiche di Flux

La versatilità e la potenza di Flux aprono una vasta gamma di potenziali applicazioni in vari settori:

  1. Industrie creative: i designer grafici, gli illustratori e gli artisti possono utilizzare Flux per generare rapidamente arte concettuale, mood board e ispirazioni visive.
  2. Marketing e pubblicità: i marketer possono creare visuali personalizzate per campagne, contenuti per i social media e mockup di prodotti con una velocità e una qualità senza precedenti.
  3. Sviluppo di giochi: i designer di giochi possono utilizzare Flux per prototipare rapidamente ambienti, personaggi e asset, semplificando il processo di pre-produzione.
  4. Architettura e design d’interni: gli architetti e i designer possono generare visualizzazioni realistiche di spazi e strutture basate su descrizioni testuali.
  5. Istruzione: gli educatori possono creare aiuti visivi personalizzati e illustrazioni per migliorare i materiali di apprendimento e rendere concetti complessi più accessibili.
  6. Cinema e animazione: gli artisti di storyboard e gli animatori possono utilizzare Flux per visualizzare rapidamente scene e personaggi, accelerando il processo di pre-visualizzazione.

Il futuro di Flux e la generazione di immagini da testo

Black Forest Labs ha reso chiaro che Flux rappresenta solo l’inizio delle loro ambizioni nello spazio dell’AI generativa. Hanno annunciato piani per sviluppare sistemi generativi di testo-video competitivi, promettendo capacità di creazione e modifica precise ad alta definizione e velocità senza precedenti.

Questa roadmap suggerisce che Flux non è solo un prodotto autonomo, ma parte di un ecosistema più ampio di strumenti di AI generativa. Man mano che la tecnologia evolve, possiamo aspettarci di vedere:

  1. Integrazione migliorata: workflow senza soluzione di continuità tra la generazione di immagini da testo e la generazione di video da testo, consentendo la creazione di contenuti più complessi e dinamici.
  2. Personalizzazione avanzata: un controllo più fine-grano sul contenuto generato, possibilmente attraverso tecniche avanzate di ingegneria dei prompt o interfacce utente intuitive.
  3. Generazione in tempo reale: man mano che modelli come FLUX.1 [schnell] continuano a migliorare, potremmo vedere capacità di generazione di immagini in tempo reale che potrebbero rivoluzionare la creazione di contenuti live e i media interattivi.
  4. Generazione cross-modale: la capacità di generare e manipolare contenuto attraverso più modalità (testo, immagine, video, audio) in modo coeso e integrato.
  5. Sviluppo di AI etico: un focus continuo sullo sviluppo di modelli di AI che non solo sono potenti, ma anche responsabili e eticamente sound.

Conclusione: Flux è meglio di Midjourney?

La domanda se Flux sia “migliore” di Midjourney non è facile da rispondere con un semplice sì o no. Entrambi i modelli rappresentano l’avanguardia della tecnologia di generazione di immagini da testo, ciascuno con i propri punti di forza e caratteristiche uniche.

Flux, con la sua architettura avanzata e l’enfasi sull’adesione ai prompt, potrebbe offrire un controllo più preciso e una qualità potenzialmente più alta in determinate situazioni. Le sue varianti open-source offrono anche opportunità di personalizzazione e integrazione che potrebbero essere estremamente preziose per gli sviluppatori e i ricercatori.

Midjourney, d’altra parte, ha un record provato, una grande e attiva base di utenti e uno stile artistico distintivo che molti utenti sono arrivati ad amare. La sua integrazione con Discord e la sua interfaccia utente hanno reso accessibile a creativi di tutti i livelli di competenza tecnica.

Alla fine, il modello “migliore” potrebbe dipendere dal caso d’uso specifico, dalle preferenze personali e dalle capacità in evoluzione di ogni piattaforma. Ciò che è chiaro è che Flux rappresenta un passo significativo nel campo dell’AI generativa, introducendo tecniche innovative e spingendo i confini di ciò che è possibile nella sintesi di immagini da testo.

Ho trascorso gli ultimi cinque anni immergendomi nel mondo affascinante del Machine Learning e del Deep Learning. La mia passione e la mia esperienza mi hanno portato a contribuire a oltre 50 progetti di ingegneria del software diversi, con un focus particolare su AI/ML. La mia curiosità in corso mi ha anche portato verso l'elaborazione del linguaggio naturale, un campo che sono ansioso di esplorare ulteriormente.