Connect with us

Flux par Black Forest Labs : Le prochain bond en avant dans les modèles d’image à texte. Est-il meilleur que Midjourney ?

Outils d’IA 101

Flux par Black Forest Labs : Le prochain bond en avant dans les modèles d’image à texte. Est-il meilleur que Midjourney ?

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

Black Forest Labs, l’équipe derrière le modèle de diffusion stable révolutionnaire, a publié Flux – une suite de modèles d’état de l’art qui promettent de redéfinir les capacités de l’imagerie générée par IA. Mais Flux représente-t-il vraiment un bond en avant dans le domaine, et comment se compare-t-il aux leaders de l’industrie comme Midjourney ? Plongeons dans le monde de Flux et explorons son potentiel pour façonner l’avenir de l’art et des médias générés par IA.

La naissance de Black Forest Labs

Black Forest Labs n’est pas juste une autre startup d’IA ; c’est une puissance de talent avec un historique de développement de modèles d’IA génératifs fondamentaux. L’équipe comprend les créateurs de VQGAN, Latent Diffusion et de la famille de modèles de diffusion stable qui ont pris le monde de l’art d’IA d’assaut.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Avec un cycle de financement de série Seed de 31 millions de dollars mené par Andreessen Horowitz et le soutien d’investisseurs providentiels notables, Black Forest Labs s’est positionnée à la pointe de la recherche en IA générative. Leur mission est claire : développer et faire progresser des modèles d’apprentissage profond génératif d’état de l’art pour les médias tels que les images et les vidéos, tout en repoussant les limites de la créativité, de l’efficacité et de la diversité.

Présentation de la famille de modèles Flux

Black Forest Labs a introduit la suite de modèles d’image à texte FLUX.1, conçue pour établir de nouvelles références en termes de détail d’image, d’adhérence aux invites, de diversité de style et de complexité de scène. La famille Flux se compose de trois variantes, chacune adaptée à des cas d’utilisation et à des niveaux d’accessibilité différents :

  1. FLUX.1 [pro] : Le modèle phare, offrant des performances de premier plan dans la génération d’images avec une adhérence supérieure aux invites, une qualité visuelle, des détails d’image et une diversité de sortie. Disponible via une API, il est positionné comme l’option premium pour une utilisation professionnelle et d’entreprise.
  2. FLUX.1 [dev] : Un modèle distillé à poids ouverts pour des applications non commerciales. Il est conçu pour atteindre une qualité et des capacités d’adhérence aux invites similaires à la version pro, tout en étant plus efficace.
  3. FLUX.1 [schnell] : Le modèle le plus rapide de la suite, optimisé pour le développement local et l’utilisation personnelle. Il est ouvertement disponible sous licence Apache 2.0, le rendant accessible pour une large gamme d’applications et d’expériences.

Je fournirai des exemples d’invites créatifs et uniques qui mettent en valeur les capacités de FLUX.1. Ces invites seront conçues pour mettre à l’épreuve les capacités de FLUX.1 en termes de rendu de texte, de composition de scènes complexes et de création d’objets détaillés, tout en mettant en valeur son potentiel pour la génération d’images créatives et uniques.

Innovations techniques derrière Flux

Au cœur des capacités impressionnantes de Flux se trouve une série d’innovations techniques qui le distinguent de ses prédécesseurs et de ses contemporains :

Modèles de flux alimentés par des transformateurs à grande échelle

Tous les modèles FLUX.1 publics sont construits sur une architecture hybride qui combine des blocs de diffusion multimodaux et parallèles, étendus à 12 milliards de paramètres. Cela représente un bond en avant significatif en termes de taille et de complexité du modèle par rapport à de nombreux modèles d’image à texte existants.

Les modèles Flux améliorent les modèles de diffusion d’état de l’art précédents en intégrant la correspondance de flux, une méthode générale et conceptuellement simple pour la formation de modèles génératifs. La correspondance de flux fournit un cadre plus flexible pour la modélisation générative, les modèles de diffusion étant un cas particulier dans cette approche plus large.

Pour améliorer les performances du modèle et l’efficacité du matériel, Black Forest Labs a intégré des embeddings de position rotationnels et des couches d’attention parallèles. Ces techniques permettent une meilleure gestion des relations spatiales dans les images et un traitement plus efficace de grandes quantités de données.

Innovations architecturales

