Changer le thème

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

Easton editorial illustration: central LoRA trainer module, stack of varied character dataset image cards, output safetensors file tile

"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.

CibleNombre initialRésolutionFondAutres exigences
Personnage15–30 images (10 si qualité élevée)512×512 ou 1024×1024 cohérentPropre ou varié, sans scène répétéeAngles, expressions et poses variés
Style50–100 imagesAdaptée au modèle (SD1.5→512, SDXL→1024)Pas forcément propre, mais style cohérentMême artiste ou même série
Objet15–30 imagesRésolution cohérentePropre de préférence, variété possibleVues 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 :

  1. Sélectionnez des images nettes, proches en résolution et aux traits lisibles.
  2. Recadrez-les à une résolution unique avec Photoshop, GIMP ou un script batch.
  3. É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 :

OutilCaractéristiquesCas adaptéSupport ComfyUI
WD14 TaggerTags Danbooru, courant dans Stable DiffusionPersonnages et styles animeNœud Image-Captioning-in-ComfyUI
Florence2Modèle visuel Microsoft, descriptions en langage naturelPersonnages réalistes et objetsNœuds ComfyUI disponibles
BLIPModèle de captioning en langage naturelStyles réalistes et scènesUtilisable 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 Diffusion
  • xyz_character_name, avec votre préfixe
  • my_char_001

Emplacement :

  1. Placez le trigger au début de chaque fichier .txt ou .caption, puis les attributs.
  2. 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

VoieAvantagesLimitesPublic
GUI kohya-ssInterface complète, nombreux tutorielsInstallation séparée, interface denseContrôle détaillé des paramètres
Nœuds ComfyUI comme FluxTrainerEntraînement dans le même workflowParties expérimentales, defaults non garantisUtilisateurs ComfyUI
Scripts kohya-ss en terminalFonctions récentes, contrôle completSeuil 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ètrePersonnageStyleRemarque
U-Net LR4e-41e-4Départ à ajuster selon symptômes et alpha
Text encoder LR5e-5 ou 1e-55e-5 ou moinsGénéralement inférieur à l’U-Net
Steps1000–20002000–3000Déduire des epochs et arrêter plus tôt si nécessaire
Epochs10–2020–30Un 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èleRésolutionModèles compatiblesVRAM de départ
SD1.5512×512SD1.5 et dérivés compatiblesEnviron 8 Go avec fp16 et checkpointing
SDXL1024×1024SDXL et dérivés compatiblesEnviron 12 Go avec fp16 et checkpointing
FLUX.11024×1024 ou plusFamille FLUX.1 correspondanteSouvent 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

CibledimalphaU-Net LRText encoder LRSteps/epochs initiauxModèle
Personnage SD1.532 ou 12832 ou 1, à compenser si faible4e-45e-51000–2000 / 10–20SD1.5
Personnage SDXL1281 ou 1284e-45e-51500–2500 / 10–20SDXL
Style SD1.5128 ou 256128 ou 11e-45e-5 ou moins2000–3000 / 20–30SD1.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ômeSurapprentissageSous-apprentissageCorrection
DétailsDéformés ou copiés des donnéesRessemblance faibleSur : baisser LR/steps ; sous : augmenter LR/améliorer données
Changement de fondÉchec dans une nouvelle scèneCible faible partoutSur : vérifier tags de fond ; sous : vérifier trigger
Réponse au triggerTrop forteFaible ou absenteSur : baisser LR/dim trop élevé ; sous : revoir LR, données, dim
Plage de weightCopie encore à 0,3À peine visible à 1,0Sur : epoch plus tôt ; sous : continuer prudemment ou améliorer les données

Ordre des corrections

Surapprentissage :

  1. Baissez nettement le learning rate, par exemple de 50 % pour un test.
  2. Réduisez les steps ou choisissez une epoch antérieure.
  3. Vérifiez fonds et attributs secondaires dans les captions.
  4. Baissez un dim inutilement élevé.

Sous-apprentissage :

  1. Augmentez le learning rate de façon contrôlée.
  2. Ajoutez ou améliorez les données.
  3. Vérifiez le trigger dans chaque caption.
  4. 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èleBase fp16 avec checkpointingAvec optimisationsOptions
SD1.5Environ 8 GoEnviron 6 Go en configuration contraintedim bas, checkpointing, optimizer et precision
SDXLEnviron 12 GoEnviron 10 Go dans certains casdim bas, checkpointing, économies par blocs
FLUX.1Souvent environ 24 Go sans économieParfois 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

VRAMCible réalisteCompromisVoie conseillée
6 GoPersonnage SD1.5dim bas, checkpointing, lentSD1.5 et petit batch
8 GoPersonnage ou style SD1.5dim bas et checkpointingOptions SD1.5 éprouvées
10 GoCertaines configurations SDXLÉconomies agressivesRecette low-memory documentée
12 Go+Plus de SDXL, FLUX.1 expérimentalOptimisations encore possiblesSDXL 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ôleRésultat attenduEn cas d’échec
TriggerClair à 0,5, contrôlable à 0,3Absent : captions/trigger ; trop fort : baisser LR ou choisir une epoch antérieure
DétailsCoiffure, couleurs et tenue restent nettesDéformés : surapprentissage ; faibles : sous-apprentissage
Changement de fondSujet reconnaissable dans une nouvelle scèneVérifier captions de fond et diversité
Contrôle du weightTraits graduels entre 0,3 et 1,0Revoir 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. 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. 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. 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. 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. 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. 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. 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 ?
Un personnage commence souvent avec 15 à 30 images, parfois environ 10 d’excellente qualité. Un style en demande 50 à 100, un objet 15 à 30. Privilégiez netteté et diversité.
Comment régler network dim et alpha ?
dim détermine la capacité et alpha met les poids à l’échelle. alpha=dim ou alpha=dim/2 sont des départs courants. Avec un alpha plus faible, ajustez learning rate, steps et validation ensemble.
Quel learning rate utiliser pour un LoRA ?
Pour un personnage, l’U-Net peut commencer vers 4e-4 ; pour un style, vers 1e-4. Le text encoder est généralement plus bas. Les epochs sauvegardés et les symptômes guident la suite.
Comment entraîner avec peu de VRAM ?
Préférez SD1.5, un dim bas, la mixed precision et gradient checkpointing. SDXL ou FLUX.1 peuvent utiliser block swapping ou quantification si le trainer les prend en charge, avec des compromis.
Peut-on entraîner un LoRA directement dans ComfyUI ?
Oui, par exemple avec ComfyUI-FluxTrainer. Ces nœuds encapsulent des scripts et certains restent expérimentaux ; suivez leur documentation actuelle et celle de kohya-ss/sd-scripts.
Quelles différences entre l’entraînement LoRA SDXL et FLUX.1 ?
Architecture, text encoders, scripts, besoin VRAM et paramètres diffèrent. Utilisez le LoRA avec la famille du modèle ayant servi à l’entraînement.

11 min de lecture · Publié le: 28 août 2026 · Mis à jour le: 28 août 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog