Guides d'entraînement LoRA AI Toolkit

Guide d'entraînement LoRA FLUX.2 [dev] avec Ostris AI Toolkit

Cet article montre, étape par étape, comment fine-tuner FLUX.2 [dev] avec LoRA via Ostris AI Toolkit. Vous découvrirez ce qui rend FLUX.2 unique, comment son double transformer et son text encoder influencent le rank LoRA et la VRAM, et comment construire des datasets et configs d'entraînement efficaces, de 24GB jusqu'aux GPUs H100/H200.

Entraînez des modèles de diffusion avec Ostris AI Toolkit

Faites défiler horizontalement pour voir le formulaire complet

Ostris AI ToolkitOstrisAI-Toolkit

New Training Job

Job

Model

Quantization

Target

Save

Training

Datasets

Dataset 1

Sample

L'Entraînement LoRA FLUX.2 [dev] est très différent de l'entraînement des anciens modèles SD. FLUX.2 [dev] combine un énorme transformer à flux rectifié de 32B paramètres, un encodeur de texte Mistral de 24B et un autoencoder de haute qualité. Il gère la génération texte-vers-image et l'édition d'images dans un seul checkpoint. Ce guide couvre :

  • Ce qui rend FLUX.2 [dev] spécial
  • Comment ces choix de conception affectent l'entraînement LoRA
  • Comment configurer AI Toolkit pour différents niveaux de matériel
  • Comment configurer les datasets, déclencheurs et paramètres pour obtenir le style / personnage / comportement d'édition souhaité

Cet article fait partie de la série d'entraînement LoRA AI Toolkit. Si vous êtes nouveau sur Ostris AI Toolkit, commencez par la vue d'ensemble de l'entraînement LoRA AI Toolkit avant de plonger dans ce tutoriel LoRA FLUX 2 dev.

Table des matières


1. Comprendre FLUX.2 [dev] pour l'entraînement LoRA

Avant de toucher aux curseurs, il est utile de comprendre ce que vous affinez.

1.1 Architecture de haut niveau

D'après la fiche officielle du modèle FLUX.2-dev et l'annonce de Black Forest Labs :

  • Modèle de base

    FLUX.2 [dev] est un transformer à flux rectifié de 32B paramètres (un modèle de flux latent de style DiT) entraîné from scratch, pas une continuation de FLUX.1. Il combine la génération texte-vers-image et l'édition d'images (image unique et multi-référence) dans un seul checkpoint.

  • Encodeur de texte

    FLUX.2 [dev] utilise Mistral Small 3.1 / 3.2 – 24B comme encodeur de texte vision-langage. Ce sont 24B paramètres supplémentaires en plus des 32B du DiT. En précision normale, cela seul consomme une énorme partie de la VRAM et joue un rôle central dans le comportement du modèle.

  • Autoencoder (VAE)

    Le modèle utilise un nouveau AutoencoderKLFlux2 avec 32 canaux latents (FLUX.1 en utilisait 16). Il est conçu pour l'édition haute résolution et la préservation fine des textures, c'est pourquoi FLUX.2 peut faire des éditions nettes à 1024×1024.

  • Génération + édition unifiées

    La même architecture gère le texte-vers-image pur, l'édition d'image unique et l'édition multi-référence (jusqu'à environ 10 images de référence). Il n'y a pas de branche séparée "édition uniquement" ; c'est un seul réseau.

  • Guidance distillé

    FLUX.2 [dev] est un modèle guidance-distillé : il n'y a pas de guidance classique sans classifieur avec des passes séparées "conditionnelle" et "inconditionnelle". Le "guidance" est intégré dans une seule passe forward.

Ce que cela signifie pour LoRA :

  1. Le transformer central est énorme.

    Parce que FLUX.2 [dev] utilise un transformer fusionné de haute capacité, le rang LoRA doit être choisi avec soin. Des rangs très bas (4–8) peuvent à peine faire bouger les choses.

  2. L'encodeur de texte est lourd et central pour le comportement.

    Le VLM Mistral de ~24B est responsable de la façon dont les prompts sont compris.

  3. Les mêmes poids gèrent T2I et l'édition.

    Si vous poussez trop un LoRA, vous risquez de changer à la fois le comportement texte-vers-image et édition d'image.

  4. Le guidance est spécial car le modèle est guidance-distillé.

    Vous entraînez normalement avec guidance_scale = 1. En inférence, vous utiliserez guidance_scale autour de 2–4.