Décomposons certains des éléments architecturaux clés qui contribuent aux performances de Flux :

  1. Architecture hybride : En combinant des blocs de diffusion multimodaux et parallèles, Flux peut traiter efficacement à la fois les informations textuelles et visuelles, conduisant à une meilleure correspondance entre les invites et les images générées.
  2. Correspondance de flux : Cette approche permet une formation plus flexible et efficace de modèles génératifs. Elle fournit un cadre unifié qui englobe les modèles de diffusion et d’autres techniques génératives, pouvant potentiellement conduire à une génération d’images plus robuste et plus polyvalente.
  3. Embeddings de position rotationnels : Ces embeddings aident le modèle à mieux comprendre et à maintenir les relations spatiales au sein des images, ce qui est crucial pour la génération de contenu visuel cohérent et détaillé.
  4. Couches d’attention parallèles : Cette technique permet un traitement plus efficace des mécanismes d’attention, qui sont critiques pour la compréhension des relations entre différents éléments dans les invites textuelles et les images générées.
  5. Échelle à 12 milliards de paramètres : La taille du modèle lui permet de capturer et de synthétiser des modèles et des relations plus complexes, conduisant potentiellement à des sorties de plus haute qualité et plus diversifiées.

Évaluation de Flux : une nouvelle norme dans la synthèse d’images

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

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

Black Forest Labs affirme que FLUX.1 établit de nouvelles normes dans la synthèse d’images, surpassant des modèles populaires comme Midjourney v6.0, DALL·E 3 (HD) et SD3-Ultra dans plusieurs aspects clés :

  1. Qualité visuelle : Flux vise à produire des images avec une fidélité plus élevée, des détails plus réalistes et une meilleure attractivité esthétique globale.
  2. Adhérence aux invites : Le modèle est conçu pour adhérer plus étroitement aux invites textuelles données, générant des images qui reflètent plus précisément les intentions de l’utilisateur, en particulier pour des demandes complexes ou nuancées.
  3. Variabilité de taille/aspect : Flux prend en charge une gamme diversifiée de ratios d’aspect et de résolutions, allant de 0,1 à 2,0 mégapixels, offrant une flexibilité pour divers cas d’utilisation.
  4. Typographie : Le modèle montre des capacités améliorées pour générer et rendre du texte au sein des images, un défi commun pour de nombreux modèles d’image à texte.
  5. Diversité de sortie : Flux est spécifiquement affiné pour préserver la diversité totale de sortie de la préformation, offrant une gamme plus large de possibilités créatives.

Flux vs. Midjourney : une analyse comparative

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

Maintenant, abordons la question brûlante : Flux est-il meilleur que Midjourney ? Pour répondre à cela, nous devons considérer plusieurs facteurs :

Qualité et esthétique des images

Les deux modèles, Flux et Midjourney, sont connus pour produire des images de haute qualité et visuellement époustouflantes. Midjourney a été loué pour son flair artistique et sa capacité à créer des images avec un attrait esthétique distinct. Flux, avec son architecture avancée et son plus grand nombre de paramètres, vise à égaler ou à dépasser ce niveau de qualité.

Les premiers exemples de Flux montrent des détails impressionnants, des textures réalistes et une solide compréhension de l’éclairage et de la composition. Cependant, la nature subjective de l’art rend difficile l’affirmation définitive de la supériorité dans ce domaine. Les utilisateurs peuvent constater que chaque modèle a ses forces dans différents styles ou types d’images.

Adhérence aux invites

Un domaine où Flux pourrait potentiellement devancer Midjourney est dans l’adhérence aux invites. Black Forest Labs a mis l’accent sur son focus sur l’amélioration de la capacité du modèle à interpréter et à exécuter avec précision les invites données. Cela pourrait aboutir à des images générées qui reflètent plus étroitement les intentions de l’utilisateur, en particulier pour des demandes complexes ou nuancées.

Midjourney a parfois été critiqué pour prendre des libertés créatives avec les invites, ce qui peut conduire à des résultats beaux mais inattendus. L’approche de Flux peut offrir un contrôle plus précis sur la sortie générée.

Vitesse et efficacité

Avec l’introduction de FLUX.1 [schnell], Black Forest Labs vise l’un des avantages clés de Midjourney : la vitesse. Midjourney est connu pour ses temps de génération rapides, ce qui l’a rendu populaire pour les processus créatifs itératifs. Si Flux peut égaler ou dépasser cette vitesse tout en maintenant la qualité, cela pourrait être un argument de vente significatif.

