Module 3 — Nombre d'étapes, échelle de guidage et graine aléatoire
La consigne dit quoi générer. Trois hyperparamètres décident comment : combien de pas de débruitage, avec quelle force la consigne tire la trajectoire, et sous quelle graine aléatoire. Aucun ne se règle en isolation ; ils forment un triangle dont chaque sommet influence les deux autres.
Le nombre d'étapes : plus n'est pas mieux
Le planificateur découpe le trajet du bruit vers l'image en un nombre fini de pas. Trop peu, l'image n'a pas eu le temps de « prendre » et présente du grain ou des surfaces mal résolues. Trop, le calcul est du gaspillage : au-delà d'un seuil, chaque pas supplémentaire ne change plus rien de perceptible.
Le seuil dépend du planificateur. Avec DDIM, le planificateur historique, il faut souvent 50 étapes pour un résultat propre. Avec DPM++ 2M Karras, aujourd'hui recommandé par défaut, 20 à 30 étapes suffisent pour le même niveau de détail. Avec les planificateurs très rapides (LCM, Turbo), 4 à 8 étapes donnent déjà une image utilisable, au prix d'une légère perte de fidélité.
L'erreur classique est de raisonner « plus d'étapes = plus de qualité » comme sur un rendu de synthèse. Ce n'est pas le cas : passé le seuil, on paie du temps de calcul sans rien gagner.
L'échelle de guidage : force de la consigne
Le paramètre guidance_scale (ou CFG, pour classifier-free guidance) fixe combien la génération est attirée vers la consigne, par opposition à une génération non conditionnée. C'est le paramètre le plus mal compris du cours, parce qu'il ne se comporte pas comme un curseur linéaire de « qualité ».
Trois régimes se distinguent nettement.
À 1, il n'y a pas de guidage du tout : l'image ignore la consigne et ressemble au tirage de bruit initial passé au débruiteur. À 7 à 9, la valeur usuelle sur SD 1.5 et SDXL, la consigne est respectée avec une variété visuelle raisonnable. Au-delà de 12 à 15, la trajectoire se rigidifie : les couleurs saturent, les contours deviennent durs, les visages prennent un rendu « poussé au filtre ». C'est le symptôme du guidage trop fort, un piège fréquent lorsqu'on essaie de « forcer » le modèle à respecter une consigne mal formulée.
| Valeur | Comportement | Quand l'utiliser |
|---|---|---|
| 1 à 3 | libre, peu fidèle à la consigne | échantillonnage exploratoire, style rêveur |
| 6 à 9 | zone opérationnelle standard | par défaut sur SDXL |
| 10 à 12 | plus de rigidité, moins de variété | quand la consigne n'est pas suivie |
| 15+ | saturation, artefacts, contours durs | à éviter |
La bonne réaction face à une consigne mal suivie n'est pas de monter le guidage à 15, mais de retravailler la consigne — souvent en la raccourcissant et en pondérant le sujet principal.
Les planificateurs : Euler, DPM++, et pourquoi c'est important
Le planificateur est l'algorithme qui trace la trajectoire du latent bruité vers le latent propre. Il ne comporte aucun paramètre appris — c'est une méthode numérique — mais il a un impact énorme sur le nombre d'étapes nécessaires et sur le style d'image obtenue.
Quatre familles se rencontrent en 2026. Les planificateurs stochastiques ancestraux (Euler a, DPM2 a) réintroduisent du bruit à chaque étape : l'image dérive légèrement même à graine fixe, ce qui donne une esthétique un peu plus libre mais compromet la reproductibilité. Les déterministes (Euler, DDIM, DPM++ 2M) suivent une trajectoire fixe : à graine identique, ils produisent exactement la même image. Les rapides (LCM, Turbo) sont conçus pour 4 à 8 étapes. Enfin, la famille Karras est une variante d'échantillonnage temporel qui améliore la répartition des étapes vers la fin — DPM++ 2M Karras est aujourd'hui le défaut raisonnable.
Un même modèle, une même consigne, une même graine, mais un planificateur différent donneront des images visiblement différentes. C'est un point qui piège tous les débutants qui essaient de reproduire une image trouvée en ligne sans connaître le planificateur d'origine.
La graine aléatoire : reproductibilité et variations contrôlées
La graine (seed) initialise le générateur pseudo-aléatoire qui produit le tenseur de bruit de départ. À paramètres identiques et graine identique, la même image sort à chaque exécution — c'est la seule garantie de reproductibilité que vous ayez.
import torch
from diffusers import StableDiffusionXLPipeline, DPMSolverMultistepScheduler
pipeline = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
).to("cuda")
pipeline.scheduler = DPMSolverMultistepScheduler.from_config(
pipeline.scheduler.config,
use_karras_sigmas=True,
algorithm_type="dpmsolver++",
)
consigne = "une chaise scandinave en chene clair, atelier lumineux"
# Cinq variations sous la meme consigne, graines successives.
for graine in range(42, 47):
image = pipeline(
prompt=consigne,
num_inference_steps=25,
guidance_scale=7.5,
generator=torch.Generator("cuda").manual_seed(graine),
).images[0]
image.save(f"chaise-graine-{graine}.png")
Trois usages pratiques de la graine reviennent tout le temps. Explorer en balayant 4 à 10 graines pour une même consigne, puis choisir la plus prometteuse — c'est presque toujours plus efficace que de retravailler la consigne. Verrouiller une graine gagnante pour ensuite tester d'autres réglages sans que le hasard vienne brouiller la comparaison. Reproduire une image partagée par un collègue, à condition d'avoir la même consigne, le même planificateur, le même modèle, la même version de la bibliothèque.
Comme pour le taux d'apprentissage en deep learning, réglez les hyperparamètres par ordres de grandeur, pas par ajustements fins. Une valeur de guidage de 7,5 et une de 7,8 sont, en pratique, indiscernables ; 7,5 et 12 sont deux régimes différents. Testez 4, 7, 10 avant de peaufiner. Testez 15, 25, 40 étapes avant de fignoler à 27.
En résumé
- Le nombre d'étapes a un seuil de saturation dépendant du planificateur : 20 à 30 avec
DPM++ 2M Karras, jamais au-delà de 50 sur les planificateurs modernes. - L'échelle de guidage entre 6 et 9 est la zone standard ; monter au-delà de 12 rigidifie l'image et sature les couleurs, ce n'est pas la solution à une consigne mal suivie.
- Le planificateur change visiblement l'image à graine fixe ;
DPM++ 2M Karrasest le défaut raisonnable en 2026. - La graine garantit la reproductibilité et permet d'explorer des variations sans toucher à la consigne ni aux autres hyperparamètres.
Module suivant : les deux modes de génération élémentaires, texte vers image et image vers image, avec la force de débruitage comme paramètre central.