Suivez nous sur

Flux de Black Forest Labs : le prochain pas en avant dans les modèles texte-image. Est-ce mieux que Midjourney ?

Outils IA 101

Flux de Black Forest Labs : le prochain pas en avant dans les modèles texte-image. Est-ce mieux que Midjourney ?

mm
Black Forest Labs Open-Source FLUX.1 : un transformateur de paramètres de 12 milliards capable de gĂ©nĂ©rer des images

Laboratoires de la ForĂŞt-Noire, l'Ă©quipe Ă  l'origine du modèle rĂ©volutionnaire Stable Diffusion, a publiĂ© Flux – une suite de modèles de pointe qui promet de redĂ©finir les capacitĂ©s de l'imagerie gĂ©nĂ©rĂ©e par l'IA. Mais Flux reprĂ©sente-t-il rĂ©ellement une avancĂ©e majeure dans ce domaine, et comment se compare-t-il Ă  des leaders du secteur comme Midjourney ? Plongeons dans l'univers de Flux et explorons son potentiel Ă  remodeler l'avenir de l'art et des mĂ©dias gĂ©nĂ©rĂ©s par l'IA.

La naissance des laboratoires de la ForĂŞt-Noire

Black Forest Labs n'est pas une simple start-up spĂ©cialisĂ©e dans l'IA ; c'est un concentrĂ© de talents reconnu pour le dĂ©veloppement de modèles d'IA gĂ©nĂ©ratifs fondamentaux. L'Ă©quipe comprend les crĂ©ateurs de VQGAN, de Latent Diffusion et de la famille de modèles Stable Diffusion, qui ont rĂ©volutionnĂ© le monde de l'IA artistique.

FLUX.1 open source des laboratoires de la ForĂŞt-Noire

FLUX.1 open source des laboratoires de la ForĂŞt-Noire

Grâce Ă  une ronde de financement de dĂ©marrage de sĂ©rie rĂ©ussie 31 millions de dollars dirigĂ©s par Andreessen Horowitz et le soutien d'investisseurs providentiels notables, Black Forest Labs s'est positionnĂ© Ă  l'avant-garde de la recherche sur l'IA gĂ©nĂ©rative. Leur mission est claire : dĂ©velopper et faire progresser des modèles d'apprentissage profond gĂ©nĂ©ratifs de pointe pour des 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 prĂ©sentĂ© la suite FLUX.1 de modèles texte-image, conçue pour Ă©tablir de nouvelles rĂ©fĂ©rences en matière de dĂ©tail d'image, d'adhĂ©sion rapide, de diversitĂ© de styles et de complexitĂ© des scènes. La famille Flux se compose de trois variantes, chacune adaptĂ©e Ă  diffĂ©rents cas d'utilisation et niveaux d'accessibilitĂ© :

  1. FLUX.1 [pro]Modèle phare, il offre des performances de pointe en matière de génération d'images, avec un suivi des invites, une qualité visuelle, un niveau de détail et une diversité de sortie supérieurs. Disponible via une API, il se positionne comme l'option premium pour les professionnels et les entreprises.
  2. FLUX.1 [dév.]: Un modèle à poids ouvert, basé sur des directives, pour des applications non commerciales. Il est conçu pour offrir une qualité et une adhérence similaires à celles de la version pro, tout en étant plus efficace.
  3. FLUX.1 [image]:Le modèle le plus rapide de la suite, optimisé pour le développement local et l'usage personnel. Disponible en libre accès sous licence Apache 2.0, il est accessible à un large éventail d'applications et d'expériences.

Je fournirai des exemples d'invites uniques et créatives qui illustrent les capacités de FLUX.1. Ces invites mettront en évidence les atouts du modèle dans la gestion du texte, des compositions complexes et des éléments complexes comme les mains.

  • Style artistique mĂŞlĂ© au texte : « CrĂ©ez un portrait de Vincent van Gogh dans son style caractĂ©ristique, mais remplacez sa barbe par des coups de pinceau tourbillonnants qui forment les mots « Nuit Ă©toilĂ©e » en cursive. »
FLUX.1 open source des laboratoires de la ForĂŞt-Noire

