AI-verktyg 101

Flux från Black Forest Labs: Nästa steg i text-till-bildmodeller. Är det bättre än Midjourney?

mm
Lägg till Unite.AI bland dina föredragna källor på Google
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labs, teamet bakom den banbrytande Stable Diffusion-modellen, har släppt Flux – en svit av state-of-the-art-modeller som lovar att omdefiniera förmågan hos AI-genererade bilder. Men representerar Flux verkligen ett stort steg framåt i fältet, och hur står det sig mot branschledare som Midjourney? Låt oss dyka djupt in i världen av Flux och utforska dess potential att forma framtiden för AI-genererad konst och media.

Födelsen av Black Forest Labs

Black Forest Labs är inte bara ett till AI-startup; det är en kraftfull talangbas med en meritlista av utveckling av grundläggande generativa AI-modeller. Teamet inkluderar skaparna av VQGAN, Latent Diffusion och den Stable Diffusion-familj av modeller som har tagit AI-konstvärlden med storm.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Med en framgångsrik Series Seed-finansieringsrunda på 31 miljoner dollar ledd av Andreessen Horowitz och stöd från noterbara ängelinvesterare, har Black Forest Labs positionerat sig i framkanten av generativ AI-forskning. Deras mission är tydlig: att utveckla och förbättra state-of-the-art-generativa djupinlärningsmodeller för media som bilder och videor, samtidigt som de utvidgar gränserna för kreativitet, effektivitet och mångfald.

Presentation av Flux-modellfamiljen

Black Forest Labs har introducerat FLUX.1-sviten av text-till-bildmodeller, designad för att sätta nya benchmark för bildinformation, promptefterlevnad, stildiversitet och scenkomplexitet. Flux-familjen består av tre varianter, var och en anpassad för olika användningsfall och tillgänglighetsnivåer:

  1. FLUX.1 [pro]: Flaggskeppmodellen, som erbjuder toppprestanda i bildgenerering med överlägsen promptefterlevnad, visuell kvalitet, bildinformation och utdatadiversitet. Tillgänglig via en API, positioneras den som det premiumalternativet för professionell och företagsanvändning.
  2. FLUX.1 [dev]: En öppen-vikt, vägledningsdestillerad modell för icke-kommersiella tillämpningar. Den är designad för att uppnå liknande kvalitet och promptefterlevnadsförmåga som pro-versionen, samtidigt som den är mer effektiv.
  3. FLUX.1 [schnell]: Den snabbaste modellen i sviten, optimerad för lokal utveckling och personlig användning. Den är fritt tillgänglig under en Apache 2.0-licens, vilket gör den tillgänglig för en mängd olika tillämpningar och experiment.

Jag kommer att tillhandahålla några unika och kreativa promptexempel som visar FLUX.1:s förmågor. Dessa prompter kommer att belysa modellens styrkor i hantering av text, komplexa kompositioner och detaljerade objektskapande, samt dess potential för kreativ och unik bildgenerering.

  • Konstnärlig stilblandning med text: “Skapa ett porträtt av Vincent van Gogh i hans signaturstil, men ersätt hans skägg med virvlande penseldrag som bildar orden ‘Starry Night’ i kursiv stil.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Dynamisk aktionscen med textintegration: “En superhjälte som bryter igenom en serietidningssida. Aktionslinjerna och ljud-effekterna ska bilda hjältens namn ‘FLUX FORCE’ i fet, dynamisk typografi.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Surrealistiskt koncept med exakt objektplacering: “Närbild av en söt katt med brun och vit färg under fönsterljus. Skarp fokus på ögonstruktur och färg. Naturligt ljus för att fånga äkta ögonglans och djup.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Dessa prompter är designade för att utmana FLUX.1:s förmågor i textrendering, komplex scenkomposition och detaljerat objektskapande, samtidigt som de visar dess potential för kreativ och unik bildgenerering.

Tekniska innovationer bakom Flux

I hjärtat av Flux imponerande förmågor ligger en serie tekniska innovationer som särskiljer den från dess föregångare och samtida:

Transformer-aktiverade flödesmodeller i stor skala

Alla offentliga FLUX.1-modeller är byggda på en hybridarkitektur som kombinerar multimodala och parallella diffusionstransformatorblock, skaliade till imponerande 12 miljarder parametrar. Detta representerar ett betydande steg i modellstorlek och komplexitet jämfört med många befintliga text-till-bildmodeller.

