Connect with us

Flux de la Black Forest Labs: Următorul salt în modelele text-Imagine. Este mai bun decât Midjourney?

Instrumente IA 101

Flux de la Black Forest Labs: Următorul salt în modelele text-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ă redefinescă capacitățile de generare a imaginilor AI. Dar reprezintă Flux cu adevărat un salt înainte în domeniu și cum se compară cu liderii industriei, cum ar fi Midjourney? Să ne scufundăm adânc în lumea Flux și să explorăm potențialul său de a rescrie viitorul artei și mass-media generate de AI.

Nașterea Black Forest Labs

Black Forest Labs nu este doar o altă startup de IA; este o putere a talentului, cu un palmares de a dezvolta modele de IA generativă fundamentale. Echipa include creatorii VQGAN, Latent Diffusion și familia de modele Stable Diffusion care au cucerit lumea artei AI.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Cu o rundă de finanțare Series Seed de succes de 31 de milioane de dolari, condusă de Andreessen Horowitz și sprijinită de investitori angel notabili, Black Forest Labs și-a poziționat la avangarda cercetării IA generative. 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, împingând în același timp granițele creativității, eficienței și diversității.

Prezentarea familiei de modele Flux

Black Forest Labs a introdus suita de modele text-Imagine FLUX.1, concepută pentru a stabili noi repere în detalii de imagine, aderență la prompt, diversitate de stil și complexitate a scenei. Familia Flux constă din trei variante, fiecare adaptată pentru diferite cazuri de utilizare și niveluri de accesibilitate:

  1. FLUX.1 [pro]: Modelul steag, oferind performanță de top în generarea de imagini cu urmărirea superioară a promptului, calitate vizuală, detalii de imagine și diversitate de ieșire. Disponibil prin intermediul unui API, este poziționat ca opțiunea premium pentru utilizare profesională și de întreprindere.
  2. FLUX.1 [dev]: Un model deschis, distilat prin îndrumare, pentru aplicații necomerciale. Este conceput pentru a atinge calități și capacități de aderență la prompt similare cu versiunea pro, fiind în același timp 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 exemple de prompturi creative și unice care evidențiază capacitățile FLUX.1. Aceste prompturi vor sublinia puterea modelului în manipularea textului, compoziții complexe și elemente dificile, cum ar fi mâinile.

  • Amestecarea stilului artistic cu text: “Creează un portret al lui Vincent van Gogh în stilul său semnătură, 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 străpunge o pagină 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 surrealist cu plasare precisă a obiectelor: “Prim-plan 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, compoziții complexe și elemente dificile, cum ar fi mâinile, subliniind în același timp potențialul său pentru generarea de imagini creative și unice.

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 transformatori la scară

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

Modelele Flux îmbunătățesc modelele de difuzie anterioare 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 paralele. 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ă detaliem unele dintre elementele cheie ale arhitecturii care contribuie la performanța Flux:

  1. Arhitectură hibridă: Prin combinarea blocurilor de difuzie multimodale și paralele, 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: Această 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 poate duce la generarea de imagini mai robuste și versatile.
  3. Încorporări poziționale rotative: Aceste încorporări ajută modelul să înțeleagă și să mențină relațiile spațiale în imagini, esențial pentru generarea de conținut vizual coerent și detaliat.
  4. Straturi de atenție paralele: Această tehnică permite o procesare mai eficientă a mecanismelor de atenție, care sunt cruciale pentru înțelegerea relațiilor dintre diferitele elemente atât în prompturi, cât și în 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, potențial conducând la ieșiri de înaltă calitate și mai diverse.

Testarea Flux: Un nou standard în sinteza 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. Aderență la prompt: Modelul este conceput pentru a urma mai îndeaproape prompturile text date, generând imagini care reflectă mai precis intențiile utilizatorului, în special pentru solicitări complexe sau nuanțate.
  3. Variabilitatea dimensiunii și raportului 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-Imagine.
  5. Diversitatea ieșirii: Flux este special ajustat pentru a păstra întreaga diversitate a ieșirii 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 un farmec 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, texteuri realiste și o înțelegere puternică a iluminării și compoziției. Cu toate acestea, natura subiectivă a artei face dificilă afirmarea cu certitudine a superiorității în acest domeniu. Utilizatorii pot găsi că fiecare model are puncte forte în diferite stiluri sau tipuri de imagini.

Aderență la prompt

O zonă în care Flux ar putea depăși Midjourney este aderența la prompt. Black Forest Labs a subliniat focalizarea lor pe îmbunătățirea capacității modelului de a interpreta și executa prompturi text date cu acuratețe. Acest lucru ar putea duce la imagini generate care reflectă mai precis 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 avantajele cheie ale Midjourney: viteza. Midjourney este cunoscut pentru timpul său rapid de generare, ceea ce l-a făcut popular pentru procese creative iterative. Dacă Flux poate egala sau depăși această viteză, menținând în același timp 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, potențial depășind Midjourney în ceea ce privește flexibilitatea și opțiunile de personalizare.

