Outils d’IA 101

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

mm
Ajouter Unite.AI à vos sources préférées sur Google
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 progrès 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 IA ; c’est un pôle de talents avec un parcours de développement de modèles de génération fondamentaux. L’équipe comprend les créateurs de VQGAN, Latent Diffusion et de la famille de modèles de diffusion stable qui ont pris d’assaut le monde de l’art IA.

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 de notables investisseurs providentiels, Black Forest Labs s’est positionné à 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çus 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 aux invites supérieure, 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 à poids ouverts, distillé pour des applications non commerciales. Il est conçu pour atteindre une qualité et une adhérence aux invites similaires à celles de 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, ce qui le rend accessible pour une large gamme d’applications et d’expériences.

Je vais fournir des exemples de invites uniques et créatifs qui mettent en valeur les capacités de FLUX.1. Ces invites mettront en évidence les forces du modèle dans la gestion du texte, les compositions complexes et les éléments difficiles tels que les mains.

  • Fusion de style artistique avec du texte : « Créez un portrait de Vincent van Gogh dans son style signature, mais remplacez sa barbe par des coups de pinceau tourbillonnants qui forment les mots ‘Starry Night’ en cursif ».
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Scène d’action dynamique avec intégration de texte : « Un super-héros qui perce une page de bande dessinée. Les lignes d’action et les effets sonores doivent former le nom du héros ‘FLUX FORCE’ en typographie dynamique et gras ».
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Concept surréaliste avec placement d’objets précis : « Gros plan d’un chat mignon aux couleurs brunes et blanches sous la lumière du soleil à travers une fenêtre. Focus net sur la texture et la couleur de l’œil. Éclairage naturel pour capturer l’éclat et la profondeur authentiques de l’œil ».
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Ces invites sont conçues pour mettre à l’épreuve les capacités de FLUX.1 dans le rendu de texte, la composition de scènes complexes et la 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 de transformateurs multimodaux et parallèles, mis à l’échelle à 12 milliards de paramètres. Cela représente un saut 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 incrustations de position rotative et des couches d’attention parallèles. Ces techniques permettent une meilleure prise en charge 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 transformateurs 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 plus efficace des 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. Incrustations de position rotative : Ces incrustations 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. Mise à l’échelle à 12 milliards de paramètres : La taille considérable 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.

Benchmarks de Flux : une nouvelle référence en 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 références en 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 un attrait esthétique global amélioré.
  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 et d’aspect : Flux prend en charge une gamme diversifiée de rapports d’aspect et de résolutions, allant de 0,1 à 2,0 mégapixels, offrant de la flexibilité pour divers cas d’utilisation.
  4. Typographie : Le modèle montre des capacités améliorées pour la génération et le rendu de texte au sein des images, un défi courant 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 l’entraînement préalable, offrant un éventail 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é d’image et esthétique

Flux et Midjourney sont tous deux connus pour produire des images de haute qualité, 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 sa plus grande taille de modèle, 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’une 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 surpasser Midjourney est l’adhérence aux invites. Black Forest Labs a mis l’accent sur son engagement à améliorer 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 correspondent plus étroitement aux 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 pourrait 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 en a fait un outil 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 grâce à son interface utilisateur conviviale et à 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 d’options de personnalisation et de flexibilité.

Capacités techniques

L’architecture avancée de Flux et sa plus grande taille de modèle suggèrent qu’il pourrait avoir plus de capacités brutes pour comprendre des invites complexes et générer des 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

Flux et Midjourney sont tous deux 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.

Implémentation de code et déploiement

Utilisation de Flux avec Diffusers

Les modèles Flux peuvent être intégrés facilement 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 à niveau 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

<p># Chargez le modèle
pipe = FluxPipeline.from_pretrained(&quot;black-forest-labs/FLUX.1-dev&quot;, torch_dtype=torch.bfloat16)</p>

<p># Activez le déchargement du modèle sur le CPU pour économiser la VRAM (facultatif)
pipe.enable_model_cpu_offload()</p>

<p># Générez une image
prompt = &quot;Un chat tenant un panneau qui dit bonjour le monde&quot;
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type=&quot;pil&quot;,
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator(&quot;cpu&quot;).manual_seed(0)
).images[0]</p>

<p># Enregistrez l'image générée
image.save(&quot;flux-dev.png&quot;)

Ce code snippet 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 en utilisant LitServe, un moteur d’inférence de haute performance. Voici une description du processus de déploiement :

Définir 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

<p>class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# Chargez les composants du modèle
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained(&quot;black-forest-labs/FLUX.1-schnell&quot;, subfolder=&quot;scheduler&quot;)
text_encoder = CLIPTextModel.from_pretrained(&quot;openai/clip-vit-large-patch14&quot;, torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained(&quot;openai/clip-vit-large-patch14&quot;, torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained(&quot;black-forest-labs/FLUX.1-schnell&quot;, subfolder=&quot;text_encoder_2&quot;, torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained(&quot;black-forest-labs/FLUX.1-schnell&quot;, subfolder=&quot;tokenizer_2&quot;, torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained(&quot;black-forest-labs/FLUX.1-schnell&quot;, subfolder=&quot;vae&quot;, torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained(&quot;black-forest-labs/FLUX.1-schnell&quot;, subfolder=&quot;transformer&quot;, torch_dtype=torch.bfloat16)</p>

<p># Quantifiez à 8 bits pour tenir sur une carte graphique L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>

<p># Initialisation du 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()</p>

<p>def decode_request(self, request):
return request[&quot;prompt&quot;]</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=&quot;PNG&quot;)
return Response(content=buffered.getvalue(), headers={&quot;Content-Type&quot;: &quot;image/png&quot;})</p>

<p># Démarrez le serveur
if __name__ == &quot;__main__&quot;:
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>

Ce code configure un serveur d’API 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émarrer le serveur :

&lt;/pre&gt;
python server.py
&lt;pre&gt;

Utiliser l’API de modèle :

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

import requests
import json

<p>url = &quot;http://localhost:8000/predict&quot;
prompt = &quot;un robot assis sur une chaise peignant une image sur un chevalet d'une ville futuriste, pop art&quot;</p>

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

<p>print(&quot;Image générée et enregistrée sous generated_image.png&quot;)</p>

Caractéristiques 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 à 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 de plusieurs GPU : La configuration est conçue pour fonctionner efficacement sur plusieurs GPU.
  4. Quantification : Le code montre comment quantifier le modèle à une précision de 8 bits, ce qui le rend capable de fonctionner sur un matériel moins puissant comme les GPU L4.
  5. Déchargement du CPU : La méthode enable_model_cpu_offload() est utilisée pour conserver la mémoire de la carte graphique 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 de possibilités d’applications dans diverses industries :

  1. Industries créatives : Les graphistes, les illustrateurs et les artistes peuvent utiliser Flux pour générer rapidement des arts de conception, 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 prototyper rapidement des environnements, des personnages et des actifs, rationalisant 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 et des illustrations pour améliorer les matériaux d’apprentissage 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 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 faille entre la génération d’images à partir de texte et la génération de vidéo à partir de texte, permettant la création de contenus plus complexes et dynamiques.
  2. Personnalisation améliorée : Un contrôle plus fin sur le contenu généré, possiblement grâce à 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 à 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 : Un engagement continu à développer des 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 facile à répondre 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 propres forces et 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 des capacités évolutives de chaque plateforme. Ce qui est clair, c’est que Flux représente un progrès 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 à plonger dans le monde fascinant de l'apprentissage automatique et du deep learning. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un focus particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en profondeur.