2. Quel type de FLUX.2 LoRA entraînez-vous réellement ?

Avec FLUX.2 [dev], vous devriez d'abord décider ce que vous voulez que l'adaptateur fasse. Le modèle de base est déjà fort en édition multi-référence et suivi de prompts complexes, donc vous n'avez besoin d'un LoRA que lorsque vous voulez quelque chose de persistant que le modèle de base ne peut pas faire de manière fiable par lui-même.

Objectifs courants pour entraîner un LoRA pour FLUX.2-dev :

  1. LoRA de style (T2I + édition)

    Apprendre à FLUX.2 à utiliser un style de peinture spécifique, une gradation de couleurs ou un look de rendu lorsqu'un déclencheur est présent.

  2. LoRA de personnage / identité

    Modéliser une personne spécifique, un avatar, une mascotte ou une gamme de produits avec des visages/caractéristiques cohérents.

  3. LoRA d'objet / accessoire / marque

    Capturer des produits spécifiques, logos, accessoires ou formes avec des contraintes strictes de géométrie ou de marque.

  4. LoRA d'instruction / édition

    Changer le comportement plutôt que le style : par exemple, "transformer tout portrait en croquis aquarelle", "créer une version blueprint", ou des instructions d'édition structurées avec des paires avant/après.

Savoir lequel de ces objectifs vous visez aide à décider du dataset, du rang, du Differential Output Preservation et des paramètres de guidance.


3. Détails spécifiques à FLUX.2 qui changent les paramètres LoRA