FLUX.1 open source des laboratoires de la ForĂŞt-Noire

  • Scène d'action dynamique avec intĂ©gration de texte : « Un super-hĂ©ros explose sur une page de bande dessinĂ©e. Les rĂ©pliques et les effets sonores doivent former le nom du hĂ©ros, « FLUX FORCE Â», en caractères gras et dynamiques. Â»
FLUX.1 open source des laboratoires de la ForĂŞt-Noire

FLUX.1 open source des laboratoires de la ForĂŞt-Noire

  • Concept surrĂ©aliste avec placement prĂ©cis d'objets : « Gros plan d'un chat mignon aux couleurs marron et blanches sous la lumière du soleil d'une fenĂŞtre. Accent mis sur la texture et la couleur des yeux. Un Ă©clairage naturel pour capturer la brillance et la profondeur authentiques des yeux.
FLUX.1 open source des laboratoires de la ForĂŞt-Noire

FLUX.1 open source des laboratoires de la ForĂŞt-Noire

Ces invites sont conçues pour mettre au défi les capacités de FLUX.1 en matière 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 de 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 contemporains :

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

Tous les modèles publics FLUX.1 sont construits sur une architecture hybride qui combine des blocs de transformateurs à diffusion multimodale et parallèle, adaptés à un nombre impressionnant de 12 milliards de paramètres. Cela représente un bond significatif en termes de taille et de complexité du modèle par rapport à de nombreux modèles texte-image existants.

Les modèles Flux améliorent les modèles de diffusion de pointe précédents en incorporant l'appariement de flux, une méthode générale et conceptuellement simple pour former des modèles génératifs. L'appariement de flux fournit un cadre plus flexible pour la modélisation générative, les modèles de diffusion constituant 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 intégrations positionnelles rotatives et des couches d'attention parallèles. Ces techniques permettent une meilleure gestion des relations spatiales dans les images et un traitement plus efficace des données à grande échelle.

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 de diffusion multimodaux et parallèles, Flux peut traiter efficacement les informations textuelles et visuelles, conduisant à un meilleur alignement entre les invites et les images générées.
  2. Correspondance de flux: Cette approche permet une formation plus flexible et efficace des modèles génératifs. Il fournit un cadre unifié qui englobe des modèles de diffusion et d'autres techniques génératives, conduisant potentiellement à une génération d'images plus robuste et plus polyvalente.
  3. Incorporations positionnelles rotatives: Ces intégrations aident le modèle à mieux comprendre et maintenir les relations spatiales au sein des images, ce qui est crucial pour générer un 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 essentiels pour comprendre les relations entre les différents éléments dans les invites textuelles et les images générées.
  5. Mise à l'échelle vers les paramètres 12B: La taille même du modèle lui permet de capturer et de synthétiser des modèles et des relations plus complexes, conduisant potentiellement à des résultats de meilleure qualité et plus diversifiés.

Benchmarking Flux : une nouvelle norme en matière de 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 en matière de synthèse d'images, surpassant les modèles populaires comme Ă€ mi-parcours v6.0, DALL·E 3 (HD) et SD3-Ultra dans plusieurs aspects clĂ©s :

  1. Qualité visuelle: Flux vise à produire des images avec une plus grande fidélité, des détails plus réalistes et un meilleur attrait esthétique global.
  2. Suivi rapide:Le modèle est conçu pour adhérer plus étroitement aux invites de texte données, générant des images qui reflètent plus précisément les intentions de l'utilisateur.
  3. Variabilité de taille/aspect: Flux prend en charge une large gamme de formats d'image et de résolutions, 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 en matière de génération et de rendu de texte dans les images, un défi commun à de nombreux modèles texte-image.
  5. Diversité des résultats: Flux est spécifiquement optimisé pour préserver toute la diversité des résultats issus de la pré-formation, offrant ainsi un plus large éventail 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 Ă€ mi-parcours? Pour rĂ©pondre Ă  cette question, 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é et visuellement époustouflantes. Midjourney a été salué 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 maîtrise de l'éclairage et de la composition. Cependant, la nature subjective de l’art fait qu’il est difficile de revendiquer définitivement une supériorité dans ce domaine. Les utilisateurs peuvent constater que chaque modèle a ses atouts dans différents styles ou types d'images.

Adhésion rapide

Un domaine dans lequel Flux pourrait potentiellement se démarquer À mi-parcours est en conformité avec les instructions. Black Forest Labs a mis l'accent sur l'amélioration de la capacité du modèle à interpréter et à exécuter avec précision les instructions données. Cela pourrait permettre de générer des images plus fidèles aux intentions de l'utilisateur, notamment pour les requêtes complexes ou nuancées.

À mi-parcours a parfois été critiqué pour ses libertés créatives avec les invites, ce qui peut conduire à des résultats magnifiques mais inattendus. L'approche de Flux pourrait offrir un contrôle plus précis sur le résultat généré.

Rapidité et Efficacité

Avec l'introduction de FLUX.1 [rapidement], Black Forest Labs cible l'un des principaux atouts de Midjourney : la rapiditĂ©. Midjourney est rĂ©putĂ© pour ses temps de gĂ©nĂ©ration rapides, ce qui le rend populaire pour les processus crĂ©atifs itĂ©ratifs. Si Flux parvient Ă  Ă©galer, voire Ă  dĂ©passer, cette vitesse tout en maintenant la qualitĂ©, cela pourrait constituer un argument de vente majeur.

Accessibilité et facilité d'utilisation

Midjourney a gagné en popularité en partie grâce à son interface conviviale et à son intégration avec Discord. Flux, étant plus récent, peut avoir besoin de temps pour développer des interfaces tout aussi accessibles. 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é, dépassant potentiellement Midjourney en termes de flexibilité et d'options de personnalisation.

Capacités techniques

L'architecture avancée de Flux et la taille plus importante de son modèle suggèrent qu'il pourrait offrir des capacités brutes plus importantes en termes de compréhension d'invites complexes et de génération de détails complexes. L'approche de correspondance de flux et l'architecture hybride pourraient permettre à Flux de gérer un plus large éventail de tâches et de générer des résultats plus diversifiés.

Considérations éthiques et atténuation des préjugés

Flux et Midjourney sont tous deux confrontés au défi de répondre aux préoccupations éthiques liées aux images générées par l'IA, telles que les biais, la désinformation et les 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 rigoureuse et à des améliorations plus rapides dans ces domaines.

Implémentation et déploiement du code

Utiliser Flux avec des diffuseurs

Les modèles de flux peuvent ĂŞtre facilement intĂ©grĂ©s aux flux de travail existants Ă  l'aide du Bibliothèque de diffuseurs câlins pour le visageVoici un guide Ă©tape par Ă©tape pour utiliser FLUX.1 [dev] ou FLUX.1 [schnell] avec des diffuseurs :

  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

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

# Enable CPU offloading to save VRAM (optional)
pipe.enable_model_cpu_offload()

# Generate an image
prompt = "A cat holding a sign that says hello world"
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]

# Save the generated image
image.save("flux-dev.png")

Cet extrait de code montre comment charger le modèle FLUX.1 [dev], générer une image à partir d'une invite de texte et enregistrer le résultat.

Déployer Flux en tant qu'API avec LitServe

Pour ceux qui souhaitent dĂ©ployer Flux comme service API Ă©volutif, Black Forest Labs propose un exemple utilisant LitServe, un moteur d'infĂ©rence haute performance. Voici le dĂ©tail du processus de dĂ©ploiement :

DĂ©finissez le serveur modèle :

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):
        # Load model components
        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 to 8-bit to fit on an L4 GPU
        quantize(transformer, weights=qfloat8)
        freeze(transformer)
        quantize(text_encoder_2, weights=qfloat8)
        freeze(text_encoder_2)

        # Initialize the 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 the server
if __name__ == "__main__":
    api = FluxLitAPI()
    server = ls.LitServer(api, timeout=False)
    server.run(port=8000)

Ce code configure une 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Ă©marrez le serveur :

</pre>
python server.py
<pre>

Utilisez l'API du modèle :

Vous pouvez tester l'API Ă  l'aide d'un simple script client :

import requests
import json

url = "http://localhost:8000/predict"
prompt = "a robot sitting in a chair painting a picture on an easel of a futuristic cityscape, pop art"

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

print("Image generated and saved as generated_image.png")

Principales caractéristiques du déploiement

  1. Architecture sans serveur: Les LitServe la configuration permet un déploiement évolutif et sans serveur qui peut atteindre 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 montre comment quantifier le modèle avec une précision de 8 bits, lui permettant de fonctionner sur du matériel moins puissant comme les GPU NVIDIA L4.
  5. Déchargement du processeur: Les enable_model_cpu_offload() La méthode est utilisée pour conserver la mémoire GPU en déchargeant des parties du modèle vers le CPU lorsqu'elles ne sont pas utilisées.

Applications pratiques du flux

La polyvalence et la puissance de Flux ouvrent un large Ă©ventail d'applications potentielles dans diverses industries :

  1. Industries créatives: Les graphistes, illustrateurs et artistes peuvent utiliser Flux pour générer rapidement des concepts artistiques, des moodboards et des inspirations visuelles.
  2. Marketing & publicité: Les spécialistes du marketing peuvent créer des visuels personnalisés pour les campagnes, le contenu des réseaux sociaux et les maquettes de produits avec une rapidité et une qualité sans précédent.
  3. Développement de jeu: Les concepteurs de jeux peuvent utiliser Flux pour prototyper rapidement des environnements, des personnages et des ressources, rationalisant ainsi le processus de pré-production.
  4. Architecture et design d'intérieur: Les architectes et les concepteurs peuvent générer des visualisations réalistes d'espaces et de structures basées sur des descriptions textuelles.
  5. Education: Les enseignants peuvent créer des aides visuelles et des illustrations personnalisées pour améliorer le matériel d'apprentissage et rendre les concepts complexes plus accessibles.
  6. Film et animation: Les artistes et animateurs de storyboard peuvent utiliser Flux pour visualiser rapidement des scènes et des personnages, accélérant ainsi le processus de pré-visualisation.

L'avenir du flux et de la génération de texte en image

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

Cette feuille de route suggère que Flux n'est pas seulement 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: Flux de travail transparents entre la génération texte-image et texte-vidéo, permettant une création de contenu plus complexe et dynamique.
  2. Personnalisation améliorée: Contrôle plus précis du contenu généré, éventuellement grâce à des techniques avancées d'ingénierie d'invite 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 multimodale: La capacité de générer et de manipuler du contenu selon plusieurs modalités (texte, image, vidéo, audio) de manière cohérente et intégrée.
  5. Développement éthique de l'IA: Continuer à se concentrer sur le développement de modèles d’IA qui soient non seulement puissants, mais également responsables et éthiquement solides.

Conclusion : le flux est-il meilleur que le milieu du voyage ?

La question de savoir si Flux est « meilleur » que Midjourney n’est pas facile à répondre par un simple oui ou par non. Les deux modèles représentent la pointe de la technologie de génération de texte en image, chacun avec ses propres atouts et caractéristiques uniques.

Flux, avec son architecture avancée et l'accent mis sur une adhésion rapide, peut offrir un contrôle plus précis et une qualité potentiellement supérieure dans certains scénarios. Ses variantes open source offrent également des opportunités de personnalisation et d’intégration qui pourraient s’avérer très utiles pour les développeurs et les chercheurs.

À mi-parcours, d’autre part, a une expérience éprouvée, une base d’utilisateurs large et active et un style artistique distinctif que de nombreux utilisateurs adorent. Son intégration avec Discord et son interface conviviale le rendent hautement accessible aux créatifs de tous niveaux de compétences techniques.

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. Il est clair que Flux représente une avancée significative dans le domaine de l'IA générative, en introduisant des techniques innovantes et en repoussant les limites du possible en matière de synthèse texte-image.

J'ai passé les cinq dernières années à m'immerger dans le monde fascinant du Machine Learning et du Deep Learning. Ma passion et mon expertise m'ont amené à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique du langage naturel, un domaine que j'ai hâte d'explorer davantage.