Stable Diffusion LoRA : guide complet d’utilisation et d’entraînement
Un LoRA (Low-Rank Adaptation) est un petit fichier (50 à 300 Mo) qui modifie le comportement d’un modèle de base Stable Diffusion pour ajouter un style, un personnage ou un concept spécifique, sans remplacer le checkpoint entier. C’est l’outil de personnalisation le plus utilisé dans l’écosystème SD.
- Taille
- 50 à 300 Mo (vs 2 à 12 Go pour un checkpoint)
- Syntaxe A1111/Forge
<lora:nom_du_lora:poids>dans le prompt- Syntaxe ComfyUI
- Nœud « Load LoRA » entre le checkpoint et le sampler
- Poids recommandé
- 0.6 à 0.8 (1.0 = effet maximum, souvent trop fort)
- Sources
- Civitai.com (le plus grand catalogue) · Hugging Face
- Format
.safetensorsuniquement
Comment fonctionne un LoRA
La technique LoRA a été développée par Microsoft Research en 2021 pour le traitement du langage naturel, puis adaptée à la génération d’images. Le principe : au lieu de modifier les milliards de paramètres d’un modèle complet (fine-tuning classique), LoRA injecte de petites matrices « d’adaptation » dans les couches d’attention du réseau. Ces matrices capturent les modifications spécifiques (un style, un visage, un concept) tout en gardant le modèle de base intact.
Concrètement, un LoRA ne fonctionne jamais seul. Il s’applique par-dessus un checkpoint compatible : un LoRA entraîné sur SD 1.5 ne fonctionne qu’avec des checkpoints SD 1.5, un LoRA SDXL avec des checkpoints SDXL, un LoRA Flux avec des modèles Flux. Cette incompatibilité entre architectures est la source d’erreur numéro un chez les débutants.
L’avantage est double : côté utilisateur, vous pouvez empiler plusieurs LoRA sur un même checkpoint pour combiner des styles et concepts. Côté créateur, entraîner un LoRA demande beaucoup moins de VRAM et de temps qu’un fine-tuning complet du modèle.
Types de LoRA
L’écosystème a évolué au-delà du LoRA standard. Voici les variantes que vous rencontrerez :
LoRA standard. Le format d’origine. Modifie les couches d’attention du réseau. C’est le type le plus courant sur Civitai, compatible avec toutes les interfaces (A1111, Forge, ComfyUI).
LoCon (LoRA for Convolution). Étend le principe LoRA aux couches de convolution en plus des couches d’attention. Produit souvent de meilleurs résultats pour les styles artistiques et les transferts de style, au prix d’un fichier légèrement plus gros.
LyCORIS (LoRA beYond Conventional methods). Une famille de méthodes de fine-tuning avancées qui inclut LoHa, LoKr et d’autres variantes. Certains cas d’usage spécifiques (transfert de style complexe, reproduction d’éclairage) bénéficient de ces approches. Dans la pratique, la plupart des interfaces traitent les fichiers LyCORIS de la même façon que les LoRA standards.
Utiliser un LoRA : guide pratique
Installation
1. Téléchargez le fichier. Sur Civitai.com, trouvez le LoRA souhaité et téléchargez le fichier .safetensors. Notez bien les informations clés de la page : le modèle de base compatible (SD 1.5, SDXL, Flux), le ou les trigger words, et le poids recommandé.
2. Placez le fichier. Copiez-le dans le bon dossier :
| Interface | Dossier LoRA |
|---|---|
| A1111 / Forge | models/Lora/ |
| ComfyUI | models/loras/ |
3. Rafraîchissez l’interface. Dans A1111/Forge, cliquez le bouton de rafraîchissement dans le panneau LoRA (icône sous le champ de prompt). Dans ComfyUI, actualisez la page ou redémarrez.
Syntaxe dans A1111/Forge
Dans A1111 et Forge, les LoRA s’activent directement dans le prompt avec la syntaxe :
<lora:nom_du_fichier:poids>
Par exemple, si votre fichier s’appelle watercolor_style.safetensors et que vous voulez l’appliquer à 70% :
a beautiful landscape, mountains, sunset <lora:watercolor_style:0.7>
Le poids contrôle l’intensité de l’effet. À 1.0, l’effet est maximal. En pratique, 0.6 à 0.8 donne souvent les meilleurs résultats. Un poids trop élevé « sature » l’image avec le style du LoRA au détriment de la qualité globale. Un poids trop bas rend l’effet invisible.
Vous pouvez aussi cliquer sur le bouton LoRA sous le champ de prompt pour parcourir et insérer les LoRA installés sans taper la syntaxe manuellement.
Syntaxe dans ComfyUI
Dans ComfyUI, les LoRA s’intègrent via un nœud dédié « Load LoRA ». Placez ce nœud entre le nœud « Load Checkpoint » et le nœud « CLIP Text Encode » (ou le sampler). Connectez les sorties MODEL et CLIP du nœud Load LoRA aux entrées correspondantes des nœuds suivants.
Le nœud Load LoRA propose deux curseurs : strength_model (effet sur le modèle) et strength_clip (effet sur l’encodeur de texte). En général, gardez les deux à la même valeur (0.6 à 0.8). Pour certains LoRA de style, réduire strength_clip peut améliorer la flexibilité du prompt.
Pour empiler plusieurs LoRA, chaînez plusieurs nœuds Load LoRA en série : la sortie du premier alimente l’entrée du second.
Trigger words
La plupart des LoRA nécessitent un ou plusieurs « trigger words » dans le prompt pour s’activer. Ce sont des mots-clés spécifiques définis lors de l’entraînement. Sans eux, le LoRA peut ne pas produire l’effet attendu.
Consultez toujours la page du LoRA sur Civitai pour connaître les trigger words exacts. Par exemple, un LoRA de style aquarelle pourrait nécessiter le mot wtrclr dans le prompt, un LoRA de personnage pourrait utiliser ohwx man ou un nom inventé comme johndoe.
Certains LoRA fonctionnent sans trigger word : leur effet s’applique automatiquement dès qu’ils sont chargés. C’est souvent le cas des LoRA de style global ou des LoRA d’amélioration de détails.
Empiler plusieurs LoRA
Combiner des LoRA est une technique puissante pour créer des images uniques. Vous pouvez, par exemple, combiner un LoRA de style (aquarelle) avec un LoRA de personnage (un visage spécifique) et un LoRA de concept (éclairage néon).
Règles pratiques pour l’empilement :
Réduisez les poids. Quand vous combinez des LoRA, la somme de leurs effets peut saturer l’image. Si vous utilisez deux LoRA, essayez 0.5 à 0.7 pour chacun plutôt que 0.8 à 1.0. Trois LoRA ou plus : descendez à 0.3 à 0.5 par LoRA.
Vérifiez la compatibilité. Tous les LoRA empilés doivent être compatibles avec le même checkpoint de base. Un LoRA SD 1.5 et un LoRA SDXL sur le même workflow ne fonctionneront pas.
Attention aux conflits. Deux LoRA qui modifient la même dimension (par exemple, deux LoRA de style radicalement différents) peuvent produire des résultats incohérents. En cas de conflit, donnez la priorité à l’un des deux via un poids plus élevé.
Ordre dans ComfyUI. L’ordre des nœuds Load LoRA peut influencer le résultat. En règle générale, placez le LoRA le plus « fondamental » (style global) en premier et les LoRA plus spécifiques (personnage, détail) ensuite.
Catégories de LoRA populaires
Sur Civitai, les LoRA se répartissent en grandes catégories :
LoRA de style. Reproduisent un style artistique spécifique : aquarelle, pixel art, ligne claire, peinture à l’huile, photographie argentique, illustration flat design, etc. Souvent sans trigger word ou avec un trigger simple.
LoRA de personnage. Capturent l’apparence d’un personnage (fictif ou réel) pour le reproduire dans différentes poses et contextes. Nécessitent presque toujours un trigger word spécifique.
LoRA de concept. Ajoutent un concept visuel : éclairage spécifique (néon, lumière dorée), texture (bois, métal, tissu), environnement (cyberpunk, médiéval), ou effet (double exposition, glitch art).
LoRA d’amélioration. Améliorent la qualité de sortie sans changer le style : meilleurs détails de mains, textures de peau plus réalistes, yeux plus nets. Le populaire « Detail Tweaker » entre dans cette catégorie.
LoRA de pose/composition. Influencent la pose des personnages ou la composition de l’image. Souvent utilisés en complément de ControlNet pour un contrôle plus fin.
Entraîner son propre LoRA
Entraîner un LoRA personnalisé est accessible avec un GPU dédié. C’est la façon la plus directe d’obtenir un style ou un personnage sur mesure que les LoRA communautaires ne couvrent pas.
Prérequis matériels
| Architecture | VRAM minimum | VRAM recommandée | Durée typique (30 images) |
|---|---|---|---|
| SD 1.5 | 8 Go | 12 Go | 1 à 3 heures |
| SDXL | 12 Go | 24 Go | 2 à 5 heures |
| Flux | 12 Go (optimisé) | 24 Go+ | 3 à 8 heures |
Si vous n’avez pas de GPU suffisant, des services cloud comme RunPod, Vast.ai ou Google Colab Pro permettent de louer un GPU pour l’entraînement (environ 0,50 à 2 $ par heure selon le GPU).
Outils d’entraînement
Kohya SS GUI est l’outil de référence pour l’entraînement de LoRA. C’est un wrapper graphique autour des scripts kohya-ss/sd-scripts, compatible SD 1.5, SDXL et Flux. Il offre un contrôle complet sur tous les paramètres d’entraînement via une interface web Gradio.
Flux Gym est une alternative simplifiée, spécialisée pour les LoRA Flux. L’interface est plus accessible mais offre moins de contrôle sur les paramètres avancés. Attention : Flux Gym utilise son propre environnement Python, qui peut créer des conflits de dépendances avec ComfyUI s’ils partagent le même système.
Flux LoRA Trainer (via ComfyUI) permet d’entraîner des LoRA directement dans ComfyUI via des nœuds personnalisés. L’avantage : la configuration se sauvegarde dans un fichier JSON réutilisable, et vous pouvez mettre en file d’attente plusieurs entraînements successifs.
Préparer le dataset
La qualité du dataset détermine la qualité du LoRA. La quantité importe moins que la diversité et la qualité.
Nombre d’images. 15 à 30 images de haute qualité suffisent pour la plupart des cas d’usage. Plus d’images n’améliorent pas nécessairement le résultat si elles sont redondantes.
Diversité. Variez les angles, les éclairages, les arrière-plans, et les expressions (pour un personnage). Un dataset trop uniforme produit un LoRA rigide qui ne sait générer que ce qu’il a vu.
Résolution. Les images doivent correspondre à la résolution native du modèle de base : 512×512 pour SD 1.5, 1024×1024 pour SDXL et Flux. Le bucketing (fonctionnalité de Kohya) gère les ratios d’aspect variés, mais les débutants obtiendront de meilleurs résultats en recadrant leurs images à la résolution cible.
Captioning. Chaque image doit être accompagnée d’un fichier texte (.txt) décrivant son contenu. Utilisez un outil de captioning automatique (BLIP, WD Tagger) puis éditez manuellement. Le trigger word doit apparaître dans chaque caption.
Paramètres d’entraînement clés
Voici les paramètres de départ recommandés pour un entraînement LoRA SDXL avec Kohya SS :
| Paramètre | Valeur SD 1.5 | Valeur SDXL | Rôle |
|---|---|---|---|
| Learning rate | 2e-4 | 1e-4 à 3e-5 | Vitesse d’apprentissage (trop haut = overfitting) |
| Network Rank | 16 à 32 | 32 | Capacité du LoRA (plus haut = plus expressif mais plus gros) |
| Network Alpha | = Rank | = Rank | Scaling factor (gardez égal au rank pour commencer) |
| Epochs | 15 à 20 | 20 à 30 | Nombre de passes sur le dataset |
| Optimizer | AdamW | AdamW | Algorithme d’optimisation (Prodigy est une alternative auto-adaptative) |
| LR Scheduler | constant | constant | Profil du learning rate |
| Batch size | 1 à 2 | 1 | Images traitées simultanément (limité par VRAM) |
| Mixed precision | fp16 | fp16 ou bf16 | Réduit la VRAM requise |
Activez save_every_n_epochs: 1 pour sauvegarder un checkpoint à chaque epoch. Cela vous permet de comparer les versions et de choisir le meilleur point d’entraînement, car le dernier epoch n’est pas toujours le meilleur.
Tester et comparer les checkpoints
Après l’entraînement, vous avez plusieurs fichiers LoRA (un par epoch). Pour trouver le meilleur, utilisez l’outil X/Y/Z Plot d’A1111/Forge : chargez le même prompt et le même seed, et variez uniquement le fichier LoRA sur l’axe X. Vous obtenez une grille comparative qui montre l’évolution de la qualité à travers les epochs.
Les checkpoints situés entre 60% et 80% de l’entraînement total donnent souvent de meilleurs résultats que le dernier epoch. C’est normal : l’entraînement commence par apprendre les traits généraux (utiles) puis mémorise les détails spécifiques (overfitting).
Erreurs courantes et dépannage
« Mon LoRA ne fait rien. » Vérifiez trois choses : le trigger word est bien dans le prompt, le poids n’est pas trop bas (essayez 0.8 ou 1.0 pour tester), et le LoRA est compatible avec votre checkpoint de base (SD 1.5 vs SDXL vs Flux).
« L’image est déformée/saturée. » Le poids est probablement trop élevé. Réduisez-le à 0.5 ou 0.6. Si vous empilez plusieurs LoRA, baissez chacun à 0.3 à 0.5.
« Erreur de chargement dans ComfyUI. » Vérifiez que le fichier est bien dans models/loras/ (pas models/Lora/ avec un L majuscule, qui est le dossier A1111). Vérifiez aussi que le nom de fichier ne contient pas de caractères spéciaux.
« Le LoRA fonctionne avec un checkpoint mais pas un autre. » Même au sein d’une architecture (par exemple SDXL), un LoRA entraîné sur le modèle de base SDXL peut se comporter différemment sur un checkpoint communautaire (Juggernaut XL, DreamShaper XL). C’est normal. Testez avec différents checkpoints pour trouver la meilleure combinaison.
« Mon entraînement produit des images noires. » Problème courant lié au learning rate trop élevé ou à un bug de configuration. Vérifiez que le modèle source est bien spécifié, que la résolution d’entraînement correspond au modèle de base, et essayez de diviser le learning rate par 2.
LoRA vs alternatives
| Méthode | Taille fichier | VRAM entraînement | Qualité | Usage |
|---|---|---|---|---|
| LoRA | 50-300 Mo | 8-24 Go | Très bonne | Style, personnage, concept |
| DreamBooth | 2-12 Go (checkpoint complet) | 24 Go+ | Excellente | Personnage précis (visage) |
| Textual Inversion | Quelques Ko | 8 Go | Correcte | Concept simple, embedding négatif |
| Hypernetwork | 50-100 Mo | 8 Go | Variable | Style (méthode legacy) |
DreamBooth produit des résultats potentiellement supérieurs pour la reproduction de visages, mais nécessite beaucoup plus de VRAM et produit un checkpoint complet (pas un petit fichier additionnel). Une approche hybride existe : entraîner via DreamBooth puis extraire un LoRA du résultat (via l’utilitaire « Extract LoRA » de Kohya). Cela combine la qualité DreamBooth avec la praticité LoRA.
Textual Inversion est plus limité en expressivité mais produit des fichiers minuscules. Son usage principal en 2026 reste les embeddings négatifs (EasyNegative, badhandv4) qui améliorent la qualité de génération en excluant les défauts courants.
Questions fréquentes
Peut-on utiliser un LoRA SD 1.5 avec un checkpoint SDXL ?
Non, c’est incompatible. Un LoRA doit correspondre à l’architecture de son checkpoint de base : LoRA SD 1.5 avec checkpoints SD 1.5, LoRA SDXL avec checkpoints SDXL, LoRA Flux avec modèles Flux. Utiliser un LoRA avec une architecture incompatible provoquera une erreur ou des résultats corrompus.
Combien de LoRA peut-on empiler simultanément ?
Il n’y a pas de limite technique stricte, mais au-delà de 3 à 4 LoRA simultanés, les effets se diluent et les conflits entre LoRA deviennent fréquents. En pratique, 2 à 3 LoRA avec des poids réduits (0.4 à 0.6 chacun) donnent les meilleurs résultats. Plus vous en ajoutez, plus vous devez baisser les poids individuels.
Où trouver les meilleurs LoRA ?
Civitai.com est la source principale avec le plus grand catalogue. Filtrez par type « LoRA », par architecture de base (SDXL, SD 1.5, Flux), et triez par popularité ou par note. Consultez les galeries d’exemples de la communauté (pas seulement celles du créateur) pour évaluer la qualité réelle. Hugging Face héberge aussi des LoRA, surtout pour Flux et SD 3.5.
Est-il légal d’entraîner un LoRA sur des images trouvées en ligne ?
La question juridique varie selon les juridictions. Pour un usage personnel et non commercial, l’entraînement sur des images publiques est généralement toléré. Pour un usage commercial, utilisez vos propres images, des images sous licence permissive, ou des images générées par IA comme dataset. Les modèles de base SDXL et Flux Dev sont sous licence permissive autorisant l’usage commercial des images générées.
Mon LoRA personnalisé est de mauvaise qualité, que faire ?
Cinq pistes de diagnostic dans l’ordre : vérifiez votre dataset (qualité des images, diversité, captioning correct avec trigger word), testez des epochs antérieurs (le dernier n’est pas toujours le meilleur), réduisez le learning rate de 50%, ajoutez plus d’images variées si le LoRA est rigide, et essayez un checkpoint de base différent (un checkpoint communautaire spécialisé dans votre domaine peut donner de meilleurs résultats que le modèle SDXL de base).