Présentation détaillée du projet Stable Diffusion
Aperçu du projet
Stable Diffusion est un modèle open source de génération d'images à partir de texte développé par Stability AI, basé sur la technologie des modèles de diffusion latente (Latent Diffusion Models). Ce projet permet la synthèse d'images haute résolution et peut générer des images de haute qualité à partir de descriptions textuelles.
Adresse du projet : https://github.com/Stability-AI/stablediffusion
Caractéristiques techniques clés
1. Architecture des modèles de diffusion latente
- Utilisation d'un espace latent pour le processus de diffusion, plus efficace que l'opération directe dans l'espace des pixels
- Adoption d'une architecture U-Net comme réseau de débruitage
- Intégration de mécanismes d'auto-attention et d'attention croisée
2. Encodeur de texte
- Utilisation d'OpenCLIP ViT-H/14 comme encodeur de texte
- Prise en charge du contrôle complexe des conditions textuelles
- Capacité à comprendre des descriptions textuelles détaillées et à les convertir en contenu visuel
3. Prise en charge de plusieurs résolutions
- Stable Diffusion 2.1-v: sortie de 768x768 pixels
- Stable Diffusion 2.1-base: sortie de 512x512 pixels
- Prise en charge de l'entraînement et de l'inférence à différentes résolutions
Historique des principales versions
Version 2.1 (7 décembre 2022)
- Lancement du modèle v avec une résolution de 768x768 et du modèle base avec une résolution de 512x512
- Basé sur le même nombre de paramètres et la même architecture
- Affinage sur un ensemble de données de filtrage NSFW plus permissif
Version 2.0 (24 novembre 2022)
- Nouveau modèle avec une résolution de 768x768
- Utilisation d'OpenCLIP-ViT/H comme encodeur de texte
- Entraînement à partir de zéro, adoption de la méthode de v-prediction
Stable UnCLIP 2.1 (24 mars 2023)
- Prise en charge des opérations de transformation et de mélange d'images
- Affinage basé sur SD2.1-768
- Fourniture de deux variantes : Stable unCLIP-L et Stable unCLIP-H
Fonctionnalités principales
1. Génération d'images à partir de texte
Fonction de base de génération d'images à partir de descriptions textuelles :
python scripts/txt2img.py --prompt "a professional photograph of an astronaut riding a horse" --ckpt <path/to/768model.ckpt/> --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768
2. Réparation d'images (Inpainting)
Prise en charge de la réparation et de l'édition locale d'images :
python scripts/gradio/inpainting.py configs/stable-diffusion/v2-inpainting-inference.yaml <path-to-checkpoint>
3. Génération d'images conditionnelle en profondeur
Génération d'images basée sur des informations de profondeur pour la conservation de la structure :
python scripts/gradio/depth2img.py configs/stable-diffusion/v2-midas-inference.yaml <path-to-ckpt>
4. Super-résolution d'images
Fonction de super-résolution 4x :
python scripts/gradio/superresolution.py configs/stable-diffusion/x4-upscaling.yaml <path-to-checkpoint>
5. Conversion d'image à image
Fonctionnalité classique img2img :
python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8 --ckpt <path/to/model.ckpt>
Installation et configuration de l'environnement
Environnement de base
conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
Optimisation des performances (recommandée)
Installation de la bibliothèque xformers pour améliorer les performances du GPU :
export CUDA_HOME=/usr/local/cuda-11.4
conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
conda install -c conda-forge gcc
conda install -c conda-forge gxx_linux-64==9.5.0
cd ..
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
cd ../stablediffusion
Optimisation pour les CPU Intel
Configuration d'optimisation pour les CPU Intel :
apt-get install numactl libjemalloc-dev
pip install intel-openmp
pip install intel_extension_for_pytorch -f https://software.intel.com/ipex-whl-stable
Détails de l'architecture technique
Composants du modèle
- Architecture encodeur-décodeur: Utilisation d'un auto-encodeur avec un facteur de sous-échantillonnage de 8
- Réseau U-Net: U-Net avec 865M de paramètres pour le processus de diffusion
- Encodeur de texte: OpenCLIP ViT-H/14 traite les entrées de texte
- Échantillonneur: Prise en charge de diverses méthodes d'échantillonnage telles que DDIM, PLMS, DPMSolver
Optimisation de la mémoire
- Activation automatique du mécanisme d'attention efficace en mémoire
- Prise en charge de l'accélération xformers
- Fourniture d'une option de précision FP16 pour économiser la mémoire vidéo
Scénarios d'application
1. Création artistique
- Conception d'art conceptuel
- Génération d'illustrations
- Transfert de style
2. Production de contenu
- Création de matériel marketing
- Contenu pour les médias sociaux
- Conception de prototypes de produits
3. Applications de recherche
- Recherche en vision par ordinateur
- Recherche sur les modèles génératifs
- Apprentissage multimodal
Considérations éthiques et limitations
Biais des données
- Le modèle reflète les biais et les malentendus présents dans les données d'entraînement
- Il n'est pas recommandé de l'utiliser directement pour des services commerciaux sans ajouter de mécanismes de sécurité supplémentaires
Sécurité du contenu
- Système de filigrane invisible intégré pour aider à identifier le contenu généré par l'IA
- Efforts pour réduire le contenu pornographique explicite, mais une utilisation prudente est toujours nécessaire
Restrictions d'utilisation
- Les poids sont uniquement destinés à la recherche
- Respect de la licence CreativeML Open RAIL++-M
