Guide Pratique de Stable Diffusion : Maîtriser la Génération d'Images par IA

Stable Diffusion est un modèle de diffusion latent open-source conçu pour la synthèse d'images à partir de descriptions textuelles. Ce guide explique comment l'installer, l'utiliser pour diverses tâches de création, et optimiser les résultats. Les techniques présentées couvrent l'installation, les modèles de poids, la génération texte-image, la transformation image-image, et les applications avancées.

Fonctionnement de Stable Diffusion

Développé par Stability AI, Runway et CompVis, Stable Diffusion repose sur des modèles de diffusion latente (LDM). Il convertit des prompts textuels en images visuellement cohérentes. Sa conception légère nécessite un GPU avec au moins 10 Go de VRAM, facilitant l'accès pour les utilisateurs grand public.

Procédure d'Installation

Prérequis Système

  • Environnement conda installé
  • GPU NVIDIA avec minimum 10 Go de VRAM
  • Connexion réseau stable pour télécharger les dépendances

Étapes d'Installation

  1. Cloner le dépôt du projet :
git clone https://gitcode.com/GitHub_Trending/st/stable-diffusion
cd stable-diffusion
  1. Créer et activer l'environnement conda :
conda env create -f environment.yaml
conda activate ldm
  1. Pour mettre à jour un environnement existant, exécuter :
conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .

Acquisition des Poids du Modèle

Plusieurs versions de checkpoints sont disponibles, chacune entraînée sur des datasets différents :

  • sd-v1-1.ckpt : Entraîné sur laion2B-en (256x256) puis laion-high-resolution (512x512)
  • sd-v1-2.ckpt : Continue l'entraînement sur laion-aesthetics v2 5+
  • sd-v1-3.ckpt et sd-v1-4.ckpt : Variants avec davantage de pas d'entraînement

Les performances varient selon les versions ; des évaluations comparatives sont fournies dans les figures associées.

Après téléchargement, créer un lien symbolique pour l'accès :

mkdir -p models/ldm/stable-diffusion-v1/
ln -s <chemin-vers-modele.ckpt> models/ldm/stable-diffusion-v1/model.ckpt</chemin-vers-modele.ckpt>

Génération d'Images à Partir de Texte

Commande de Base

Pour créer une image à partir d'un prompt :

python scripts/txt2img.py --prompt "une photographie d'un astronaute chevauchant un cheval" --plms

Cette commande utilise l'échantillonneur PLMS par défaut, avec 50 itérations et une résolution de 512x512 pixels.

Exemples de Résultats

Les figures illustrées montrent divers styles générés, tels que des paysages urbains abstraits, des créatures hybrides, ou des visualisations futuristes.

Paramètres Personnalisables

  • --scale : Ajuste l'alignement texte-image (défaut : 7.5)
  • --n_samples : Nombre d'images à générer
  • --H et --W : Hauteur et largeur de l'image
  • --ddim_steps : Nombre d'étapes d'échantillonnage (plus élevé = plus de détails)
  • --seed : Graine aléatoire pour la reproductibilité

Exemple pour générer deux images de châteaux fantastiques :

python scripts/txt2img.py --prompt "un château fantastique dans les montagnes, éclairage cinématique, ultra détaillé" --plms --n_samples 2 --scale 9 --ddim_steps 75

Transformation d'Images Existantes

Utilisation de l'Image-vers-Image

Pour modifier une image de base avec un prompt :

python scripts/img2img.py --prompt "Un paysage fantastique, tendance sur artstation" --init-img <chemin-vers-image.jpg> --strength 0.8</chemin-vers-image.jpg>

Le paramètre --strength contrôle l'intensité des modifications ; une valeur proche de 1.0 éloigne davantage le résultat de l'image originale.

Exemple de Transformation

Les figures montrent une esquisse simple transformée en paysage détaillé ; l'entrée et la sortie sont illustrées côte à côte.

Astuces Pratiques

  • Pour les croquis vers illustrations : strength entre 0.6 et 0.7
  • Pour le transfert de style : strength entre 0.8 et 0.9
  • Expérimenter avec des prompts stylistiques comme "peinture impressionniste", "art numérique", "aquarelle"
  • Utiliser --n_iter pour générer plusieurs séries et sélectionner la meilleure

Applications Avancées

Génération en Lot

Pour traiter plusieurs prompts depuis un fichier texte :

python scripts/txt2img.py --from-file liste_prompts.txt --plms --n_samples 3

Agrandissement d'Images

Augmenter la résolution d'une image basse définition avec des détails supplémentaires :

python scripts/img2img.py --prompt "hautement détaillé, résolution 8k" --init-img image-basse-res.jpg --strength 0.3 --W 1024 --H 1024

Intégration avec la Bibliothèque Diffusers

Stable Diffusion peut être utilisé via Hugging Face diffusers pour une interface programmatique plus flexible :

from torch import autocast
from diffusers import StableDiffusionPipeline

generateur = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    use_auth_token=True
).to("cuda")

prompt_texte = "une photo d'un astronaute montant un cheval sur Mars"
with autocast("cuda"):
    resultat_image = generateur(prompt_texte)["sample"][0]

resultat_image.save("astronaute_cheval_mars.png")

Techniques de Rédaction des Prompts

Structure Efficace

Un bon prompt combine :

  • Sujet principal : le contenu central
  • Style artistique : médium, mouvement
  • Qualité : niveau de détail, résolution
  • Composition : angle de vue, éclairage

Exemple : "un lion majestueux sur une montagne, art numérique, concept art, ultra détaillé, résolution 8k, éclairage cinématique, angle dramatique"

Mots-clés de Style Courants

  • Styles : impressionniste, surréaliste, cyberpunk, steampunk, minimaliste
  • Médiums : peinture à l'huile, aquarelle, art numérique, croquis au crayon, rendu 3D
  • Qualité : hautement détaillé, complexe, photoréaliste, chef-d'œuvre, primé

Des exemples de prompts et leurs résultats sont disponibles dans les ressources du projet pour référence.

Étiquettes: Stable Diffusion diffusion models IA Génération d'images txt2img

Publié le 1 juin à 04h27