Entraîner son propre LoRA avec ComfyUI : données, tags et validation

"kohya-ss/sd-scripts fournit des scripts et une documentation d’entraînement LoRA pour Stable Diffusion, SDXL, SD3, FLUX.1 et d’autres familles."
Vous disposez de 20 images d’un personnage original et souhaitez entraîner un LoRA capable de le reproduire dans de nouvelles générations.
Le dataset et l’outil de captioning sont prêts, les paramètres viennent d’une capture trouvée en ligne, mais le résultat échoue : le visage change avec le fond ; « wall » et « floor » dans les captions imposent la même pièce ; LR=1e-3 surapprend et déforme les détails ; dim/alpha=32/1 laisse alpha=1 et dim=32 à une échelle d’environ 0,03, soit 3 %.
Rien ne garantit un succès au premier essai. La méthode relie préparation des données, captions, paramètres initiaux, diagnostic et validation dans ComfyUI.
Préparer le dataset : nombre et type d’images
La première étape n’est pas d’ouvrir le trainer, mais de vérifier si les images sont suffisantes et adaptées.
La cible détermine le volume de données
Le nombre dépend directement de ce que vous entraînez.
LoRA de personnage : commencez avec 15 à 30 images. Une dizaine d’images très nettes, cohérentes et propres peut suffire. Pour changer de scène, incluez plusieurs fonds et angles.
LoRA de style : comptez souvent 50 à 100 images, car traits, palette et composition ajoutent des variables. Avec trop peu de données, le style disparaît sur une image nouvelle.
LoRA d’objet ou de vêtement : 15 à 30 images, avec face, profil et gros plans montrant les caractéristiques principales.
Tableau de qualité du dataset
Le nombre ne suffit pas. Des sources faibles enseignent aussi les fonds, l’éclairage et les défauts.
| Cible | Nombre initial | Résolution | Fond | Autres exigences |
|---|---|---|---|---|
| Personnage | 15–30 images (10 si qualité élevée) | 512×512 ou 1024×1024 cohérent | Propre ou varié, sans scène répétée | Angles, expressions et poses variés |
| Style | 50–100 images | Adaptée au modèle (SD1.5→512, SDXL→1024) | Pas forcément propre, mais style cohérent | Même artiste ou même série |
| Objet | 15–30 images | Résolution cohérente | Propre de préférence, variété possible | Vues et gros plans variés |
Priorisez résolution uniforme, fond pour les personnages, puis variété des angles et détails. De grands écarts de résolution rendent les détails incohérents après resize.
Résolution, fond et prétraitement
Résolution : le trainer redimensionne toutes les images. Un mélange de 512 et 2048 pixels conserve les détails différemment ; recadrez donc les sources à la taille cible.
Fond : si 15 images sur 20 montrent la même pièce, le tagger répète « wall » et « floor » et le LoRA peut apprendre le décor. Choisissez des fonds propres ou révisez les captions.
Procédure :
- Sélectionnez des images nettes, proches en résolution et aux traits lisibles.
- Recadrez-les à une résolution unique avec Photoshop, GIMP ou un script batch.
- Écartez les sources risquées si le même fond apparaît plus de cinq fois.
Captions et trigger words : annoter le dataset
Le captioning automatique n’est pas une opération sans contrôle. Fonds et traits secondaires influencent directement le LoRA.
Choisir l’outil de captioning
Options courantes :
| Outil | Caractéristiques | Cas adapté | Support ComfyUI |
|---|---|---|---|
| WD14 Tagger | Tags Danbooru, courant dans Stable Diffusion | Personnages et styles anime | Nœud Image-Captioning-in-ComfyUI |
| Florence2 | Modèle visuel Microsoft, descriptions en langage naturel | Personnages réalistes et objets | Nœuds ComfyUI disponibles |
| BLIP | Modèle de captioning en langage naturel | Styles réalistes et scènes | Utilisable dans ComfyUI |
WD14 convient aux personnages mais ajoute « simple background » ou « white wall ». Florence2 produit plutôt des phrases et convient mieux au réalisme.
Format et emplacement du trigger
Choisissez un token rare ou une combinaison personnalisée :
sks charname, avec un ancien préfixe rare de Stable Diffusionxyz_character_name, avec votre préfixemy_char_001
Emplacement :
- Placez le trigger au début de chaque fichier
.txtou.caption, puis les attributs. - Certains trainers possèdent un champ dédié, inutile si toutes les captions contiennent déjà le token.
Le trigger répété donne un nom stable au concept. Réutilisez-le lors de la génération.
Vérifier manuellement les attributs essentiels
Contrôlez au moins trois points après le traitement automatique.
Fuite du fond : des mots fréquents comme « wall », « floor » ou « bedroom » peuvent bloquer un nouveau décor. Supprimez-les ou généralisez-les.
Trigger manquant : vérifiez chaque caption.
Trait essentiel manquant : ajoutez coiffure, couleurs ou tenue caractéristique si l’outil les a ignorées.
Inutile de relire chaque mot. Comptez les termes avec grep ou un tableur, puis corrigez les anomalies.
Limites des outils : ce que fait réellement ComfyUI
ComfyUI peut lancer l’entraînement, mais n’est pas lui-même le backend.
kohya-ss/sd-scripts est le backend
Le calcul est assuré par kohya-ss/sd-scripts, très utilisé pour les LoRA Stable Diffusion. Kohya GUI et les nœuds ComfyUI encapsulent ces scripts ou des implémentations proches.
FluxTrainer et Lora-Training-in-Comfy sont des wrappers :
- FluxTrainer de Kijai intègre un code sd-scripts modifié pour FLUX et des workflows associés.
- Lora-Training-in-Comfy expose aussi un entraînement basé sur kohya pour les familles prises en charge.
Leurs defaults ne sont pas des optimums universels. Consultez le README actuel du nœud et la documentation amont.
Comparer les voies d’entraînement
| Voie | Avantages | Limites | Public |
|---|---|---|---|
| GUI kohya-ss | Interface complète, nombreux tutoriels | Installation séparée, interface dense | Contrôle détaillé des paramètres |
| Nœuds ComfyUI comme FluxTrainer | Entraînement dans le même workflow | Parties expérimentales, defaults non garantis | Utilisateurs ComfyUI |
| Scripts kohya-ss en terminal | Fonctions récentes, contrôle complet | Seuil technique plus élevé | Utilisateurs expérimentés |
Où vérifier les paramètres actuels
Ne vous fiez pas uniquement aux captures ou aux defaults. Commencez par la documentation kohya-ss/sd-scripts :
- Les guides décrivent les options pour SD1.5, SDXL et FLUX.1.
- Issues et Discussions donnent des retours ciblés, notamment sur network alpha.
Learning rate, dim/alpha et steps changent avec le modèle et le dataset. Aucune configuration ne convient partout.
Recettes de départ par objectif
Ces valeurs servent de point de départ reproductible. Ajustez-les à partir des epochs sauvegardés et des symptômes.
Relation entre network dim et alpha
network dim, ou rank, détermine la capacité des matrices LoRA. Un dim élevé apprend plus de détails mais consomme davantage.
network alpha met les poids appris à l’échelle. Si alpha est inférieur à dim, la mise à jour est atténuée par rapport au learning rate configuré.
Échelle simplifiée : alpha / dim
Exemples :
- alpha=16, dim=32 → 16/32=0,5
- alpha=32, dim=32 → 1
- alpha=1, dim=32 → 1/32≈0,03
Copier dim=32 et alpha=1 sans considérer learning rate et steps peut produire un résultat faible.
Départ :
- Testez alpha=dim sans atténuation, ou alpha=dim/2 pour une atténuation modérée.
- Avec alpha<dim, comparez learning rate et steps ensemble plutôt qu’un chiffre isolé.
Learning rates, steps et epochs
| Paramètre | Personnage | Style | Remarque |
|---|---|---|---|
| U-Net LR | 4e-4 | 1e-4 | Départ à ajuster selon symptômes et alpha |
| Text encoder LR | 5e-5 ou 1e-5 | 5e-5 ou moins | Généralement inférieur à l’U-Net |
| Steps | 1000–2000 | 2000–3000 | Déduire des epochs et arrêter plus tôt si nécessaire |
| Epochs | 10–20 | 20–30 | Un petit dataset de personnage peut en demander moins |
Un step est une mise à jour de l’optimizer, une epoch un passage sur le dataset. Repeats, batch size, gradient accumulation et entraînement distribué modifient la relation ; fiez-vous au compteur du trainer.
Choisir le modèle de base
Le modèle d’entraînement détermine la compatibilité.
| Modèle | Résolution | Modèles compatibles | VRAM de départ |
|---|---|---|---|
| SD1.5 | 512×512 | SD1.5 et dérivés compatibles | Environ 8 Go avec fp16 et checkpointing |
| SDXL | 1024×1024 | SDXL et dérivés compatibles | Environ 12 Go avec fp16 et checkpointing |
| FLUX.1 | 1024×1024 ou plus | Famille FLUX.1 correspondante | Souvent bien plus sans optimisation |
Le support FLUX.1 et les options mémoire évoluent. Vérifiez la documentation du trainer plutôt qu’une valeur VRAM fixe.
Tableau de départ
| Cible | dim | alpha | U-Net LR | Text encoder LR | Steps/epochs initiaux | Modèle |
|---|---|---|---|---|---|---|
| Personnage SD1.5 | 32 ou 128 | 32 ou 1, à compenser si faible | 4e-4 | 5e-5 | 1000–2000 / 10–20 | SD1.5 |
| Personnage SDXL | 128 | 1 ou 128 | 4e-4 | 5e-5 | 1500–2500 / 10–20 | SDXL |
| Style SD1.5 | 128 ou 256 | 128 ou 1 | 1e-4 | 5e-5 ou moins | 2000–3000 / 20–30 | SD1.5 |
Ajustez ces départs avec les contrôles suivants.
Reconnaître et corriger surapprentissage et sous-apprentissage
De mauvais réglages peuvent détruire les détails ou ne presque rien apprendre.
Signes de surapprentissage
Aspect :
- Les détails fusionnent, deviennent flous ou déformés.
- Les nouveaux fonds et angles échouent, car seules les scènes d’entraînement sont reconnues.
- Bruit et watermark du dataset réapparaissent.
Trigger :
- Même un weight de 0,3 reproduit les données et reste incontrôlable.
- Les traits apparaissent sans trigger et sont trop imbriqués.
Signes de sous-apprentissage
Aspect :
- La cible est peu ressemblante et les détails importants manquent.
- Le trigger réagit peu ou pas.
Test de fond :
- Les traits restent faibles dans toutes les scènes ; le concept central n’est pas appris.
Tableau comparatif
| Symptôme | Surapprentissage | Sous-apprentissage | Correction |
|---|---|---|---|
| Détails | Déformés ou copiés des données | Ressemblance faible | Sur : baisser LR/steps ; sous : augmenter LR/améliorer données |
| Changement de fond | Échec dans une nouvelle scène | Cible faible partout | Sur : vérifier tags de fond ; sous : vérifier trigger |
| Réponse au trigger | Trop forte | Faible ou absente | Sur : baisser LR/dim trop élevé ; sous : revoir LR, données, dim |
| Plage de weight | Copie encore à 0,3 | À peine visible à 1,0 | Sur : epoch plus tôt ; sous : continuer prudemment ou améliorer les données |
Ordre des corrections
Surapprentissage :
- Baissez nettement le learning rate, par exemple de 50 % pour un test.
- Réduisez les steps ou choisissez une epoch antérieure.
- Vérifiez fonds et attributs secondaires dans les captions.
- Baissez un dim inutilement élevé.
Sous-apprentissage :
- Augmentez le learning rate de façon contrôlée.
- Ajoutez ou améliorez les données.
- Vérifiez le trigger dans chaque caption.
- Augmentez dim si la capacité manque.
Besoin VRAM et configurations légères pour une RTX 3060
Une VRAM limitée n’interdit pas toujours l’entraînement, mais impose des compromis de résolution, modèle, vitesse et optimisation.
Minimums approximatifs
| Modèle | Base fp16 avec checkpointing | Avec optimisations | Options |
|---|---|---|---|
| SD1.5 | Environ 8 Go | Environ 6 Go en configuration contrainte | dim bas, checkpointing, optimizer et precision |
| SDXL | Environ 12 Go | Environ 10 Go dans certains cas | dim bas, checkpointing, économies par blocs |
| FLUX.1 | Souvent environ 24 Go sans économie | Parfois près de 10 Go très optimisé | block swapping, checkpointing, dim bas, quantification |
L’exemple 24 vers 10 Go vient d’un guide tiers de 2025. Le résultat réel dépend du trainer, modèle, optimizer, cache, dataset et GPU.
Techniques d’économie
Fused ou memory-efficient backward réduit le pic selon l’implémentation.
Gradient checkpointing recalcule des activations et échange du temps contre de la mémoire.
Un dim bas réduit les paramètres LoRA et généralement la VRAM.
Mixed precision et quantification : fp16 ou bf16 sont courants ; certains trainers proposent FP8 ou des composants quantifiés avec leurs compromis.
Tableau pour faible VRAM
| VRAM | Cible réaliste | Compromis | Voie conseillée |
|---|---|---|---|
| 6 Go | Personnage SD1.5 | dim bas, checkpointing, lent | SD1.5 et petit batch |
| 8 Go | Personnage ou style SD1.5 | dim bas et checkpointing | Options SD1.5 éprouvées |
| 10 Go | Certaines configurations SDXL | Économies agressives | Recette low-memory documentée |
| 12 Go+ | Plus de SDXL, FLUX.1 expérimental | Optimisations encore possibles | SDXL d’abord, FLUX.1 selon configuration |
Avec peu de VRAM, commencez par SD1.5. Ses exigences sont plus basses et ses méthodes d’économie plus matures.
Valider le LoRA terminé dans ComfyUI
Une seule image ne suffit pas. Vérifiez trigger, détails, transfert de fond et plage de weight contrôlable.
Charger le LoRA
Chargez le fichier .safetensors avec Load LoRA :
- Nœud : Load LoRA intégré à ComfyUI
- Paramètres : fichier, strength model et clip ; commencez autour de 0,5 et ajustez
Construire un prompt de test
Le prompt contient trigger et attributs :
- Trigger word : token appris, tel que
sks charname, près du début. - Attributs : coiffure, palette et tenue importantes.
- Scène : remplacez par « in a forest » ou « at night » pour le test.
Exemple :
sks charname, blonde hair, blue eyes, white dress, simple background
Test de fond :
sks charname, blonde hair, blue eyes, white dress, in a forest, at sunset
Balayer les weights
Comparez à conditions identiques :
- weight=0.3 : effet léger et contrôlable.
- weight=0.5 : cible reconnaissable au départ pratique.
- weight=1.0 : pleine force sans déformation ni perte de contrôle.
Si 0,3 reste collé aux données, suspectez le surapprentissage. Si 1,0 ressemble à peine, vérifiez sous-apprentissage, trigger et compatibilité.
Checklist d’acceptation
| Contrôle | Résultat attendu | En cas d’échec |
|---|---|---|
| Trigger | Clair à 0,5, contrôlable à 0,3 | Absent : captions/trigger ; trop fort : baisser LR ou choisir une epoch antérieure |
| Détails | Coiffure, couleurs et tenue restent nettes | Déformés : surapprentissage ; faibles : sous-apprentissage |
| Changement de fond | Sujet reconnaissable dans une nouvelle scène | Vérifier captions de fond et diversité |
| Contrôle du weight | Traits graduels entre 0,3 et 1,0 | Revoir force d’entraînement et epochs |
Étapes suivantes et articles associés
Pour le chargement, les weights, l’empilement et les triggers, consultez Utiliser les LoRA dans ComfyUI : poids, empilement et cohérence du personnage.
Le rôle du modèle de base dans la compatibilité et les shape mismatch est détaillé dans Choisir un modèle Stable Diffusion : compatibilité du modèle de base et des LoRA.
Pour des tests reproductibles, utilisez Modèles de prompts Stable Diffusion pour valider un LoRA.
Alternatives sans réentraînement :
- FLUX.1 Kontext peut préserver un personnage sans LoRA lorsque les données sont insuffisantes ou l’entraînement trop coûteux.
- InstantID et IPAdapter FaceID contrôlent le visage avec une image de référence plutôt qu’un LoRA entraîné.
Entraîner et valider son propre LoRA
Choisissez la cible et le modèle de base, préparez les images et captions, entraînez avec des valeurs contrôlées, puis vérifiez trigger, détails et changement de fond.
⏱️ Estimated time: 4 hr
- 1
Step 1: Choisir la cible et le modèle de base
Décidez s’il s’agit d’un personnage, d’un style ou d’un objet, puis choisissez SD1.5, SDXL ou FLUX.1 ; le modèle d’entraînement fixe la compatibilité. - 2
Step 2: Sélectionner et normaliser le dataset
Gardez des images nettes au sujet identifiable, avec des angles et fonds variés, puis recadrez-les à une résolution cohérente. - 3
Step 3: Générer puis corriger les captions
Utilisez l’outil adapté et vérifiez les mots de fond fréquents, les attributs essentiels et le trigger dans chaque fichier. - 4
Step 4: Définir les paramètres initiaux
Choisissez dim, alpha, learning rates et steps ou epochs selon la cible ; les tableaux donnent un départ reproductible, pas une réponse universelle. - 5
Step 5: Enregistrer les epochs intermédiaires
Sauvegardez les poids à intervalles fixes afin de sélectionner ensuite le point qui généralise sans surapprentissage. - 6
Step 6: Tester à conditions fixes dans ComfyUI
Conservez prompt, seed, sampler et taille, puis comparez les weights 0,3, 0,5 et 1,0 sur plusieurs fonds. - 7
Step 7: Corriger selon les symptômes
En cas de surapprentissage, baissez learning rate ou steps et vérifiez les tags de fond ; sinon contrôlez trigger, données, learning rate et dim.
FAQ
Combien d’images faut-il pour entraîner un LoRA ?
Comment régler network dim et alpha ?
Quel learning rate utiliser pour un LoRA ?
Comment entraîner avec peu de VRAM ?
Peut-on entraîner un LoRA directement dans ComfyUI ?
Quelles différences entre l’entraînement LoRA SDXL et FLUX.1 ?
11 min de lecture · Publié le: 28 août 2026 · Mis à jour le: 28 août 2026
Guide pratique ComfyUI et Stable Diffusion
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Cohérence des visages dans ComfyUI : InstantID, FaceID ou ReActor ?
Comparez InstantID, IPAdapter FaceID et ReActor selon l’étape et les modèles, avec critères de référence, chemins, réglages, dépannage et limites de licence.
Partie 9 sur 16
Suivant
Prompts régionaux dans ComfyUI : séparer plusieurs sujets avec Set Area, RegionalPrompt et Cutoff
Séparez les sujets dans ComfyUI avec Set Area, RegionalPrompt et Cutoff : coordonnées, mask sampling, strength, ControlNet et couleurs mélangées au second pass.
Partie 11 sur 16



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire