Instrumente IA 101

Flux de la Black Forest Labs: Următorul Salt în Modelele Text-to-Imagine. Este mai bun decât Midjourney?

mm
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labs, echipa din spatele modelului revoluționar Stable Diffusion, a lansat Flux – o suită de modele de ultimă generație care promit să redefinească capacitățile imaginilor generate de inteligența artificială. Dar Flux reprezintă cu adevărat un salt înainte în domeniu și cum se compară cu liderii din industrie, cum ar fi Midjourney? Să intrăm în lumea Flux și să explorăm potențialul său de a remodela viitorul artei și mass-media generate de inteligență artificială.

Nașterea Black Forest Labs

Black Forest Labs nu este doar o altă startup de inteligență artificială; este o putere de talent cu un record de dezvoltare a modelelor generative de inteligență artificială fundamentale. Echipa include creatorii VQGAN, Latent Diffusion și familia de modele Stable Diffusion care au luat lumea artei de inteligență artificială cu asalt.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Cu o rundă de finanțare de serie Seed de 31 de milioane de dolari condusă de Andreessen Horowitz și sprijin din partea unor investitori îngeri notabili, Black Forest Labs s-a poziționat în fruntea cercetărilor de inteligență artificială generativă. Misiunea lor este clară: să dezvolte și să avanseze modele de învățare profundă generativă de ultimă generație pentru medii precum imagini și videoclipuri, în timp ce împing limitele creativității, eficienței și diversității.

Prezentarea Familiei de Modele Flux

Black Forest Labs a introdus suita de modele text-to-image FLUX.1, proiectate pentru a stabili noi repere în detaliile imaginilor, aderarea la prompt, diversitatea stilului și complexitatea scenei. Familia Flux constă din trei variante, fiecare adaptată pentru diferite cazuri de utilizare și niveluri de accesibilitate:

  1. FLUX.1 [pro]: Modelul de top, oferind performanță de nivel superior în generarea de imagini cu următoarele caracteristici: urmărirea precisă a promptului, calitatea vizuală, detaliile imaginii și diversitatea de ieșire. Disponibil prin intermediul unui API, este poziționat ca opțiunea premium pentru utilizarea profesională și întreprinderi.
  2. FLUX.1 [dev]: Un model cu greutăți deschise, distilat pentru aplicații ne-comerciale. Este proiectat pentru a atinge calitate și capacități de aderare la prompt similare cu versiunea pro, fiind mai eficient.
  3. FLUX.1 [schnell]: Cel mai rapid model din suită, optimizat pentru dezvoltare locală și utilizare personală. Este disponibil în mod deschis sub licență Apache 2.0, făcându-l accesibil pentru o gamă largă de aplicații și experimente.

Voi oferi câteva exemple unice și creative de prompturi care demonstrează capacitățile FLUX.1. Aceste prompturi vor evidenția puterea modelului în manipularea textului, compunerea de scene complexe și crearea de obiecte detaliate, precum și capacitățile sale creative și unice de generare de imagini.

  • Amestec de stil artistic cu text: “Creează un portret al lui Vincent van Gogh în stilul său distinct, dar înlocuiește barba lui cu pensule care formează cuvintele ‘Starry Night’ în cursiv.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Scenă dinamică de acțiune cu integrare de text: “Un supererou care sparge prin pagina unei cărți de benzi desenate. Linile de acțiune și efectele sonore ar trebui să formeze numele eroului ‘FLUX FORCE’ în tipografie dinamică și îndrăzneață.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Concept suprarealist cu plasare precisă a obiectelor: “Close-up al unui pisoi drăguț cu culori maro și alb sub lumina soarelui de la fereastră. Focalizare ascuțită pe textura și culoarea ochilor. Iluminare naturală pentru a captura strălucirea și adâncimea autentică a ochilor.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Aceste prompturi sunt concepute pentru a testa capacitățile FLUX.1 în manipularea textului, compunerea de scene complexe și crearea de obiecte detaliate, precum și pentru a evidenția potențialul său creativ și unic de generare de imagini.

Inovațiile Tehnice din Spatele Flux

La baza capacităților impresionante ale Flux se află o serie de inovații tehnice care îl diferențiază de predecesorii și contemporanii săi:

Modele de Flux cu Putere de Transformer la Scară

Toate modelele FLUX.1 publice sunt construite pe o arhitectură hibridă care combină blocuri de difuzie paralelă și multimodală, scalate la un impresionant 12 miliarde de parametri. Acest lucru reprezintă un salt semnificativ în ceea ce privește dimensiunea și complexitatea modelului comparativ cu multe dintre modelele text-to-image existente.

