Connect with us

Flux door Black Forest Labs: De volgende stap in tekst-naar-afbeeldingsmodellen. Is het beter dan Midjourney?

AI-tools 101

Flux door Black Forest Labs: De volgende stap in tekst-naar-afbeeldingsmodellen. Is het beter dan Midjourney?

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

Black Forest Labs, het team achter het baanbrekende Stable Diffusion-model, heeft Flux uitgebracht – een suite van state-of-the-art-modellen die de mogelijkheden van AI-gegenereerde beelden opnieuw willen definiëren. Maar vertegenwoordigt Flux echt een stap voorwaarts in het veld, en hoe verhoudt het zich tot industrieleiders als Midjourney? Laten we diep duiken in de wereld van Flux en onderzoek doen naar zijn potentieel om de toekomst van AI-gegenereerde kunst en media te herschappen.

De geboorte van Black Forest Labs

Black Forest Labs is niet zomaar een AI-startup; het is een krachtcentrale van talent met een trackrecord van het ontwikkelen van fundamentele generatieve AI-modellen. Het team omvat de makers van VQGAN, Latent Diffusion en de Stable Diffusion-familie van modellen die de AI-kunstwereld hebben veroverd.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Met een succesvolle Series Seed-financieringsronde van $31 miljoen geleid door Andreessen Horowitz en steun van opvallende engel-investeerders, heeft Black Forest Labs zichzelf gepositioneerd aan de voorhoede van generatieve AI-onderzoek. Hun missie is duidelijk: het ontwikkelen en verbeteren van state-of-the-art generatieve diepe leermodellen voor media zoals afbeeldingen en video’s, en het verleggen van de grenzen van creativiteit, efficiëntie en diversiteit.

Het introduceren van de Flux-model familie

Black Forest Labs heeft de FLUX.1-suite van tekst-naar-afbeeldingsmodellen geïntroduceerd, ontworpen om nieuwe benchmarks te zetten in afbeeldingsdetail, prompt-naleving, stijldiversiteit en scène-complexiteit. De Flux-familie bestaat uit drie varianten, elk aangepast aan verschillende use cases en toegankelijkheidsniveaus:

  1. FLUX.1 [pro]: Het vlaggenschipmodel, dat topniveau-prestaties biedt in afbeeldingengeneratie met superieure prompt-naleving, visuele kwaliteit, afbeeldingsdetail en outputdiversiteit. Beschikbaar via een API, wordt het gepositioneerd als de premiumoptie voor professioneel en ondernemingsgebruik.
  2. FLUX.1 [dev]: Een open-gewicht, guidance-geëxtraheerd model voor niet-commerciële toepassingen. Het is ontworpen om soortgelijke kwaliteit en prompt-nalevingsmogelijkheden te bereiken als de pro-versie, maar efficiënter te zijn.
  3. FLUX.1 [schnell]: Het snelste model in de suite, geoptimaliseerd voor lokale ontwikkeling en persoonlijk gebruik. Het is openlijk beschikbaar onder een Apache 2.0-licentie, waardoor het toegankelijk is voor een breed scala aan toepassingen en experimenten.

Ik zal enkele unieke en creatieve promptvoorbeelden geven die de mogelijkheden van FLUX.1 laten zien. Deze prompts zijn ontworpen om FLUX.1’s capaciteiten op het gebied van tekstweergave, complexe compositie en gedetailleerde objectcreatie te testen, en laten ook zijn potentieel voor creatieve en unieke afbeeldingengeneratie zien.

  • Kunststijl-blending met tekst: “Maak een portret van Vincent van Gogh in zijn kenmerkende stijl, maar vervang zijn baard door kronkelende penseelstreken die de woorden ‘Starry Night’ in schuin schrift vormen.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Dynamische actiescène met tekstintegratie: “Een superheld die door een stripboekpagina breekt. De actielijnen en geluidseffecten moeten de heldennaam ‘FLUX FORCE’ in vet, dynamisch lettertype vormen.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Surrealistisch concept met precieze objectplaatsing: “Close-up van een schattig katje met bruine en witte kleuren onder zonlicht vanuit een raam. Scherpe focus op oogtextuur en -kleur. Natuurlijk licht om authentieke oogglans en diepte te vangen.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Deze prompts zijn ontworpen om FLUX.1’s capaciteiten op het gebied van tekstweergave, complexe compositie en gedetailleerde objectcreatie te testen, en laten ook zijn potentieel voor creatieve en unieke afbeeldingengeneratie zien.