Flux-modellerna förbättrar tidigare state-of-the-art-diffusionsmodeller genom att införa flödesmatchning, en allmän och konceptuellt enkel metod för träning av generativa modeller. Flödesmatchning tillhandahåller en mer flexibel ram för generativ modellering, med diffusionsmodeller som ett specialfall inom denna bredare tillvägagångssätt.

För att förbättra modellprestanda och hårdvarueffektivitet har Black Forest Labs integrerat roterande positionella inbäddningar och parallella uppmärksamhetslager. Dessa tekniker möjliggör bättre hantering av rumsliga relationer i bilder och mer effektiv bearbetning av storskalig data.

Arkitektoniska innovationer

Låt oss bryta ner några av de viktigaste arkitektoniska elementen som bidrar till Flux prestanda:

  1. Hybridarkitektur: Genom att kombinera multimodala och parallella diffusionstransformatorblock kan Flux effektivt bearbeta både textuell och visuell information, vilket leder till bättre överensstämmelse mellan prompter och genererade bilder.
  2. Flödesmatchning: Detta tillvägagångssätt möjliggör mer flexibel och effektiv träning av generativa modeller. Det tillhandahåller en enhetlig ram som omfattar diffusionsmodeller och andra generativa tekniker, vilket potentiellt kan leda till mer robust och mångsidig bildgenerering.
  3. Roterande positionella inbäddningar: Dessa inbäddningar hjälper modellen att bättre förstå och upprätthålla rumsliga relationer inom bilder, vilket är avgörande för att generera sammanhängande och detaljerad visuell innehåll.
  4. Parallella uppmärksamhetslager: Denna teknik möjliggör mer effektiv bearbetning av uppmärksamhetsmekanismer, som är avgörande för att förstå relationer mellan olika element i både textprompter och genererade bilder.
  5. Skalning till 12B parametrar: Den renodlade storleken på modellen möjliggör att den kan fånga och syntetisera mer komplexa mönster och relationer, vilket potentiellt kan leda till högre kvalitet och mer varierad utdata.

Benchmarking Flux: En ny standard i bildsyntes

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

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

Black Forest Labs hävdar att FLUX.1 sätter nya standarder i bildsyntes, överträffande populära modeller som Midjourney v6.0, DALL·E 3 (HD) och SD3-Ultra i flera viktiga aspekter:

  1. Visuell kvalitet: Flux syftar till att producera bilder med högre trohet, mer realistiska detaljer och bättre övergripande estetisk appeal.
  2. Promptefterlevnad: Modellen är designad för att följa givna textprompter mer exakt, genererande bilder som mer noggrant återspeglar användarens avsikter, särskilt för komplexa eller nyanserade förfrågningar.
  3. Storlek/Aspektvariabilitet: Flux stöder en mångfald av aspektförhållanden och upplösningar, från 0,1 till 2,0 megapixlar, erbjudande flexibilitet för olika användningsfall.
  4. Typografi: Modellen visar förbättrade förmågor i att generera och rendera text inom bilder, en vanlig utmaning för många text-till-bildmodeller.
  5. Utdatadiversitet: Flux är specifikt finjusterad för att bevara hela utdatadiversitet från förträning, erbjudande en bredare palett av kreativa möjligheter.

Flux vs. Midjourney: En jämförande analys

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

Nu, låt oss ta itu med den brinnande frågan: Är Flux bättre än Midjourney? För att besvara detta måste vi överväga flera faktorer:

Bildkvalitet och estetik

Både Flux och Midjourney är kända för att producera högkvalitativa, visuellt imponerande bilder. Midjourney har berömts för sin konstnärliga flärd och förmåga att skapa bilder med en distinkt estetisk appeal. Flux, med sin avancerade arkitektur och större parameterantal, syftar till att matcha eller överträffa denna nivå av kvalitet.

Tidiga exempel från Flux visar imponerande detaljer, realistiska texturer och en stark förståelse för ljus och komposition. Men den subjektiva naturen hos konst gör det svårt att definitivt hävda överlägsenhet i detta område. Användare kan finna att varje modell har sina styrkor i olika stilar eller typer av bilder.

Promptefterlevnad

Ett område där Flux potentiellt överträffar Midjourney är i promptefterlevnad. Black Forest Labs har betonat sin fokus på att förbättra modellens förmåga att tolka och utföra givna prompter korrekt. Detta kan resultera i genererade bilder som mer exakt återspeglar användarens avsikter, särskilt för komplexa eller nyanserade förfrågningar.