Modelele Flux îmbunătățesc modelele de difuzie de ultimă generație prin integrarea potrivirii fluxului, o metodă generală și conceptual simplă pentru antrenarea modelelor generative. Potrivirea fluxului oferă un cadru mai flexibil pentru modelarea generativă, modelele de difuzie fiind un caz special în această abordare mai largă.

Pentru a îmbunătăți performanța modelului și eficiența hardware, Black Forest Labs a integrat încorporări poziționale rotative și straturi de atenție paralelă. Aceste tehnici permit o mai bună gestionare a relațiilor spațiale în imagini și o procesare mai eficientă a datelor la scară largă.

Inovații Arhitecturale

Să descompunem câteva dintre elementele cheie care contribuie la performanța Flux:

  1. Arhitectură Hibridă: Prin combinarea blocurilor de difuzie paralelă și multimodală, Flux poate procesa eficient atât informații textuale, cât și vizuale, conducând la o mai bună aliniere între prompturi și imagini generate.
  2. Potrivirea Fluxului: Acestă abordare permite o flexibilitate și eficiență mai mare în antrenarea modelelor generative. Oferă un cadru unificat care cuprinde atât modelele de difuzie, cât și alte tehnici generative, ceea ce ar putea duce la o generare de imagini mai robustă și versatilă.
  3. Încorporări Poziționale Rotative: Aceste încorporări ajută modelul să înțeleagă și să mențină relațiile spațiale din imagini, ceea ce este crucial pentru generarea de conținut vizual coerent și detaliat.
  4. Straturi de Atenție Paralelă: Această tehnică permite o procesare mai eficientă a mecanismelor de atenție, care sunt critice pentru înțelegerea relațiilor dintre diferitele elemente atât din prompturi, cât și din imagini generate.
  5. Scalare la 12 Miliarde de Parametri: Dimensiunea impresionantă a modelului îi permite să capteze și să sintetizeze modele și relații mai complexe, ceea ce ar putea duce la ieșiri de calitate superioară și mai diverse.

Testarea Flux: Un Nou Standard în Sinteză de Imagini

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

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

Black Forest Labs afirmă că FLUX.1 stabilește noi standarde în sinteza de imagini, depășind modele populare precum Midjourney v6.0, DALL·E 3 (HD) și SD3-Ultra în mai multe aspecte cheie:

  1. Calitate Vizuală: Flux își propune să producă imagini cu fidelitate mai ridicată, detalii mai realiste și o estetică generală mai bună.
  2. Aderare la Prompt: Modelul este proiectat pentru a urma mai îndeaproape prompturile textuale date, generând imagini care reflectă mai exact intențiile utilizatorului.
  3. Variabilitate de Dimensiune și Raport de Aspect: Flux suportă o gamă diversă de rapoarte de aspect și rezoluții, de la 0,1 la 2,0 megapixeli, oferind flexibilitate pentru diverse cazuri de utilizare.
  4. Tipografie: Modelul arată capacități îmbunătățite în generarea și renderizarea textului în imagini, o provocare comună pentru multe modele text-to-image.
  5. Diversitate de Ieșire: Flux este special finisat pentru a păstra întreaga diversitate de ieșire de la preantrenare, oferind o gamă mai largă de posibilități creative.

Flux vs. Midjourney: O Analiză Comparativă

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

Acum, să abordăm întrebarea arzătoare: Este Flux mai bun decât Midjourney? Pentru a răspunde, trebuie să luăm în considerare mai multe factori:

Calitatea Imaginii și Estetica

Atât Flux, cât și Midjourney sunt cunoscute pentru producerea de imagini de înaltă calitate, vizual impresionante. Midjourney a fost lăudat pentru flerul său artistic și capacitatea de a crea imagini cu o estetică distinctă. Flux, cu arhitectura sa avansată și numărul mai mare de parametri, își propune să egaleze sau să depășească acest nivel de calitate.

Exemplele inițiale de la Flux arată detalii impresionante, texte realiste și o înțelegere puternică a luminii și compoziției. Cu toate acestea, natura subiectivă a artei face dificilă afirmarea superiorității în acest domeniu. Utilizatorii pot găsi că fiecare model are puncte forte în diferite stiluri sau tipuri de imagini.

Aderare la Prompt

O zonă în care Flux ar putea depăși Midjourney este în ceea ce privește aderarea la prompt. Black Forest Labs a subliniat accentul pe îmbunătățirea capacității modelului de a interpreta și executa prompturi date cu acuratețe. Acest lucru ar putea duce la imagini generate care reflectă mai exact intențiile utilizatorului, în special pentru solicitări complexe sau nuanțate.