Accessibilité et facilité d’utilisation

Midjourney a gagné en popularité en partie en raison de son interface utilisateur conviviale et de son intégration avec Discord. Flux, étant plus récent, peut avoir besoin de temps pour développer des interfaces similaires. Cependant, la nature open-source des modèles FLUX.1 [schnell] et [dev] pourrait conduire à une large gamme d’outils et d’intégrations développés par la communauté, potentiellement surpassant Midjourney en termes de flexibilité et d’options de personnalisation.

Capacités techniques

L’architecture avancée de Flux et sa plus grande taille de modèle suggèrent qu’il peut avoir plus de capacités brutes en termes de compréhension d’invites complexes et de génération de détails intriqués. L’approche de correspondance de flux et l’architecture hybride pourraient permettre à Flux de gérer une plus large gamme de tâches et de générer des sorties plus diversifiées.

Considérations éthiques et mitigation des biais

Les deux modèles, Flux et Midjourney, sont confrontés au défi de répondre aux préoccupations éthiques dans l’imagerie générée par IA, telles que les biais, la désinformation et les problèmes de droits d’auteur. L’accent mis par Black Forest Labs sur la transparence et son engagement à rendre les modèles largement accessibles pourraient potentiellement conduire à une surveillance communautaire plus robuste et à des améliorations plus rapides dans ces domaines.

Mise en œuvre et déploiement de Flux

Utilisation de Flux avec Diffusers

Les modèles Flux peuvent être facilement intégrés dans les flux de travail existants en utilisant la bibliothèque Hugging Face Diffusers. Voici un guide étape par étape pour utiliser FLUX.1 [dev] ou FLUX.1 [schnell] avec Diffusers :

  1. Tout d’abord, installez ou mettez à jour la bibliothèque Diffusers :
!pip install git+https://github.com/huggingface/diffusers.git
  1. Ensuite, vous pouvez utiliser le FluxPipeline pour exécuter le modèle :
import torch
from diffusers import FluxPipeline

# Chargez le modèle
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)

# Activez le déchargement sur CPU pour économiser la VRAM (facultatif)
pipe.enable_model_cpu_offload()

# Générez une image
prompt = "Un chat tenant un panneau qui dit bonjour le monde"
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]

# Enregistrez l'image générée
image.save("flux-dev.png")

Ce snippet de code démontre comment charger le modèle FLUX.1 [dev], générer une image à partir d’une invite textuelle et enregistrer le résultat.

Déploiement de Flux en tant qu’API avec LitServe

Pour ceux qui souhaitent déployer Flux en tant que service d’API évolutif, Black Forest Labs fournit un exemple utilisant LitServe, un moteur d’inférence de haute performance. Voici une présentation du processus de déploiement :

Définissez le serveur de modèles :

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):
# Chargez les composants du modèle
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)

# Quantifiez à 8 bits pour tenir sur un GPU L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)

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

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"})

# Démarrez le serveur
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)

Ce code configure un serveur LitServe pour Flux, y compris le chargement du modèle, la gestion des requêtes, la génération d’images et l’encodage des réponses.

Démarrage du serveur :

python server.py

Utilisation du modèle API :

Vous pouvez tester l’API en utilisant un script client simple :

import requests
import json

url = "http://localhost:8000/predict"
prompt = "un robot assis sur une chaise peignant une image sur une toile d'un paysage urbain futuriste, pop art"

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

print("Image générée et enregistrée sous generated_image.png")

Fonctionnalités clés du déploiement

  1. Architecture sans serveur : La configuration LitServe permet un déploiement évolutif et sans serveur qui peut être mis à l’échelle jusqu’à zéro lorsqu’il n’est pas utilisé.
  2. API privée : Vous pouvez déployer Flux en tant qu’API privée sur votre propre infrastructure.
  3. Prise en charge multi-GPU : La configuration est conçue pour fonctionner efficacement sur plusieurs GPU.
  4. Quantification : Le code démontre comment quantifier le modèle à une précision de 8 bits, permettant ainsi de le faire fonctionner sur un matériel moins puissant comme les GPU L4.
  5. Déchargement sur CPU : La méthode enable_model_cpu_offload() est utilisée pour conserver la mémoire GPU en déchargeant les parties du modèle sur le CPU lorsqu’elles ne sont pas utilisées.