3.1 LoRA sur un transformer fusionné (mise à l'échelle du rang)

FLUX.2 [dev] fusionne les projections d'attention et MLP en matrices très larges par rapport au SD1.5/SDXL classique. Cela signifie :

  • Des rangs très bas (4–8) semblent souvent trop faibles.
  • Pour les LoRAs de style ou de personnage sur FLUX.2 [dev], rang 32 est une bonne valeur par défaut quand la VRAM le permet.
  • Si la VRAM est serrée ou le style est simple, vous pouvez utiliser rang 8–16 et moins d'étapes.
  • Pour des marques ou identités extrêmement complexes, rang 32–64 peut aider, mais le surajustement devient plus probable.

Pour le FLUX.2 dev entraînement LoRA, le modèle bénéficie généralement de rangs légèrement plus élevés que les anciens modèles, mais vous payez en VRAM et en risque de surajustement.


3.2 Modèle guidance-distillé : entraînement à guidance_scale = 1

Parce que FLUX.2 [dev] est guidance-distillé, l'intuition habituelle de Stable Diffusion de "CFG 7–8" ne s'applique pas.

  • Entraînement : définissez guidance_scale = 1.
  • Inférence : une guidance_scale dans la plage 2–4 fonctionne bien.

3.3 L'encodeur de texte est énorme (et pourquoi le caching des embeddings compte)

Le Mistral 24B VLM utilisé comme encodeur de texte de FLUX.2 n'est pas un petit module secondaire. En précision normale, c'est environ 24GB de paramètres seul.

Dans AI Toolkit, les schémas habituels sont :

  • Si votre configuration d'entraînement utilise une légende fixe par image et que vous n'utilisez pas Differential Output Preservation : Activez Cache Text Embeddings.
  • Si vous utilisez Differential Output Preservation (DOP) ou quoi que ce soit qui modifie les prompts à chaque étape : Vous ne pouvez pas mettre en cache les embeddings de texte.

3.4 Autoencoder et résolution

FLUX.2 utilise un AutoencoderKLFlux2 dédié conçu pour le travail 1024×1024+ :

  • Il utilise 32 canaux latents, ce qui donne meilleurs détails et fidélité d'édition que les anciens VAE à 16 canaux.
  • En pratique, entraîner des LoRAs FLUX.2 à résolution 768–1024 capture la plupart des avantages.

Les buckets de résolution d'AI Toolkit vous permettent de lister plusieurs résolutions (par exemple [768, 896, 1024]).


4. Exigences matérielles et VRAM pour l'entraînement LoRA FLUX.2

FLUX.2 [dev] est très gourmand en mémoire. L'entraînement LoRA est plus lourd que l'inférence car vous avez aussi besoin de mémoire pour les gradients et les états de l'optimiseur.

4.1 Paramètres recommandés par niveau de VRAM

Niveau A — GPU 16–24 GB (ex. 4070 Ti, 4080, 4090)

  • Ce qui est réaliste

    À ce niveau, le fine-tuning LoRA FLUX.2 dev est possible mais serré. Vous êtes principalement limité aux petits LoRAs de style ou de personnages simples à environ 896–1024 px sur le côté long, avec Batch Size = 1.

  • Paramètres clés de l'UI

    Dans le panneau MODEL : Low VRAM ON et Layer Offloading ON.

    Dans le panneau QUANTIZATION : Transformer à float8 (default) et Text Encoder à float8 (default).

    Dans le panneau TRAINING : Batch Size = 1 et utiliser Gradient Accumulation si besoin.

Niveau B — GPU 32–48 GB (ex. RTX 6000 Ada, A6000, certains A100)

  • Ce qui est réaliste

    C'est le premier niveau où AI Toolkit FLUX.2 dev LoRA se sent confortable. Vous pouvez entraîner des LoRAs de style et personnage de qualité production à 1024×1024, avec 20–60+ images et 1000–3000 étapes.

  • Paramètres clés de l'UI

    Dans MODEL : Low VRAM ON par défaut ; Layer Offloading OFF sauf si vous avez encore OOM.

    Dans TRAINING : Batch Size = 1–2, Steps ≈ 1000–3000, Learning Rate = 0.0001, Linear Rank = 32.

Niveau C — GPU 64–96+ GB (ex. H100, H200 sur RunComfy)

  • Ce qui est réaliste

    Ici vous avez enfin de la marge : 1024×1024 avec Batch Size = 2–4, buckets de résolution plus grands ou multiples, et Differential Output Preservation ON par défaut sont tous simples.

  • Paramètres clés de l'UI

    Dans MODEL : vous pouvez laisser Low VRAM OFF et Layer Offloading OFF.

    Dans TRAINING : Batch Size = 2–4, Linear Rank = 32–64 et Differential Output Preservation ON.


4.2 AI Toolkit local vs. AI Toolkit cloud sur RunComfy

Vous pouvez exécuter ce workflow LoRA FLUX.2 de deux façons :

  • Localement avec AI Toolkit – installez AI Toolkit depuis le dépôt GitHub AI Toolkit et utilisez votre propre GPU.
  • AI Toolkit cloud sur RunComfy – ouvrez l'AI Toolkit cloud sur RunComfy et entraînez sur des GPU H100 (80 GB) ou H200 (141 GB) sans installation locale.

5. Concevoir des datasets pour FLUX.2 LoRA

5.1 Combien d'images ?

  • LoRA de style simple – environ 15–30 images curées avec un style cohérent.
  • LoRA de personnage / identité – environ 20–60 images avec des vues claires, angles variés et éclairage.
  • LoRA d'édition / instruction – souvent des datasets de paires avec 50–200 triplets (source, cible, instruction).

5.2 Stratégie de captioning : ce que vous n'écrivez pas compte

Ce que vous ne décrivez pas dans la légende est "libre" pour que le LoRA l'attache à votre déclencheur.

Pour un LoRA de style :

  • Légendes qui décrivent ce qui est dans l'image (personne, pose, scène, objets).
  • Légendes qui ne décrivent pas les coups de pinceau, couleurs, médium ou style de composition.

Pour un LoRA de personnage :

  • Utilisez un déclencheur court et unique (ex. midnight_tarot) et un mot de classe (person, woman, etc.).

5.3 Differential Output Preservation (DOP)

Differential Output Preservation est une stratégie de régularisation utilisée dans AI Toolkit qui compare :

  • La sortie du modèle de base sans LoRA, et
  • La sortie avec le LoRA actif,

et pénalise le LoRA pour changer des choses quand un déclencheur n'est pas présent.


6. Étape par étape : configurer l'entraînement LoRA FLUX.2 [dev] dans AI Toolkit

6.1 Configuration initiale unique

  • Installez AI Toolkit depuis le dépôt GitHub et lancez l'UI (npm run build_and_start dans le dossier ui/).
  • Alternativement, ouvrez l'AI Toolkit cloud sur RunComfy et commencez de là (pas d'installation locale nécessaire).

6.2 Préparez votre dataset dans le Toolkit

  • Rassemblez les images pour votre type de LoRA choisi.
  • Placez-les dans un dossier dans le répertoire datasets d'AI Toolkit, par exemple : /ai-toolkit/datasets/flux2_midnight_tarot/
  • Ajoutez des fichiers de légende .txt avec le même nom de base que chaque image.
  • Utilisez [trigger] dans les légendes où votre mot déclencheur doit apparaître.

