top of page

Générer des photos de soi en utilisant Stable Diffusion et Dreambooth

Dernière mise à jour : 18 janv.

Hello ! Alors il y a maintenant un mois je me suis amusé à entrainer un modèle custom sur des images de moi-même afin de pouvoir générer des photos de moi.


Je commence par te présenter rapidement la tech puis le résultat et pour finir je te donne les liens et la marche à suivre pour faire de même.


La tech

Au niveau tech j'ai utilisé "Stable Diffusion" et "Dreambooth". Stable Diffusion est une "IA" créée par stability.ai , voici un lien sur la release de ce modèle : https://stability.ai/blog/stable-diffusion-public-release


Dreambooth est un modèle OpenSource créé par une équipe de chez Google Research. Ce modèle est capable d'apprendre à reproduire un sujet en générant de nouvelles images de ce sujet.


Les résultats :



Et maintenant, le HOW TO, en très bref


En premier lieu, crées-toi un compte sur "HuggingFace 🤗" et génères un "access token" que tu utiliseras plus tard.


Afin d'entraîner le modèle sur des photos de toi tu dois commencer par les préparer :

- Sélectionnes environ 20 photos de toi toutes différentes dans des situations différentes avec des cadrages différents.

- Tu resizes toutes ces ces photos en 512x512px et tu les recadres. Tu peux utiliser le logiciel en ligne birme.net .


Maintenant que ton jeu d'images est prêt tu peux aller sur ce google clab afin d'entrainer un modèle custom :


Tu runs le code petit à petit en suivant les steps by step :

Comme tu peux le voir dans le screen ci-dessus on arrive au fameux step "HuggingFace 🤗", donc là tu vas lui accepter les licenses/agreements, lui donner ton access token puis cliquer sur le bouton "play" pour run ce bloque de code.


Tu continues le step by step , dans mon cas j'ai décidé de sauvegarder le modèle dans mon gDrive.


Et ensuite au step du "Start Training" j'ai modifié un petit peu le code afin qu'il comprenne le prompt "Alexis". je ne sais plus exactement ce que j'avais mis mais qqch du genre :


# You can also add multiple concepts here. Try tweaking `--max_train_steps` accordingly.

concepts_list = [
    {
        "instance_prompt":      "Alexis",
        "class_prompt":         "photo of a person",
        "instance_data_dir":    "/content/data/ukj",
        "class_data_dir":       "/content/data/person"
    },
    # Additional concepts can be added here
]

# `class_data_dir` contains regularization images
import json
import os
for c in concepts_list:
    os.makedirs(c["instance_data_dir"], exist_ok=True)

with open("concepts_list.json", "w") as f:
    json.dump(concepts_list, f, indent=4)

Puis dans le bloc suivant j'ai édité les valeurs suivantes :

Je ne sais plus exactement ce que j'avais mis comme train_steps mais il me semble que c'était entre 2000 et 8000. Avec 800 les résultats n'étaient pas assez qualy.


Bref on run les blocs dans l'ordre jusqu'au step "Convert weights to ckpt to use in web UIs like AUTOMATIC1111" .


Ce step est super utile et je vous conseille de le faire car AUTOMATIC1111 c'est vraiment une interface web GENIAL !


Tu peux tester ta génération ici :


Si tu es satisfait alors tu peux aller copier le repo de la web UI de AUTOMATIC1111 ici :


Dans son readme AUTOMATIC1111 explique comment installer l'UI, tu peux suivre son step by step, je te le copie ici :


Automatic Installation on Windows

  • Install Python 3.10.6, checking "Add Python to PATH"

  • Install git.

  • Download the stable-diffusion-webui repository, for example by running

  • Place model.ckpt in the models directory (see dependencies for where to get it).

  • (Optional) Place GFPGANv1.4.pth in the base directory, alongside webui.py (see dependencies for where to get it).

  • Run webui-user.bat from Windows Explorer as normal, non-administrator, user.


Dans notre cas le model.ckpt c'est celui qu'on a généré au préalable via le Google Colab, c'est notre modèle entrainé sur notre visage. J'ai également effectué le step optionnel avec GFPGANv1.4.pth.


Une fois tout cela fait, tu run le fichier "webui-user.bat" et ton projet tourne en local, tu peux maintenant générer des images de toi en utilisant cette interface web. FELICITATIONS 🤩


Enjoy ! 😎


Voici tous les liens / sources que j'ai utilisés :


Stable Diffusion :


Dreambooth :


Stable Diffusion Web UI :


Un google colab pour entraîner facilement le modèle :

Posts récents

Voir tout

Comentários


bottom of page