Interrogez-nous, nous vous répondrons !

Applications et Guides

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 :

Face directions

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

Photos with background

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 +:

Create new PS action

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

Type the name of action

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

Lock the layer

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

Click remove background

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

Select Flatten Image

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

Stop action recording

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

Multiple 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:

Image processor options

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.

Photos without background

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:

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 :

Login screen

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:

Set folders

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:

Set options

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:

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 :

Select LoRA model

É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:

Generate the image

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