Midjourney har ibland kritiserats för att ta kreativa friheter med prompter, vilket kan leda till vackra men oväntade resultat. Flux tillvägagångssätt kan erbjuda mer exakt kontroll över den genererade utdatan.

Hastighet och effektivitet

Med introduktionen av FLUX.1 [schnell] siktar Black Forest Labs på en av Midjourneys nyckelfördelar: hastighet. Midjourney är känd för sin snabba genereringstid, vilket har gjort den populär för iterativa kreativa processer. Om Flux kan matcha eller överträffa denna hastighet samtidigt som den upprätthåller kvaliteten, kan det vara en betydande försäljningspunkt.

Tillgänglighet och användarvänlighet

Midjourney har vunnit popularitet delvis på grund av sin användarvänliga gränssnitt och integration med Discord. Flux, som är nyare, kan behöva tid för att utveckla liknande tillgängliga gränssnitt. Men den öppna källkoden för FLUX.1 [schnell] och [dev]-modellerna kan leda till en mängd olika community-utvecklade verktyg och integrationer, potentiellt överträffande Midjourney i termer av flexibilitet och anpassningsmöjligheter.

Tekniska förmågor

Flux avancerade arkitektur och större modellstorlek antyder att den kan ha mer rå förmåga i termer av att förstå komplexa prompter och generera intrikata detaljer. Flödesmatchningsmetoden och hybridarkitekturen kan tillåta Flux att hantera en bredare palett av uppgifter och generera mer varierad utdata.

Etiska överväganden och biasmitigation

Både Flux och Midjourney står inför utmaningen att hantera etiska problem i AI-genererade bilder, såsom bias, desinformation och upphovsrättsfrågor. Black Forest Labs betoning på transparens och deras engagemang för att göra modeller allmänt tillgängliga kan potentiellt leda till mer robust community-övervakning och snabbare förbättringar inom dessa områden.

Kodimplementering och distribution

Användning av Flux med Diffusers

Flux-modeller kan enkelt integreras i befintliga arbetsflöden med hjälp av Hugging Face Diffusers-biblioteket. Här är en steg-för-steg-guide för att använda FLUX.1 [dev] eller FLUX.1 [schnell] med Diffusers:

  1. Först, installera eller uppgradera Diffusers-biblioteket:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Sedan kan du använda FluxPipeline för att köra modellen:
import torch
from diffusers import FluxPipeline

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

<p># Aktivera CPU-avlastning för att spara VRAM (valfritt)
pipe.enable_model_cpu_offload()</p>

<p># Generera en bild
prompt = "En katt som håller i en skylt som säger hej världen"
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># Spara den genererade bilden
image.save("flux-dev.png")

Denna kodsnutt demonstrerar hur du laddar FLUX.1 [dev]-modellen, genererar en bild från en textprompt och sparar resultatet.

Distribution av Flux som en API med LitServe

För de som vill distribuera Flux som en skalbar API-tjänst tillhandahåller Black Forest Labs ett exempel med hjälp av LitServe, en högpresterande inferensmotor. Här är en genomgång av distributionsprocessen:

Definiera modellservern:

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):
# Ladda modellkomponenter
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># Kvantifiera till 8-bit för att passa på en L4-GPU
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>

<p># Initiera Flux-pipelinen
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># Starta servern
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>

Denna kod konfigurerar en LitServe-API för Flux, inklusive modellinladdning, begäranhantering, bildgenerering och svarskodning.

Starta servern:

</pre>
python server.py
<pre>

Använd modell-API:

Du kan testa API:t med ett enkelt klientskript:

import requests
import json

<p>url = "http://localhost:8000/predict"
prompt = "en robot som sitter i en stol och målar en bild på en staffli av en futuristisk stadsbild, popkonst"</p>

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

<p>print("Bild genererad och sparad som generated_image.png")</p>

Nyckelfunktioner i distributionen

  1. Serverless-arkitektur: LitServe-konfigurationen tillåter skalbar, serverless distribution som kan skalas ned till noll när den inte används.
  2. Privat API: Du kan distribuera Flux som en privat API på din egen infrastruktur.
  3. Multi-GPU-stöd: Konfigurationen är designad för att fungera effektivt över flera GPU:er.
  4. Kvantifiering: Koden demonstrerar hur du kan kvantifiera modellen till 8-bitars precision, vilket gör den möjlig att köra på mindre kraftfull hårdvara som NVIDIA L4-GPU:er.
  5. CPU-avlastning: enable_model_cpu_offload()-metoden används för att spara GPU-minne genom att avlasta delar av modellen till CPU när den inte används.