Applications pratiques de Flux

La polyvalence et la puissance de Flux ouvrent un large éventail d’applications potentielles dans diverses industries :

  1. Industries créatives : Les graphistes, les illustrateurs et les artistes peuvent utiliser Flux pour générer rapidement de l’art conceptuel, des planches de mood et des inspirations visuelles.
  2. Marketing et publicité : Les marketeurs peuvent créer des visuels personnalisés pour les campagnes, le contenu des médias sociaux et les maquettes de produits avec une vitesse et une qualité sans précédent.
  3. Développement de jeux : Les concepteurs de jeux peuvent utiliser Flux pour rapidement prototyper des environnements, des personnages et des actifs, rationalisant ainsi le processus de préproduction.
  4. Architecture et design d’intérieur : Les architectes et les designers peuvent générer des visualisations réalistes d’espaces et de structures basées sur des descriptions textuelles.
  5. Éducation : Les éducateurs peuvent créer des aides visuelles personnalisées pour les matériaux pédagogiques et rendre les concepts complexes plus accessibles.
  6. Cinéma et animation : Les artistes de storyboard et les animateurs peuvent utiliser Flux pour visualiser rapidement des scènes et des personnages, accélérant ainsi le processus de prévisualisation.

L’avenir de Flux et de la génération d’images à partir de texte

Black Forest Labs a clairement indiqué que Flux n’est que le début de ses ambitions dans l’espace de l’IA générative. Ils ont annoncé des plans pour développer des systèmes de génération de texte à vidéo compétitifs, promettant des capacités de création et d’édition précises à haute définition et à une vitesse sans précédent.

Cette feuille de route suggère que Flux n’est pas juste un produit autonome mais fait partie d’un écosystème plus large d’outils d’IA générative. À mesure que la technologie évolue, nous pouvons nous attendre à voir :

  1. Intégration améliorée : Des flux de travail sans interruption entre la génération d’images à partir de texte et la génération de vidéo à partir de texte, permettant une création de contenu plus complexe et dynamique.
  2. Personnalisation améliorée : Un contrôle plus fin sur le contenu généré, potentiellement via des techniques avancées d’ingénierie d’invites ou des interfaces utilisateur intuitives.
  3. Génération en temps réel : À mesure que des modèles comme FLUX.1 [schnell] continuent de s’améliorer, nous pourrions voir des capacités de génération d’images en temps réel qui pourraient révolutionner la création de contenu en direct et les médias interactifs.
  4. Génération cross-modale : La capacité de générer et de manipuler du contenu à travers plusieurs modalités (texte, image, vidéo, audio) de manière cohérente et intégrée.
  5. Développement d’IA éthique : Une attention continue portée au développement de modèles d’IA qui ne sont pas seulement puissants mais également responsables et éthiquement sains.

Conclusion : Flux est-il meilleur que Midjourney ?

La question de savoir si Flux est “meilleur” que Midjourney n’est pas facilement répondue par un simple oui ou non. Les deux modèles représentent la pointe de la technologie de génération d’images à partir de texte, chacun avec ses forces et ses caractéristiques uniques.

Flux, avec son architecture avancée et son accent sur l’adhérence aux invites, peut offrir un contrôle plus précis et potentiellement une qualité plus élevée dans certains scénarios. Ses variantes open-source offrent également des opportunités de personnalisation et d’intégration qui pourraient être très précieuses pour les développeurs et les chercheurs.

Midjourney, d’un autre côté, a un historique éprouvé, une grande et active base d’utilisateurs, et un style artistique distinct que de nombreux utilisateurs sont venus à aimer. Son intégration avec Discord et son interface utilisateur conviviale l’ont rendu très accessible aux créatifs de tous niveaux de compétence technique.

En fin de compte, le “meilleur” modèle peut dépendre du cas d’utilisation spécifique, des préférences personnelles et de l’évolution des capacités de chaque plateforme. Ce qui est clair, c’est que Flux représente un bond en avant significatif dans le domaine de l’IA générative, introduisant des techniques innovantes et repoussant les limites de ce qui est possible dans la synthèse d’images à partir de texte.

J'ai passé les cinq dernières années à me plonger dans le monde fascinant de l'apprentissage automatique et de l'apprentissage profond. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité permanente m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en détail.