Stable Diffusion: LoRA selfie

Vous pouvez créer votre premier ensemble de données à l'aide d'un appareil photo simple et d'un arrière-plan relativement uniforme, tel qu'un mur blanc ou un rideau occultant monotone. Pour un échantillon de données, j'ai utilisé un appareil photo sans miroir Olympus OM-D EM5 Mark II avec des objectifs 14-42. Cet appareil photo peut être commandé à distance à partir de n'importe quel smartphone et dispose d'un mode de prise de vue en continu très rapide.
J'ai monté l'appareil photo sur un trépied et j'ai réglé la priorité de mise au point sur le visage. Ensuite, j'ai sélectionné le mode dans lequel l'appareil photo capture 10 images consécutives toutes les 3 secondes et j'ai lancé le processus. Pendant la prise de vue, j'ai lentement tourné la tête dans la direction sélectionnée et j'ai changé de direction toutes les 10 images :

Le résultat était d'environ 100 images avec un arrière-plan monotone :

L'étape suivante consiste à supprimer l'arrière-plan et à laisser le portrait sur un fond blanc.
Supprimer l'arrière-plan
Vous pouvez utiliser la fonction standard d'Adobe Photoshop Remove background et le traitement par lots. Stockons les actions que nous voulons appliquer à chaque image d'un ensemble de données. Ouvrez une image, cliquez sur l'icône du triangle, puis sur le symbole +:

Saisissez le nom de la nouvelle action, par exemple, Remove Background et cliquez sur Record:

Dans l'onglet Layers, trouvez le symbole du cadenas et cliquez dessus :

Cliquez ensuite sur le bouton Remove background dans le panneau flottant :

Cliquez avec le bouton droit de la souris sur Layer 0 et sélectionnez Flatten Image:

Toutes nos actions ont été enregistrées. Arrêtons ce processus :

Vous pouvez maintenant fermer le fichier ouvert sans enregistrer les modifications et sélectionner File >> Scripts >> Image Processor…

Sélectionnez les répertoires d'entrée et de sortie, choisissez l'action Remove Background créée à l'étape 4 et cliquez sur le bouton Run:

Soyez patient. Adobe Photoshop ouvrira chaque image dans le répertoire sélectionné, répétera les actions enregistrées (désactiver le verrouillage des calques, supprimer l'arrière-plan, aplatir l'image) et les enregistrera dans un autre répertoire sélectionné. Ce processus peut prendre quelques minutes, en fonction du nombre d'images.

Lorsque le processus est terminé, vous pouvez passer à l'étape suivante.
Téléchargement sur le serveur
Utilisez l'un des guides suivants (adaptés au système d'exploitation de votre PC) pour télécharger le répertoire dataset sur le serveur distant. Par exemple, placez-le dans le répertoire d'accueil de l'utilisateur par défaut, /home/usergpu:
- Échange de fichiers à partir de Linux
- Échange de fichiers depuis Windows
- Échange de fichiers à partir de macOS
Pré-installation
Mise à jour des paquets système existants :
sudo apt update && sudo apt -y upgrade
Installer deux paquets supplémentaires :
sudo apt install -y python3-tk python3.10-venv
Installons la version 11.8 de la boîte à outils CUDA®. Téléchargez le fichier pin spécifique :
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
La commande suivante place le fichier téléchargé dans le répertoire système, qui est contrôlé par le gestionnaire de paquets apt:
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
L'étape suivante consiste à télécharger le référentiel CUDA® principal :
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
Ensuite, procédez à l'installation du paquet à l'aide de l'utilitaire standard dpkg:
sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
Copiez le trousseau de clés GPG dans le répertoire système. Il pourra ainsi être utilisé par les utilitaires du système d'exploitation, y compris le gestionnaire de paquets apt :
sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
Mettre à jour les dépôts de cache du système :
sudo apt-get update
Installer la boîte à outils CUDA® à l'aide d'apt :
sudo apt-get -y install cuda
Ajoutez CUDA® à PATH. Ouvrez le shell bash config :
nano ~/.bashrc
Ajoutez les lignes suivantes à la fin du fichier :
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Enregistrez le fichier et redémarrez le serveur :
sudo shutdown -r now
Installer l'entraîneur
Copier le dépôt du projet Kohya sur le serveur :
git clone https://github.com/bmaltais/kohya_ss.git
Ouvrir le répertoire téléchargé :
cd kohya_ss
Rendez le script d'installation exécutable :
chmod +x ./setup.sh
Exécuter le script :
./setup.sh
Vous recevrez un message d'avertissement de l'utilitaire d'accélération. Résolvons le problème. Activez l'environnement virtuel du projet :
source venv/bin/activate
Installez le paquetage manquant :
pip install scipy
Et configurez manuellement l'utilitaire d'accélération :
accelerate config
Attention, l'activation d'un nombre impair de CPU provoquera une erreur. Par exemple, si j'ai 5 GPU, seuls 4 peuvent être utilisés avec ce logiciel. Sinon, une erreur se produira au démarrage du processus. Vous pouvez immédiatement vérifier la nouvelle configuration de l'utilitaire en appelant un test par défaut :
accelerate test
Si tout va bien, vous recevrez un message comme celui-ci :
Test is a success! You are ready for your distributed training!
deactivate
Maintenant, vous pouvez initier le serveur public du formateur avec l'interface graphique de Gradio et une simple authentification par login/mot de passe (changez l'utilisateur/mot de passe par le vôtre) :
./gui.sh --share --username user --password password
Vous recevrez deux chaînes de caractères :
Running on local URL: http://127.0.0.1:7860 Running on public URL: https://.gradio.live
Ouvrez votre navigateur web et entrez l'URL publique dans la barre d'adresse. Saisissez votre nom d'utilisateur et votre mot de passe dans les champs appropriés, puis cliquez sur Connexion :