Praktiska tillämpningar av Flux

Flux flexibilitet och kraft öppnar upp en mängd olika potentiella tillämpningar över olika branscher:

  1. Kreativa industrier: Grafiska formgivare, illustratörer och konstnärer kan använda Flux för att snabbt generera konceptkonst, moodboards och visuella inspirationer.
  2. Marknadsföring och reklam: Marknadsförare kan skapa anpassade visuella element för kampanjer, sociala medier och produktmockups med utanför detta område hastighet och kvalitet.
  3. Spelutveckling: Spelutvecklare kan använda Flux för att snabbt prototypa miljöer, karaktärer och tillgångar, vilket strömlinjeformar förproduktionsprocessen.
  4. Arkitektur och inredning: Arkitekter och formgivare kan generera realistiska visualiseringar av utrymmen och strukturer baserat på textbeskrivningar.
  5. Utbildning: Utbildare kan skapa anpassade visuella hjälpmedel och illustrationer för att förbättra läromaterial och göra komplexa koncept mer tillgängliga.
  6. Film och animation: Storyboardkonstnärer och animatörer kan använda Flux för att snabbt visualisera scener och karaktärer, vilket accelererar förvisualiseringsprocessen.

Framtiden för Flux och text-till-bildgenerering

Black Forest Labs har gjort det tydligt att Flux bara är början på deras ambitioner inom generativ AI-området. De har meddelat planer att utveckla konkurrenskraftiga generativa text-till-videosystem, som lovar exakt skapande och redigeringsförmåga i högupplösning och utanför detta område hastighet.

Denna roadmap antyder att Flux inte bara är en fristående produkt, utan en del av ett bredare ekosystem av generativa AI-verktyg. När tekniken utvecklas kan vi förvänta oss att se:

  1. Förbättrad integration: Seamlessly arbetsflöden mellan text-till-bild och text-till-videogenerering, vilket möjliggör mer komplex och dynamisk innehållsskapelse.
  2. Uppgraderad anpassning: Mer finjusterad kontroll över genererat innehåll, möjligtvis genom avancerade prompttekniker eller intuitiva användargränssnitt.
  3. Realtidsgenerering: När modeller som FLUX.1 [schnell] fortsätter att förbättras, kan vi se realtidsbildgenereringsförmåga som kan revolutionera liveinnehållsskapande och interaktiv media.
  4. Korsmodal generering: Förmågan att generera och manipulera innehåll över flera modaliteter (text, bild, video, ljud) på ett sammanhängande och integrerat sätt.
  5. Etisk AI-utveckling: Fortsatt fokus på att utveckla AI-modeller som inte bara är kraftfulla, utan också ansvarsfulla och etiskt korrekta.

Slutsats: Är Flux bättre än Midjourney?

Frågan om Flux är “bättre” än Midjourney är inte lätt att besvara med ett enkelt ja eller nej. Båda modellerna representerar den absoluta frontlinjen inom text-till-bildteknologi, var och en med sina egna styrkor och unika egenskaper.

Flux, med sin avancerade arkitektur och betoning på promptefterlevnad, kan erbjuda mer exakt kontroll och potentiellt högre kvalitet i vissa scenarier. Dess öppna källkodsvarianter erbjuder också möjligheter till anpassning och integration som kan vara mycket värdefulla för utvecklare och forskare.

Midjourney, å andra sidan, har en beprövad meritlista, en stor och aktiv användarbas och en distinkt konstnärlig stil som många användare har kommit att älska. Dess integration med Discord och användarvänliga gränssnitt har gjort det mycket tillgängligt för kreativa personer med alla tekniska färdighetsnivåer.

Till slut kan det “bättre” modellen bero på det specifika användningsfallet, personliga preferenser och de utvecklande förmågorna hos varje plattform. Vad som är tydligt är att Flux representerar ett betydande steg framåt inom generativ AI, introducerar innovativa tekniker och utvidgar gränserna för vad som är möjligt inom text-till-bildsyntes.

Jag har tillbringat de senaste fem åren med att dyka djupt in i den fascinerande världen av Maskinlärning och Djupinlärning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också lett mig mot Naturlig Språkbehandling, ett område som jag är angelägen om att utforska vidare.