Technische innovaties achter Flux

Aan de basis van Flux’s indrukwekkende capaciteiten liggen een reeks technische innovaties die het onderscheiden van zijn voorgangers en tijdgenoten:

Transformer-geactiveerde Flow-modellen op schaal

Alle openbare FLUX.1-modellen zijn gebouwd op een hybride architectuur die multimodale en parallelle diffusietransformatorblokken combineert, geschaald tot een indrukwekkende 12 miljard parameters. Dit vertegenwoordigt een aanzienlijke stap in modelgrootte en complexiteit in vergelijking met veel bestaande tekst-naar-afbeeldingsmodellen.

De Flux-modellen verbeteren de vorige state-of-the-art diffusiemodellen door flow-matching te integreren, een algemene en conceptueel eenvoudige methode voor het trainen van generatieve modellen. Flow-matching biedt een flexibeler kader voor generatief modelleren, waarbij diffusiemodellen een speciaal geval binnen deze bredere benadering vormen.

Om modelprestaties en hardware-efficiëntie te verbeteren, heeft Black Forest Labs rotatiepositional embeddings en parallelle aandachtlagen geïntegreerd. Deze technieken stellen het model in staat om beter om te gaan met ruimtelijke relaties in afbeeldingen en grote hoeveelheden gegevens efficiënter te verwerken.

Architecturale innovaties

Laten we enkele van de belangrijkste architecturale elementen onderzoeken die bijdragen aan Flux’s prestaties:

  1. Hybride architectuur: Door multimodale en parallelle diffusietransformatorblokken te combineren, kan Flux zowel tekstuele als visuele informatie effectief verwerken, wat leidt tot betere afstemming tussen prompts en gegenereerde afbeeldingen.
  2. Flow-matching: Deze benadering stelt generatieve modellen in staat om flexibeler en efficiënter te worden getraind. Het biedt een geünificeerd kader dat diffusiemodellen en andere generatieve technieken omvat, wat potentieel kan leiden tot robuustere en veelzijdigere afbeeldingengeneratie.
  3. Rotary positional embeddings: Deze embeddings helpen het model om beter te begrijpen en ruimtelijke relaties binnen afbeeldingen te behouden, wat essentieel is voor het genereren van samenhangende en gedetailleerde visuele inhoud.
  4. Parallelle aandachtlagen: Deze techniek stelt het model in staat om aandachtsmechanismen efficiënter te verwerken, die cruciaal zijn voor het begrijpen van relaties tussen verschillende elementen in zowel tekstprompts als gegenereerde afbeeldingen.
  5. Schaalbaarheid tot 12B parameters: De enorme grootte van het model stelt het in staat om complexere patronen en relaties te begrijpen en te synthetiseren, wat potentieel kan leiden tot hogere kwaliteit en diversiteit in de uitvoer.

Benchmarken van Flux: Een nieuwe standaard in beeldsynthese

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

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

