12 novembre 2026 · Équipe VRAMfarm
Entraîner un LoRA Flux sur vos propres photos : 20 images, 24 Go et environ deux heures
Vingt bonnes photos, environ 2 000 pas d’entraînement et une carte de 24 Go : c’est tout ce dont un LoRA de ressemblance pour Flux.1 dev a besoin. Sur une RTX 4090 louée, l’entraînement lui-même prend 1 à 2,5 heures, et un premier essai avec l’installation et les images de test revient à environ 1,24 € de temps GPU. La plupart des LoRA ratés échouent avant que le GPU ne démarre, sur les photos et les légendes : ces deux étapes méritent autant de soin que les commandes.
Le jeu de données : combien de photos, et lesquelles
Pour une personne, la plage utile va de 15 à 30 photos. En dessous de 10, le modèle n’arrive pas à séparer votre visage de l’éclairage de ces prises de vue précises. Au-delà de 40, cela aide rarement et il devient plus difficile de garder une qualité homogène. Vingt photos nettes et variées valent mieux qu’une centaine de photos semblables.
À quoi ressemble un bon jeu :
- De la variété là où vous voulez de la souplesse. Des angles différents (de face, de trois quarts, de profil), des éclairages (lumière du jour, intérieur, soirée), des arrière-plans, des vêtements et des expressions. Tout ce qui reste constant d’une photo à l’autre finit intégré au LoRA. Si vous portez le même pull noir sur 15 photos, vous retrouverez ce pull sur chaque image.
- Surtout des plans tête et épaules, quelques plans en buste et en pied. Environ deux tiers de gros plans donnent assez de pixels au visage ; le reste apprend les proportions.
- Vous seul dans le cadre. Recadrez pour exclure les autres personnes, ou écartez la photo. Un deuxième visage perturbe l’entraînement plus que tout le reste.
- Pas de filtres prononcés, de modes beauté ni d’agrandissements par IA. Le LoRA apprend le filtre comme s’il faisait partie de votre visage.
- Au moins 1024 pixels sur le petit côté après recadrage. Les photos de téléphone conviennent. Les petites images sont agrandies par l’outil d’entraînement et paraissent floues.
Inutile de tout recadrer en carré : ai-toolkit et kohya répartissent les images en groupes par format. Placez les images dans un seul dossier au nom neutre, par exemple dataset, avec des noms de fichiers comme 01.jpg, 02.jpg. Votre nom n’a rien à faire dans des noms de fichiers stockés sur une machine louée.
Pour un LoRA de style (un style d’illustration, un rendu de produit), les mêmes chiffres s’appliquent à peu près : 20 à 50 images qui partagent le style et changent de sujet.
Les légendes et le mot déclencheur
Chaque image reçoit un fichier texte du même nom (01.txt à côté de 01.jpg). La légende indique au modèle quelle partie de l’image est le nouveau concept et quelle partie est ordinaire.
Choisissez un mot déclencheur qui ne veut encore rien dire, comme annx ou mrkv. Un vrai mot comme « anna » a déjà un sens pour le modèle et contrarie votre entraînement. Rédigez ensuite des légendes courtes qui mentionnent le déclencheur et décrivent ce qui change d’une photo à l’autre :
photo of annx, a woman with curly hair, smiling, sitting at a cafe table, daylight
photo of annx, close-up portrait, serious expression, dark background
Deux règles décident de l’essentiel du résultat. Décrivez ce que vous voulez garder modifiable (vêtements, arrière-plan, lumière), car ce qui est décrit est traité comme distinct du concept. Ne décrivez pas le visage lui-même en détail, car c’est précisément ce que le mot déclencheur doit absorber.
Flux est indulgent sur ce point. Des légendes réduites à photo of annx fonctionnent étonnamment bien pour un seul visage, et beaucoup de gens entraînent ainsi. Des légendes détaillées aident quand le jeu est inégal ou quand vous voulez ensuite changer librement de vêtements et de décor. Les outils de légende automatique (FluxGym utilise Florence-2 ; JoyCaption est populaire) évitent de tout taper, mais relisez le résultat et supprimez ce qui est faux, surtout les descriptions du visage.
ai-toolkit, FluxGym ou kohya : quel outil d’entraînement
Les trois sont gratuits et tournent sur un serveur vide avec PyTorch et Jupyter.
| Outil | Utilisation | Idéal pour | Préréglages VRAM |
|---|---|---|---|
| ai-toolkit (Ostris) | Une configuration YAML et une commande ; interface web en option | Les meilleurs réglages par défaut pour Flux, des images d’échantillon pendant l’entraînement, aussi FLUX.2, Qwen-Image, Wan | Configuration 24 Go ; option low_vram pour moins |
| FluxGym | Une page web simple : envoi, légendes, entraînement | Un premier LoRA, sans fichier de configuration | Préréglages 12, 16 et 20 Go |
| kohya sd-scripts | Ligne de commande avec de nombreuses options | Un contrôle fin, les scripts que FluxGym exécute en coulisses | Tout, avec fp8 et échange de blocs |
Si vous êtes à l’aise avec un terminal, prenez ai-toolkit : sa configuration d’exemple train_lora_flux_24gb.yaml est un point de départ raisonnable et produit des images d’échantillon toutes les quelques centaines de pas, ce qui vous permet de choisir le meilleur checkpoint. FluxGym est plus simple pour un premier essai, surtout sur une carte de 16 Go.
Les deux entraînent sur Flux.1 dev. C’est un modèle à accès restreint sur Hugging Face : pour ai-toolkit, acceptez sa licence sur la page du modèle et créez un token de lecture ; FluxGym récupère ses fichiers de modèle au premier démarrage, comme l’explique son README. Les poids de Flux.1 dev sont sous licence non commerciale ; vérifiez ses conditions actuelles avant d’utiliser des images pour un travail rémunéré. Si c’est important pour vous, ai-toolkit peut entraîner sur Flux.1 schnell (Apache 2.0) avec un adaptateur d’entraînement.
VRAM, durée et coût par carte
Flux.1 dev compte 12 milliards de paramètres, soit environ 24 Go en bf16. Les outils d’entraînement le chargent en 8 bits, ce qui divise ce chiffre par deux et laisse de la place pour le LoRA, l’optimiseur et les images en 1024 px. C’est pourquoi 24 Go est la taille confortable. Sur 16 Go, l’outil déplace aussi des blocs du modèle vers la RAM système et retour à chaque pas : cela fonctionne, mais nettement plus lentement.
Essai typique : 20 photos, 2 000 pas, rang 16, groupes de résolution jusqu’à 1024 px.
| Carte | VRAM | Durée d’entraînement (fourchette) | Coût de l’entraînement au milieu de la fourchette |
|---|---|---|---|
| RTX 4080, RTX 5080 (astuces 16 Go) | 16 Go | 3 à 6 h | 1,40 € sur une RTX 4080 |
| RTX 3090 | 24 Go | 2,5 à 4 h | 0,90 € |
| RTX 4090 | 24 Go | 1 à 2,5 h | 0,89 € |
| RTX 5090 | 32 Go | 0,8 à 1,6 h | 0,84 € |
| H100 | 80 Go | 0,5 à 1 h | 2,93 € |
Prenez ces durées comme des fourchettes pour planifier, pas comme des benchmarks : la résolution, le rang, le nombre d’images d’échantillon et la version de l’outil les font varier. Entraîner uniquement en 512 px divise la durée à peu près par deux, avec moins de détails fins. Une H100 est la plus rapide, mais rarement la moins chère ; un LoRA est une tâche trop petite pour l’exploiter pleinement. La RTX 4090 et la RTX 3090 sont les choix habituels, et la 3090, moins chère, l’emporte souvent sur le prix par LoRA quand vous n’êtes pas pressé. La page des tarifs indique les prix actuels.
Pour les pas : environ 100 pas par photo est un bon point de départ, soit 1 500 à 2 500 pour un jeu de 15 à 25 photos. Un taux d’apprentissage de 1e-4 et un rang 16 (les valeurs par défaut d’ai-toolkit) conviennent aux visages. Enregistrez un checkpoint tous les 250 pas et jugez sur les échantillons. Le meilleur n’est souvent pas le dernier.
Lancer l’entraînement sur un serveur loué
Lancez un serveur vide PyTorch + Jupyter sur une carte de 24 Go. Le pilote et la version CUDA de la machine sont affichés avant le lancement ; les outils d’entraînement actuels demandent CUDA 12.x ou plus récent, vérifiez donc à cet endroit. Ouvrez Jupyter → File → New → Terminal, ou connectez-vous en SSH (guide de la clé SSH).
Envoyez votre dossier dataset avec le bouton d’envoi de Jupyter (compressez-le d’abord, puis unzip dataset.zip). Installez ensuite ai-toolkit, en suivant son README pour les versions exactes :
cd /workspace
git clone https://github.com/ostris/ai-toolkit
cd ai-toolkit
pip install -r requirements.txt
echo "HF_TOKEN=<your read token>" > .env
cp config/examples/train_lora_flux_24gb.yaml config/annx.yaml
Dans config/annx.yaml, renseignez name, trigger_word: "annx", folder_path: "/workspace/dataset", steps: 2000 et les prompts d’échantillon (en y mettant votre mot déclencheur). Lancez ensuite l’entraînement dans tmux, pour qu’il continue quand vous fermez le navigateur :
tmux new -s lora
python run.py config/annx.yaml
# détacher avec Ctrl+B, puis D ; revenir avec : tmux attach -t lora
Le premier démarrage télécharge Flux.1 dev et ses encodeurs de texte, environ 30 à 35 Go. Ces minutes sont facturées, et les gigaoctets comptent comme du trafic au tarif de la machine affiché avant le lancement. Les checkpoints et les images d’échantillon apparaissent dans /workspace/ai-toolkit/output/<name>/. Ouvrez les échantillons dans Jupyter au fur et à mesure ; s’ils sont déjà réussis au pas 1 250, vous pouvez arrêter plus tôt.
FluxGym affiche une page web sur son propre port. Sur un serveur PyTorch vide, seuls SSH et Jupyter sont accessibles de l’extérieur : ouvrez donc FluxGym par un tunnel SSH (ssh -L 7860:localhost:7860 ... avec l’hôte et le port indiqués dans Mes serveurs) et allez sur http://localhost:7860 sur votre ordinateur.
Un entraînement occupe le GPU, la protection contre l’inactivité le laisse donc tranquille. Une fois qu’il est terminé, le GPU se calme. Si vous dormez et que rien n’est connecté, vous recevez un avertissement d’inactivité au bout d’environ deux heures, et une heure plus tard le serveur enregistre /workspace et s’arrête (le dossier d’un serveur PyTorch peut être enregistré ; là où l’enregistrement n’est pas possible, vous ne recevez que les avertissements). Ces heures d’inactivité sont payées. Pour arrêter pile à la fin, ajoutez un appel à l’API après python run.py, ou réglez simplement un réveil.
Vos photos sur une machine louée
C’est la question qu’on pose à voix basse, alors voici une réponse claire.
Nos GPU proviennent d’hôtes vérifiés, pas de data centers qui nous appartiennent. Avant le lancement, vous voyez le pays de la machine. Votre serveur tourne dans son propre conteneur, séparé des autres clients, et son disque est effacé à l’arrêt du serveur. L’hôte exploite l’ordinateur physique, et quiconque contrôle physiquement une machine peut en principe lire ce qu’elle contient. C’est vrai de tout serveur loué, d’une place de marché à un grand cloud, et c’est le risque que vous évaluez.
Pour un jeu de portraits, ces habitudes le réduisent à très peu :
- Supprimez les métadonnées avant l’envoi. Les photos de téléphone contiennent des coordonnées GPS et le nom de l’appareil.
exiftool -all= *.jpgsur votre ordinateur les retire. - N’envoyez que le jeu d’entraînement, pas votre photothèque, et utilisez des noms de fichiers neutres.
- Supprimez le jeu de données une fois l’entraînement terminé (
rm -rf /workspace/dataset /workspace/dataset.zip), surtout avant Enregistrer et arrêter, pour que les photos ne restent pas dans le dossier enregistré. - Traitez le LoRA comme une photo de vous. Il reproduit votre visage à la demande. Ne le publiez pas, sauf si c’est voulu.
- Choisissez le pays de la machine si cela compte pour vous ; il est affiché avant le lancement.
Les photos d’autres personnes nécessitent leur consentement. Au sens du RGPD, un visage reconnaissable est une donnée personnelle, et un modèle qui génère de nouvelles images de quelqu’un va plus loin que le partage d’une photo. Pour savoir qui peut voir quoi, lisez mes données sont-elles en sécurité sur un GPU loué ?.
Conserver le LoRA et l’utiliser dans ComfyUI
Un LoRA Flux de rang 16 pèse environ 100 à 170 Mo, le double environ en rang 32. Téléchargez depuis Jupyter le checkpoint qui vous plaît (clic droit → Download) pour en avoir une copie chez vous. Ensuite, dans /workspace/ai-toolkit/output/<name>/, supprimez les checkpoints dont vous ne voulez pas et utilisez Enregistrer et arrêter. Le dossier enregistré conserve /workspace pour le prochain serveur, même sur une autre carte, à 0,03 € par Go et par mois ; quelques LoRA réunis pèsent bien moins d’un gigaoctet. Flux.1 dev lui-même se trouve dans le cache Hugging Face, hors de /workspace : il n’est pas stocké et n’ajoute pas 30 Go à votre facture. Les détails sont dans ce que deviennent vos fichiers quand vous arrêtez un GPU.
Pour générer avec, démarrez ComfyUI, placez le fichier dans /workspace/ComfyUI/models/loras, ajoutez un nœud LoraLoader entre le modèle et le sampler, et mettez le mot déclencheur dans votre prompt. L’application Flux prête à l’emploi utilise Flux.1 schnell, où un LoRA dev fonctionne mais vous ressemble moins ; téléchargez Flux.1 dev dans ComfyUI pour une ressemblance complète. Le guide ComfyUI montre où va chaque fichier et comment récupérer Flux dev avec votre token.
Commencez avec une intensité de 0,8 à 1,0. Si chaque image ressemble à vos photos plutôt qu’à vous dans une nouvelle scène, baissez l’intensité ou revenez à un checkpoint antérieur. Si la ressemblance est faible, augmentez-la, ou entraînez 500 pas de plus.