Midjourney a fost uneori criticat pentru luarea de libertăți creative cu prompturile, ceea ce poate duce la rezultate frumoase dar neașteptate. Abordarea Flux ar putea oferi un control mai precis asupra ieșirii generate.

Viteză și Eficiență

Cu introducerea FLUX.1 [schnell], Black Forest Labs vizează una dintre avantajoasele cheie ale Midjourney: viteza. Midjourney este cunoscut pentru timpul său rapid de generare, care l-a făcut popular pentru procese creative iterative. Dacă Flux poate egala sau depăși această viteză menținând calitatea, ar putea fi un punct de vânzare semnificativ.

Accesibilitate și Ușurință în Utilizare

Midjourney a câștigat popularitate parțial datorită interfeței sale prietenoase și integrării cu Discord. Flux, fiind mai nou, ar putea necesita timp pentru a dezvolta interfețe la fel de accesibile. Cu toate acestea, natura deschisă a modelului FLUX.1 [schnell] și [dev] ar putea duce la o gamă largă de instrumente și integrări dezvoltate de comunitate, depășind potențial Midjourney în ceea ce privește flexibilitatea și opțiunile de personalizare.

Capacități Tehnice

Arhitectura avansată și numărul mai mare de parametri ai Flux sugerează că ar putea avea o capacitate brută mai mare în ceea ce privește înțelegerea prompturilor complexe și generarea de detalii intricate. Abordarea potrivirii fluxului și arhitectura hibridă ar putea permite Flux să gestioneze o gamă mai largă de sarcini și să genereze ieșiri mai diverse.

Considerații Etice și Mitigarea Prejudecăților

Atât Flux, cât și Midjourney se confruntă cu provocarea de a aborda preocupările etice legate de imagini generate de inteligență artificială, cum ar fi prejudecățile, informațiile false și problemele de copyright. Accentul Black Forest Labs pe transparență și angajamentul de a face modelele larg accesibile ar putea duce la o supraveghere comunitară mai robustă și la îmbunătățiri mai rapide în aceste domenii.

Implementarea Codului și Dezvoltarea

Utilizarea Flux cu Diffusers

Modelele Flux pot fi integrate ușor în fluxurile de lucru existente utilizând biblioteca Hugging Face Diffusers. Iată un ghid pas cu pas pentru utilizarea FLUX.1 [dev] sau FLUX.1 [schnell] cu Diffusers:

  1. Mai întâi, instalați sau actualizați biblioteca Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Apoi, puteți utiliza FluxPipeline pentru a rula modelul:
import torch
from diffusers import FluxPipeline

<p># Încărcați modelul
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)</p>

<p># Activati offload-ul modelului pe CPU (opțional)
pipe.enable_model_cpu_offload()</p>

<p># Generați o imagine
prompt = "Un pisoi ținând un semn care spune salut lume"
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ți imaginea generată
image.save("flux-dev.png")

Acest fragment de cod demonstrează cum să încărcați modelul FLUX.1 [dev], să generați o imagine dintr-un prompt text și să salvați rezultatul.

Dezvoltarea Flux ca API cu LitServe

Pentru cei care doresc să dezvolte Flux ca serviciu API scalabil, Black Forest Labs oferă un exemplu utilizând LitServe, un motor de inferență de înaltă performanță. Iată o descriere a procesului de dezvoltare:

Definiți serverul modelului:

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):
# Încărcați componentele modelului
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># Cuantizați la 8 biți pentru a se potrivi pe un GPU L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>

<p># Inițializați pipeline-ul 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># Porniți serverul
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>

Acest cod setează un API LitServe pentru Flux, incluzând încărcarea modelului, gestionarea cererilor, generarea de imagini și codarea răspunsurilor.

Porniți serverul:

</pre>
python server.py
<pre>

Utilizați API-ul modelului:

Puteți testa API-ul utilizând un script client simplu:

import requests
import json

<p>url = "http://localhost:8000/predict"
prompt = "un robot așezat într-un scaun, pictând o imagine pe o tavă de pictură a unui peisaj urban futurist, în stil 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("Imagine generată și salvată ca generated_image.png")</p>

Caracteristici Cheie ale Dezvoltării

  1. Arhitectură Fără Server: Configurația LitServe permite o dezvoltare scalabilă, fără server, care poate fi redusă la zero atunci când nu este utilizată.
  2. API Privat: Puteți dezvolta Flux ca API privat pe infrastructura proprie.
  3. Suport Multi-GPU: Configurația este proiectată pentru a funcționa eficient pe mai multe GPU.
  4. Cuantizare: Codul demonstrează cum să cuantizați modelul la precizia de 8 biți, permițându-i să ruleze pe hardware mai puțin puternic, cum ar fi GPU-urile NVIDIA L4.
  5. Offload pe CPU: Metoda enable_model_cpu_offload() este utilizată pentru a conserva memoria GPU, offloadând părți ale modelului pe CPU atunci când nu sunt utilizate.