Black Forest Labs beweert dat FLUX.1 nieuwe standaarden zet in beeldsynthese, waarbij het populaire modellen zoals Midjourney v6.0, DALL·E 3 (HD) en SD3-Ultra in verschillende sleutelgebieden overtreft:

  1. Visuele kwaliteit: Flux heeft als doel afbeeldingen te produceren met hogere geloofwaardigheid, meer realistische details en betere algehele esthetische aantrekkingskracht.
  2. Prompt-naleving: Het model is ontworpen om nauwer aan de gegeven tekstprompts te voldoen, waardoor afbeeldingen worden gegenereerd die de bedoelingen van de gebruiker nauwkeuriger weerspiegelen, vooral voor complexe of nuanceuze verzoeken.
  3. Grootte/aspectverandering: Flux ondersteunt een breed scala aan aspectverhoudingen en resoluties, van 0,1 tot 2,0 megapixels, waardoor het flexibel is voor verschillende use cases.
  4. Typografie: Het model toont verbeterde capaciteiten in het genereren en weergeven van tekst binnen afbeeldingen, een veelvoorkomende uitdaging voor veel tekst-naar-afbeeldingsmodellen.
  5. Outputdiversiteit: Flux is specifiek fijngestemd om de gehele outputdiversiteit van vooraftrainen te behouden, waardoor een bredere range aan creatieve mogelijkheden ontstaat.

Flux vs. Midjourney: Een vergelijkende analyse

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

Laten we nu de brandende vraag beantwoorden: Is Flux beter dan Midjourney? Om dit te beantwoorden, moeten we verschillende factoren in overweging nemen:

Afbeeldingskwaliteit en esthetiek

Zowel Flux als Midjourney zijn bekend om het produceren van hoogwaardige, visueel aantrekkelijke afbeeldingen. Midjourney is geprezen om zijn artistieke flair en vermogen om afbeeldingen te creëren met een onderscheidende esthetische aantrekkingskracht. Flux, met zijn geavanceerde architectuur en grotere parametercount, heeft als doel om dit niveau van kwaliteit te evenaren of te overtreffen.

Vroege voorbeelden van Flux laten indrukwekkende details, realistische textures en een sterk begrip van licht en compositie zien. Echter, de subjectieve aard van kunst maakt het moeilijk om definitief superioriteit in dit gebied te claimen. Gebruikers kunnen vinden dat elk model zijn sterke punten heeft in verschillende stijlen of soorten beelden.

Prompt-naleving

Een gebied waar Flux potentieel Midjourney overtreft, is prompt-naleving. Black Forest Labs heeft de focus op het verbeteren van het model’s vermogen om tekstprompts nauwkeurig te interpreteren en uit te voeren benadrukt. Dit kan resulteren in gegenereerde afbeeldingen die de bedoelingen van de gebruiker nauwkeuriger weerspiegelen, vooral voor complexe of nuanceuze verzoeken.

Midjourney is soms bekritiseerd voor het nemen van creatieve vrijheden met prompts, wat kan leiden tot prachtige maar onverwachte resultaten. Flux’s benadering kan meer precieze controle over de gegenereerde output bieden.

Snelheid en efficiëntie

Met de introductie van FLUX.1 [schnell] richt Black Forest Labs zich op een van Midjourney’s sleutelvoordelen: snelheid. Midjourney is bekend om zijn snelle generatietijden, wat het populair heeft gemaakt voor iteratieve creatieve processen. Als Flux deze snelheid kan evenaren of overtreffen terwijl de kwaliteit behouden blijft, kan dit een significante verkoopargument zijn.

Toegankelijkheid en gebruiksgemak

Midjourney heeft populariteit gewonnen vanwege zijn gebruikersvriendelijke interface en integratie met Discord. Flux, als nieuwere technologie, kan tijd nodig hebben om soortgelijke toegankelijke interfaces te ontwikkelen. Echter, de open-source aard van FLUX.1 [schnell] en [dev] modellen kan leiden tot een breed scala aan community-ontwikkelde tools en integraties, waardoor het potentieel Midjourney in termen van flexibiliteit en aanpasbaarheid kan overtreffen.

Technische capaciteiten

Flux’s geavanceerde architectuur en grotere modelgrootte suggereren dat het meer brute capaciteit kan hebben om complexe prompts te begrijpen en gedetailleerde details te genereren. De flow-matching benadering en hybride architectuur kunnen Flux in staat stellen om een bredere range aan taken te verwerken en meer diverse output te produceren.

