Auteurs:
- Anthony BERNARD
- David FRECON
- Junyi LI
- Louis PAGNIER
- Léandre PERROT
- Léo SRON
Le but de ce projet est d'implémenter le papier High-Resolution Image Synthesis with Latent Diffusion Models.
Pour arriver à ce résultat, nous avons dans un premier temps implémenté un modèle de diffusion classique, puis nous avons implémenté et encapsulé ce modèle dans un espace latent pour obtenir un modèle de diffusion latente.
De plus, nous avons ajouté des vecteurs décrivant une description textuelle de l'image pour faire de la génération d'image à partir de texte. L'encodeur du texte est celui de FashionCLIP.
Le projet est retrouvable via une application HuggingFace Spaces: https://huggingface.co/spaces/dfrecon/FashionStableDiffusion.
Voici un exemple de génération d'images de vêtements à partir de texte avec notre modèle entraîné : Textes utilisés : "a red dress", "blue T-Shirt", "pink tshirt", "a yellow jean", "black dress".
stable_diffusion.mp4
On peut voir que le modèle est capable de générer des images de vêtement non présentes dans le dataset (comme le jean jaune), ce qui montre que le modèle a réussi à interpoler les différents concepts de vêtements au sein de l'espace latent pour générer des images cohérentes.
Pour installer les dépendances, il suffit de lancer la commande suivante depuis la racine du projet :
poetry installDe plus, voici un lien pour télécharger les poids des modèles utilisés pour l'inférence : https://drive.google.com/file/d/1Z5UbMDq9G8L-gSbGKzfCB2zsWnuwm5oK/view?usp=drive_link
Il faut que les poids en .pt et .pth soient à la racine du dossier ./models/ pour lancer les scripts d'inférence sans faire de modifications.
Pour lancer notre application, il suffit de lancer la commande suivante depuis la racine du projet :
poetry run python StableDiffusion/app.pySi vous souhaitez lancer directement les scripts d'inférence ou d'entraînement, vous devez d'abord ajouter le dossier à votre PYTHONPATH:
export PYTHONPATH=$PYTHONPATH:$(pwd)DDPM:
poetry run python StableDiffusion/DDPM/train_DDPM.pyVAE:
poetry run python StableDiffusion/VAE/train_VAE.pyStable Diffusion:
poetry run python StableDiffusion/train.pyDDPM:
poetry run python StableDiffusion/DDPM/run_DDPM.pyVAE:
poetry run python StableDiffusion/VAE/run_VAE.py
poetry run python StableDiffusion/VAE/plot_latent_space.py # Pour visualiser l'espace latentStable Diffusion:
poetry run python StableDiffusion/inference.py