Aplicări Practice ale Flux

Versatilitatea și puterea Flux deschid o gamă largă de aplicații potențiale în diverse industrii:

  1. Industrii Creative: Designeri grafici, ilustratori și artiști pot utiliza Flux pentru a genera rapid arte conceptuale, tablouri de bord și inspirații vizuale.
  2. Marketing și Publicitate: Marketarii pot crea vizualizări personalizate pentru campanii, conținut de social media și machete de produs cu o viteză și calitate fără precedent.
  3. Dezvoltare de Jocuri: Designerii de jocuri pot utiliza Flux pentru a prototipa rapid medii, personaje și active, accelerând procesul de pre-producție.
  4. Arhitectură și Design Interior: Arhitecții și designerii pot genera vizualizări realiste ale spațiilor și structurilor pe baza descrierilor textuale.
  5. Educație: Educatorii pot crea ajutoare vizuale personalizate și ilustrații pentru a îmbunătăți materialele de învățământ și pentru a face conceptele complexe mai accesibile.
  6. Film și Animație: Artiștii de storyboard și animatorii pot utiliza Flux pentru a vizualiza rapid scene și personaje, accelerând procesul de pre-vizualizare.

Viitorul Flux și Generarea Text-to-Imagine

Black Forest Labs a anunțat planuri de a dezvolta sisteme generative competitive text-to-video, promițând capacități de creație și editare precise la definiție înaltă și o viteză fără precedent.

Această hartă a drumului sugerează că Flux nu este doar un produs independent, ci parte a unui ecosistem mai larg de instrumente de inteligență artificială generativă. Pe măsură ce tehnologia evoluează, putem aștepta să vedem:

  1. Integrare Îmbunătățită: Fluxuri de lucru fără întrerupere între generarea text-to-image și text-to-video, permițând o creare de conținut mai complexă și dinamică.
  2. Personalizare Îmbunătățită: Un control mai fin asupra conținutului generat, posibil prin tehnici avansate de inginerie a prompturilor sau interfețe utilizator intuitive.
  3. Generare în Timp Real: Pe măsură ce modele precum FLUX.1 [schnell] continuă să se îmbunătățească, putem vedea capacități de generare de imagini în timp real care ar putea revoluționa crearea de conținut live și mass-media interactive.
  4. Generare Cross-Modală: Capacitatea de a genera și manipula conținut în mai multe moduri (text, imagine, video, audio) într-un mod coerent și integrat.
  5. Dezvoltare Etică a Inteligenței Artificiale: O continuare a accentului pe dezvoltarea de modele de inteligență artificială care nu numai că sunt puternice, dar și responsabile și etice.

Concluzie: Este Flux Mai Bun Decât Midjourney?

Întrebarea dacă Flux este “mai bun” decât Midjourney nu poate fi răspunsă cu un simplu da sau nu. Ambele modele reprezintă vârful tehnologiei de generare text-to-image, fiecare cu puncte forte și caracteristici unice.

Flux, cu arhitectura sa avansată și accentul pe aderarea la prompt, ar putea oferi un control mai precis și o calitate potențial mai ridicată în anumite scenarii. Variantele sale deschise oferă, de asemenea, oportunități de personalizare și integrare care ar putea fi extrem de valoroase pentru dezvoltatori și cercetători.

Midjourney, pe de altă parte, are un record dovedit, o bază largă de utilizatori și un stil artistic distinct care a câștigat mulți fani. Integrarea sa cu Discord și interfața prietenoasă au făcut-o accesibilă pentru creativi de toate nivelurile de competență tehnică.

În cele din urmă, modelul “mai bun” poate depinde de cazul de utilizare specific, de preferințele personale și de capacitățile în evoluție ale fiecărei platforme. Ceea ce este clar este că Flux reprezintă un salt semnificativ înainte în domeniul inteligenței artificiale generative, introducând tehnici inovatoare și împingând limitele a ceea ce este posibil în sinteza text-to-image.

Am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a Machine Learning și Deep Learning. Pasinea și expertiza mea m-au condus să contribui la peste 50 de proiecte diverse de inginerie software, cu un focus deosebit pe AI/ML. Curiozitatea mea în continuare m-a atras și spre Natural Language Processing, un domeniu pe care sunt dornic să îl explorez mai departe.