Ethische overwegingen en biasmitigatie

Zowel Flux als Midjourney staan voor de uitdaging om ethische zorgen in AI-gegenereerde beelden aan te pakken, zoals bias, desinformatie en auteursrechtkwesties. Black Forest Labs’ focus op transparantie en hun toewijding om modellen breed toegankelijk te maken, kan potentieel leiden tot robuustere community-toezicht en snellere verbeteringen in deze gebieden.

Code-implementatie en -implementatie

Flux gebruiken met Diffusers

Flux-modellen kunnen eenvoudig worden geïntegreerd in bestaande workflows met behulp van de Hugging Face Diffusers-bibliotheek. Hier is een stap-voor-stap-gids voor het gebruik van FLUX.1 [dev] of FLUX.1 [schnell] met Diffusers:

  1. Installeer eerst de Diffusers-bibliotheek of werk deze bij:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Vervolgens kunt u de FluxPipeline gebruiken om het model uit te voeren:
import torch
from diffusers import FluxPipeline

# Laad het model
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)

# Schakel CPU-offloading in om VRAM te besparen (optioneel)
pipe.enable_model_cpu_offload()

# Genereer een afbeelding
prompt = "Een kat die een bordje vasthoudt met de tekst hallo wereld"
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]

# Sla de gegenereerde afbeelding op
image.save("flux-dev.png")

Deze code laat zien hoe u het FLUX.1 [dev] model kunt laden, een afbeelding kunt genereren vanuit een tekstprompt en het resultaat kunt opslaan.

Flux implementeren als API met LitServe

Voor diegenen die Flux willen implementeren als een schaalbare API-service, biedt Black Forest Labs een voorbeeld met LitServe, een high-performance inference-engine. Hier is een overzicht van het implementatieproces:

Definieer de modelserver:

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):
# Laad modelcomponenten
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)

# Quantize naar 8-bit om op een L4 GPU te passen
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)

# Initialiseer de Flux-pipeline
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"})

# Start de server
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)

Deze code zet een LitServe API voor Flux op, inclusief model laden, aanvraagverwerking, afbeeldingengeneratie en responscodering.

Start de server:

</pre>
python server.py
<pre>

Gebruik de model-API:

U kunt de API testen met een eenvoudige clientscript:

import requests
import json

url = "http://localhost:8000/predict"
prompt = "een robot die in een stoel zit en een schilderij op een ezel schildert van een futuristische stadsgezicht, popart"

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

print("Afbeelding gegenereerd en opgeslagen als generated_image.png")

Sleutelfuncties van de implementatie

  1. Serverless-architectuur: De LitServe-setup stelt schaalbare, serverless implementatie mogelijk die kan schalen tot nul wanneer deze niet in gebruik is.
  2. Private API: U kunt Flux implementeren als een private API op uw eigen infrastructuur.
  3. Multi-GPU-ondersteuning: De setup is ontworpen om efficiënt te werken over meerdere GPU’s.
  4. Quantization: De code demonstreert hoe u het model kunt quantizeren naar 8-bit precisie, waardoor het kan draaien op minder krachtige hardware zoals NVIDIA L4 GPU’s.
  5. CPU-offloading: De enable_model_cpu_offload()-methode wordt gebruikt om GPU-geheugen te besparen door delen van het model naar de CPU te offloaden wanneer deze niet in gebruik zijn.

Praktische toepassingen van Flux