Capacități tehnice

Arhitectura avansată a Flux și dimensiunea modelului mai mare sugerează că ar putea avea mai multă putere brută în ceea ce privește înțelegerea prompturilor complexe și generarea de detalii intricate. Abordarea de potrivire a 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 IA, cum ar fi prejudecățile, informațiile false și problemele de drepturi de autor. Accentul pus de Black Forest Labs pe transparență și angajamentul lor 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 implementarea

Utilizarea Flux cu Diffusers

Modelele Flux pot fi integrate cu ușurință î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

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

# Activati transferul pe CPU pentru a economisi VRAM (opțional)
pipe.enable_model_cpu_offload()

# Generați o imagine
prompt = "O pisică ț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]

# 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.

Implementarea Flux ca API cu LitServe

Pentru cei care doresc să implementeze 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 implementare:

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

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)

# 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)

# 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()

def decode_request(self, request):
return request["prompt"]

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

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

# Porniți serverul
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)

Acest cod configurează un API LitServe pentru Flux, inclusiv încărcarea modelului, manipularea cererilor, generarea de imagini și codificarea răspunsului.

Porniți serverul:

</pre>
python server.py
<pre>

Utilizați modelul API:

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

import requests
import json

url = "http://localhost:8000/predict"
prompt = "un robot așezat într-un scaun, pictând o imagine pe o easel a unui peisaj urban futurist, artă pop"

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

print("Imagine generată și salvată ca generated_image.png")

Caracteristici cheie ale implementării

  1. Arhitectură fără server: Configurarea LitServe permite o implementare scalabilă, fără server, care poate fi redusă la zero atunci când nu este utilizată.
  2. API privat: Puteți implementa Flux ca API privat pe propria infrastructură.
  3. Suport multi-GPU: Configurarea este concepută pentru a funcționa eficient pe mai multe GPU-uri.
  4. Cuantizare: Codul demonstrează cum să cuantizați modelul la precizie de 8 biți, permițându-i să rule pe hardware mai puțin puternic, cum ar fi GPU-urile NVIDIA L4.
  5. Deblocare CPU: Metoda enable_model_cpu_offload() este utilizată pentru a conserva memoria GPU prin transferul părților modelului pe CPU atunci când nu este utilizat.

Aplicații 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 artă conceptuală, tablouri de dispoziție și inspirație vizuală.
  2. Marketing și publicitate: Marketerii pot crea vizuale personalizate pentru campanii, conținut pentru 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 preproducție.
  4. Arhitectură și design interior: Arhitecții și designerii pot genera visualiză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ățare și a face concepte 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 al generării de imagini text

Black Forest Labs a făcut clar că Flux este doar începutul ambițiilor lor în spațiul IA generativă. Ei au anunțat planuri de a dezvolta sisteme competitive de generare text-Imagine și text-videoclip, promițând capacități de creație și editare precise la înaltă definiție și o viteză fără precedent.

Acest drum sugerează că Flux nu este doar un produs independent, ci parte a unui ecosistem mai larg de unelte IA generative. Pe măsură ce tehnologia evoluează, putem aștepta să vedem:

  1. Integrare îmbunătățită: Fluxuri de lucru fără întrerupere între generarea de imagini text și text-videoclip, permițând crearea 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 media interactivă.
  4. Generare cross-modală: Capacitatea de a genera și manipula conținut în multiple moduri (text, imagine, videoclip, audio) într-un mod coerent și integrat.
  5. Dezvoltare de IA etică: O continuă focalizare pe dezvoltarea de modele IA care nu sunt doar puternice, ci și responsabile și etic solide.

Concluzie: Este Flux mai bun decât Midjourney?

Întrebarea dacă Flux este “mai bun” decât Midjourney nu este ușor de răspuns cu un simplu da sau nu. Ambele modele reprezintă avangarda tehnologiei de generare de imagini text, fiecare cu puncte forte și caracteristici unice.

Flux, cu arhitectura sa avansată și accentul pe aderența 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 palmares dovedit, o bază de utilizatori mare și activă, și un stil artistic distinct pe care mulți utilizatori l-au îndrăgit. Integrarea sa cu Discord și interfața prietenoasă au făcut-o extrem de accesibilă pentru creativi de toate nivelurile de competență tehnică.

În cele din urmă, “modelul mai bun” poate depinde de cazul de utilizare specific, preferințele personale și de evoluția capacităților fiecărei platforme. Ceea ce este clar este că Flux reprezintă un pas semnificativ înainte în domeniul IA generativă, introducând tehnici inovatoare și împingând granițele a ceea ce este posibil în sinteza de imagini text.

Am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a Învățării Automate și a Învățării Profunde. Pasiunea și expertiza mea m-au condus să contribui la peste 50 de proiecte diverse de inginerie software, cu un accent deosebit pe AI/ML. Curiozitatea mea continuă m-a atras și spre Procesarea Limbajului Natural, un domeniu pe care sunt dornic să-l explorez mai departe.