Préparer le jeu de données
Commencez par créer un nouveau dossier dans lequel vous stockerez le modèle LoRA entraîné :
mkdir /home/usergpu/myloramodel
Ouvrez les onglets suivants : Utilities >> Captioning >> BLIP captioning. Remplissez les champs comme indiqué dans l'image et cliquez sur Caption images:

Le formateur téléchargera et exécutera un modèle de réseau neuronal spécifique (1,6 Gb) qui crée des invites textuelles pour chaque fichier image dans le répertoire sélectionné. Il sera exécuté sur un seul GPU et prendra environ une minute.
Passez à l'onglet LoRA >> Tools >> Dataset preparation >> Dreambooth/LoRA folder preparation, remplissez les trous et appuyez successivement sur Prepare training data et Copy info to Folders Tab:

Dans cet exemple, nous utilisons le nom nikolai comme Instance prompt et "person" comme Class prompt. Nous définissons également /home/usergpu/dataset comme Training Images et /home/usergpu/myloramodel comme Destination training directory.
Passez à nouveau à l'onglet LoRA >> Training >> Folders. Assurez-vous que les noms Image folder, Output folder et Logging folder sont correctement remplis. Si vous le souhaitez, vous pouvez remplacer Model output name par votre propre adresse. Enfin, cliquez sur le bouton Start training:

Le système commencera à télécharger des fichiers et des modèles supplémentaires (~10 GB). Ensuite, le processus d'apprentissage commencera. En fonction de la quantité d'images et des paramètres appliqués, cela peut prendre plusieurs heures. Une fois la formation terminée, vous pouvez télécharger le répertoire /home/usergpu/myloramodel sur votre ordinateur pour une utilisation ultérieure.
Testez votre LoRA
Nous avons préparé quelques articles sur Stable Diffusion et ses forks. Vous pouvez essayer d'installer Easy Diffusion avec notre guide Easy Diffusion UI. Une fois que le système a été installé et fonctionne, vous pouvez télécharger votre modèle LoRA au format SafeTensors directement sur /home/usergpu/easy-diffusion/models/lora
Mettez à jour la page web d'Easy Diffusion et sélectionnez votre modèle dans la liste déroulante :

Écrivons une simple invite, portrait of <nikolai> wearing a cowboy hat, et générons nos premières images. Ici, nous avons utilisé un modèle de diffusion stable personnalisé téléchargé sur civitai.com: Realistic Vision v6.0 B1:

Vous pouvez expérimenter avec des invites et des modèles, basés sur la diffusion stable, pour obtenir de meilleurs résultats. Nous vous souhaitons beaucoup de plaisir !
Voir aussi:
Mis à jour: 26.03.2025
Publié: 21.01.2025