6.3 Créer un nouveau job d'entraînement

6.3.1 Panneau JOB – nom, GPU et mot déclencheur

  • Training Name : Choisissez un nom descriptif, par exemple flux2_midnight_tarot_v1.
  • GPU ID : Pour installation locale, sélectionnez votre GPU physique (typiquement 0).
  • Trigger Word : Définissez le token réel que vous voulez taper dans les prompts, par exemple midnight_tarot.

6.3.2 Panneaux MODEL & QUANTIZATION

  • Model Architecture : Choisissez FLUX.2.
  • Name or Path : black-forest-labs/FLUX.2-dev.
  • Low VRAM : ON au Niveau A et souvent Niveau B. OFF au Niveau C.
  • Layer Offloading : Activez au Niveau A. OFF aux Niveaux B et C.
  • Transformer : float8 (default).
  • Text Encoder : float8 (default).

6.3.3 Panneau TARGET

  • Target Type : LoRA.
  • Linear Rank : 32 comme bon défaut pour FLUX.2.

6.3.4 Panneaux TRAINING & SAVE

  • Batch Size : 1 sur GPU 24–48GB, 2 sur 64GB+.
  • Gradient Accumulation : Commencez à 1. Augmentez à 2–4 si VRAM est serré.
  • Steps :
    • LoRA de style, 15–30 images : 800–2000 étapes.
    • LoRA de personnage, 30–60 images : 1000–2500 étapes.
    • LoRA d'instruction/édition avec 100+ exemples : 1500–3000 étapes.
  • Optimizer : AdamW8Bit.
  • Learning Rate : 0.0001.
  • Weight Decay : 0.0001.
  • Timestep Type : weighted recommandé.
  • Loss Type : Mean Squared Error.
  • EMA : OFF pour LoRAs.
  • Text Encoder Optimizations :
    • Sans DOP et légendes statiques : Cache Text Embeddings: ON, Unload TE: OFF.
    • Avec DOP : Les deux OFF.
  • Data Type : BF16.
  • Save Every : 250 étapes.

6.3.5 Regularization & Advanced

Differential Output Preservation (DOP) :

  • Differential Output Preservation ON.
  • Trigger : même mot déclencheur.
  • Preservation Class : mot neutre comme photo.

Differential Guidance :

  • Do Differential Guidance : ON avec Scale de 3 est sûr pour la plupart des LoRAs FLUX.2.

6.3.6 Panneau DATASETS

  • Target Dataset : Choisissez votre dataset.
  • Default Caption : [trigger] a portrait of a person si pas de fichiers .txt.
  • Caption Dropout Rate : 0.05 si Cache Text Embeddings OFF, sinon 0.
  • Cache Latents : ON.
  • Resolutions : [768, 896, 1024] selon VRAM.

6.4 Configuration d'échantillonnage de prévisualisation

  • Sample Every : 250 étapes.
  • Guidance Scale : 1 pour les prévisualisations.
  • Sample Steps : 25 étapes.
  • Seed : Fixez une seed (ex. 42).
  • Prompts : Ajoutez 2–4 prompts représentatifs.

7. Déboguer les résultats LoRA FLUX.2 et améliorer la qualité

7.1 "GatedRepoError / 401 lors du téléchargement de FLUX.2-dev"

FLUX.2 [dev] est un repo Hugging Face protégé. Acceptez la licence sur https://huggingface.co/black-forest-labs/FLUX.2-dev, créez un token Read, et ajoutez-le dans les Settings du trainer.

7.2 "Rien ne change après 1000+ étapes"

  1. Vérifiez que le LoRA est appliqué dans l'échantillonnage.
  2. Linear Rank = 16–32 au lieu de 4–8.
  3. Learning Rate = 0.0001.
  4. Supprimez les descripteurs stylistiques des légendes.

7.3 "Mon LoRA a écrasé le modèle de base"

  1. Activez Differential Output Preservation.
  2. Réduisez à 800–1500 étapes.
  3. Linear Rank = 16 et Learning Rate = 0.000075.

7.4 "CUDA out of memory"

  1. Résolution de 1024 → 896 ou 768.
  2. Activez gradient checkpointing et accumulation.
  3. Quantification FP8 ou 4-bit.
  4. Activez Cache Latents.
  5. Migrez vers H100/H200 sur RunComfy.

8. Utiliser votre FLUX.2 LoRA en inférence


Plus de guides d'entraînement LoRA AI Toolkit

Prêt à commencer l'entraînement ?