De veelzijdigheid en kracht van Flux openen een breed scala aan potentiële toepassingen over verschillende industrieën:

  1. Creatieve industrie: Grafisch ontwerpers, illustrators en kunstenaars kunnen Flux gebruiken om snel conceptkunst, moodboards en visuele inspiraties te genereren.
  2. Marketing en reclame: Marketeers kunnen aangepaste visuals voor campagnes, sociale media-inhoud en productmockups maken met ongekende snelheid en kwaliteit.
  3. Game-ontwikkeling: Game-ontwerpers kunnen Flux gebruiken om snel omgevingen, personages en assets te prototypen, waardoor het pre-productieproces wordt gestroomlijnd.
  4. Architectuur en interieurontwerp: Architecten en ontwerpers kunnen realistische visualisaties van ruimtes en structuren genereren op basis van tekstuele beschrijvingen.
  5. Onderwijs: Onderwijsinstellingen kunnen aangepaste visuele hulpmiddelen en illustraties maken om leerstof te verbeteren en complexe concepten toegankelijker te maken.
  6. Film en animatie

    : Storyboardkunstenaars en animators kunnen Flux gebruiken om snel scènes en personages te visualiseren, waardoor het previsualisatieproces wordt versneld.

De toekomst van Flux en tekst-naar-afbeeldingsgeneratie

Black Forest Labs heeft duidelijk gemaakt dat Flux slechts het begin is van hun ambities in de generatieve AI-ruimte. Ze hebben plannen aangekondigd om concurrerende generatieve tekst-naar-videosystemen te ontwikkelen, met precieze creatie- en bewerkingsmogelijkheden in hoge definitie en ongekende snelheid.

Dit roadmap suggereert dat Flux niet alleen een los product is, maar deel uitmaakt van een bredere ecosystem van generatieve AI-hulpmiddelen. Naarmate de technologie evolueert, kunnen we verwachten:

  1. Verbeterde integratie: Naadloze workflows tussen tekst-naar-afbeeldings- en tekst-naar-videogeneratie, waardoor complexere en dynamischere inhoud kan worden gemaakt.
  2. Verfijnde aanpassing: Fijnere controle over gegenereerde inhoud, mogelijk door geavanceerde prompt-engineeringtechnieken of intuïtieve gebruikersinterfaces.
  3. Realtime-generatie: Naarmate modellen zoals FLUX.1 [schnell] blijven verbeteren, kunnen we realtime-afbeeldingengeneratie mogelijkheden verwachten die live-inhoudcreatie en interactieve media kunnen revolutioneren.
  4. Cross-modale generatie: De mogelijkheid om inhoud te genereren en te manipuleren over meerdere modaliteiten (tekst, afbeelding, video, audio) in een coherente en geïntegreerde manier.
  5. Verantwoorde AI-ontwikkeling: Voortdurende focus op het ontwikkelen van AI-modellen die niet alleen krachtig zijn, maar ook verantwoord en ethisch verantwoord.

Conclusie: Is Flux beter dan Midjourney?

De vraag of Flux “beter” is dan Midjourney is niet eenvoudig te beantwoorden met een eenvoudig ja of nee. Beide modellen vertegenwoordigen de cutting edge van tekst-naar-afbeeldingstechnologie, elk met zijn eigen sterke punten en unieke kenmerken.

Flux, met zijn geavanceerde architectuur en focus op prompt-naleving, kan meer precieze controle en potentieel hogere kwaliteit bieden in bepaalde scenario’s. Zijn open-source varianten bieden ook kansen voor aanpassing en integratie die waardevol kunnen zijn voor ontwikkelaars en onderzoekers.

Midjourney heeft daarentegen een bewezen trackrecord, een grote en actieve gebruikersbasis en een onderscheidende artistieke stijl die veel gebruikers zijn gaan waarderen. De integratie met Discord en gebruikersvriendelijke interface hebben het toegankelijk gemaakt voor creatieven van alle technische vaardigheidsniveaus.

Uiteindelijk kan het “betere” model afhankelijk zijn van het specifieke use case, persoonlijke voorkeuren en de evoluerende capaciteiten van elk platform. Wat duidelijk is, is dat Flux een significante stap voorwaarts in het veld van generatieve AI vertegenwoordigt, door innovatieve technieken te introduceren en de grenzen van wat mogelijk is in tekst-naar-afbeeldingssynthese te verleggen.

Ik heb de afgelopen vijf jaar mezelf ondergedompeld in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 uiteenlopende software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.