Suite de l’épisode 1 : À la découverte de Stable Diffusion : introduction
Comme la carte NVIDIA GeForce MX150 de mon PC portable n’est pas assez puissante pour Stable Diffusion, j’ai pris le parti de l’installer sur un serveur dédié équipé d’un GPU adapté aux travaux de Machine Learning et de Rendering.
C’est le cas des instances GPU de Scaleway :
Sur votre serveur, il vous suffit de cloner le dépôt https://github.com/hleroy/sd-webui-nginx-proxy.
Le dépôt contient :
- Un fichier
Dockerfile
pour construire un container avec AUTOMATIC1111 Stable Diffusion WebUI. C’est un web front-end pour Stable Diffusion avec des dizaines d’extensions et une API disposant d’un client Python. - Un fichier
docker-compose.yml
pour lancer le front-end Stable Diffusion, un reverse-proxy Nginx avec acme-companion pour générer automatiquement un certificat TLS avec Let’s Encrypt.
Instructions de configuration
Après avoir cloné le dépôt, créez un fichier .env
et personnalisez-le avec votre propre domaine et email :
VIRTUAL_HOST=sd.votredomaine.com
VIRTUAL_PORT=7860
LETSENCRYPT_HOST=sd.votredomaine.com
LETSENCRYPT_EMAIL=username@votredomaine.com
Créez un fichier .htpasswd
pour configurer l’authentification HTTP afin de protéger l’interface Web :
$ htpasswd -c .htpasswd nomdutilisateur
Vous devrez peut-être installer le paquet apache2-utils :
$ sudo apt-get install apache2-utils
Construire & lancer :
$ docker compose up -d
La construction initiale est assez longue (4-5 minutes) même sur un serveur puissant. Les lancements ultérieurs prendront quelques secondes.
L’interface Web sera disponible à https://sd.votredomaine.com (comme défini dans votre fichier .env
).
Si vous rencontrez un problème, vous pouvez vérifier les journaux :
$ docker compose logs -tf
Attention aux coûts : #FinOps
Un serveur dédié avec GPU coûte une petite fortune en comparaison avec les serveur d’entrée de gamme de Scaleway.
Deux heures de location d’un serveur avec une carte NVIDIA Tesla P100 coûte 2,93€ TTC (1.2211,22). Faites attention à bien arrêter / démarrer le serveur juste pour le temps du rendering. Pour du rendering Stable Diffusion, faites plutôt le choix de l’instance avec GPU RTX 3070 qui s’avère en pratique plus performant, tout en étant moins onéreux.
Photos d’illustration
Les photos d’illustration ont été générées avec les paramètres suivants :
- Model: DreamShaper_dreamshaper_8
- Positive prompt: (masterpiece, best quality), concept art for a post-apocalyptic world with ruins, (seine river), (overgrown vegetation), (two moons), eiffel tower dramatic sky
- Negative prompt: (worst quality, low quality, letterboxed) BadDream, FastNegativeV2
- Other params: Steps: 35, Sampler: DPM++ SDE Karras, CFG scale: 8, Seed: 303411604, Size: 512x192, Model hash: 879db523c3, , Variation seed: 2, Variation seed strength: 0.33, Denoising strength: 0.35, Hires upscale: 1.5, Hires steps: 14, Hires upscale…