Comment installer Stable Diffusion 1.5 & 2.1 en local sur un Mac (Apple Silicon M1)

Dans ce guide nous allons voir comment installer Stable Diffusion, ainsi que les modèles 1.5 et 2.1, sur un Mac possédant la puce Silicon M1. Le tout dans un environnement local. Vous n'avez pas besoin de connaissances techniques spécifiques, il vous suffit de suivre notre guide !

Actuellement, la plupart des fonctionnalités de l'interface web fonctionnent correctement sous macOS, les exceptions les plus notables étant l'interrogateur CLIP et la formation. Bien que la formation semble fonctionner, elle est incroyablement lente et consomme une quantité excessive de mémoire. L'interrogateur CLIP peut être utilisé, mais il ne fonctionne pas correctement avec l'accélération GPU utilisée par macOS, de sorte que la configuration par défaut l'exécute entièrement via le CPU (ce qui est lent).

La plupart des échantillonneurs fonctionnent, à l'exception de l'échantillonneur PLMS qui utilise le modèle Stable Diffusion 2.0. Les images générées avec l'accélération GPU sur macOS devraient normalement correspondre ou presque aux images générées sur le CPU avec les mêmes paramètres et la même graine.

Installation automatique

Nouvelle installation :

  • Si Homebrew n'est pas installé, ouvrez l'app Terminal sur votre mac, et entrez /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Gardez la fenêtre du terminal ouverte et suivez les instructions sous "Next steps" pour ajouter Homebrew à votre PATH.
  • Ouvrez une nouvelle fenêtre de terminal et lancez brew install cmake protobuf rust python@3.10 git wget et attendez la fin des chargements.
Installation avec brew
  • Clonez le dépôt de l'interface web en exécutant git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
  • Placez les modèles/checkpoints de Stable Diffusion que vous souhaitez utiliser dans stable-diffusion-webui/models/Stable-diffusion. Si vous n'en avez pas, voir Télécharger les modèles de Stable Diffusion ci-dessous.

Télécharger les modèles de Stable Diffusion

Si vous n'avez pas de modèles à utiliser, les modèles de Stable Diffusion peuvent être téléchargés à partir de Hugging Face ou de Civitai. Pour les télécharger sur Hugging Face, cliquez sur un modèle, puis sur l'en-tête Fichiers et versions. Recherchez les fichiers portant l'extension ".ckpt" ou ".safetensors", puis cliquez sur la flèche vers le bas à droite de la taille du fichier pour le télécharger.

Models - Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
Civitai | Stable Diffusion models, embeddings, hypernetworks and more
Civitai is a platform for Stable Diffusion AI Art models. We have a collection of over 1,700 models from 250+ creators. We also have a collection of 1200 reviews from the community along with 12,000+ images with prompts to get you started.

Les modèles officiels de Stable Diffusion les plus répandus sont les suivants :

Stable Diffusion 2.0 et 2.1 nécessitent un modèle et un fichier de configuration, et la largeur et la hauteur de l'image doivent être réglées à 768 ou plus lors de la génération des images (pour voir comment utiliser la version 2.1, voir la section de notre guide plus bas) :

Installer un modèle

Pour notre exemple je choisis le modèle runwayml/stable-diffusion-v1-5 sur Hugging Face. Téléchargez le fichier avec ema et une extension en .ckpt ou .safetensors. J'ai aussi téléchargé Deliberate sur Civitai, mais vous pouvez vous contentez de la version v1.5.

v1-5-pruned-emaonly.safetensors

Placez ensuite les modèles que vous avez téléchargez dans le dossier stable-diffusion-webui/models/Stable-diffusion.

Dossier des modèles pour Stable Diffusion

Suite de l'installation automatique

Maintenant que vous avez des modèles, vous pouvez continuer l'installation.

  • Cd stable-diffusion-webui et ensuite ./webui.sh pour lancer l'interface web. Un environnement virtuel Python sera créé et activé à l'aide de venv et toutes les dépendances manquantes seront automatiquement téléchargées et installées.
  • Pour relancer le processus de l'interface web plus tard, exécutez à nouveau ./webui.sh. Notez qu'il n'y a pas de mise à jour automatique de l'interface web ; pour mettre à jour, exécutez git pull avant d'exécuter ./webui.sh.
Lancement de Stable Diffusion

L'installation peut prendre quelques minutes. Vous verrez apparaître Running on local URL: une fois l'installation terminée. L'URL se trouvant devant, est l'adresse que vous devez coller dans votre navigateur pour accéder à Stable Diffusion.

Fin de l'installation

Utilisation de Stable Diffusion

Entrez l'URL dans votre navigateur et vous pouvez désormais utiliser Stable Diffusion. Si vous avez plusieurs modèles, choisissez en haut à gauche celui à utiliser. Attention, ce n'est pas instantané.

Interface de Stable Diffusion

Générer une image avec Stable Diffusion en local

Faisons un test. Utilisez ce prompt : !1970s teenager disorded and messy bedroom, posters on the wall, vinyl records on the floor, old guitar in the corner, day outside of the window courtains, hippy movement, hyperdetailed analog atmospheric natural lighting, sharp focus, concept art trending on artstation by Stephen Darbishire and greg rutkowski and Kilian Eng, cozy atmospheric and cinematic lighting, hyperdetailed, photorealistic, neat and tidy, magical, ambient light, sharp focus.

Avec ces réglages :

  • Seed: Cliquez sur le logo vert
  • Dimensions: 512x512
  • Sampler: DPM++2M
  • Sampling Steps: 30
  • CFG Scale: 5
  • Model: v1-5

Puis cliquez sur Generate.

Génération d'une image

Une fois la génération terminée vous pourrez voir le résultat :

Résultat avec Stable Diffusion 1.5

Pour d'autres idées de prompt vous pouvez en trouver ici :

Liste de prompts pour ChatGPT, MidJourney, DALL-E ou autre Intelligence Artificielle (IA)
La liste complète des prompts pour IA (Intelligence Artificielle) Répertoire de prompts IA, générative, chatBot, copywriting, chatGPT, MidJourney

Dépannage

L'interface Web ne démarre pas :

Si vous rencontrez des erreurs lorsque vous essayez de démarrer l'interface Web avec ./webui.sh, essayez de supprimer les dépôts et les dossiers venv de votre dossier stable-diffusion-webui, puis mettez à jour l'interface Web avec git pull avant d'exécuter à nouveau ./webui.sh.

Mauvaise performance :

Actuellement, l'accélération GPU sur macOS utilise beaucoup de mémoire. Si les performances sont médiocres (s'il faut plus d'une minute pour générer une image 512x512 avec 20 pas avec n'importe quel échantillonneur), essayez d'abord de démarrer avec l'option de ligne de commande --opt-split-attention-v1 (c.-à-d. ./webui.sh --opt-split-attention-v1) et voyez si cela aide. Si cela ne change pas grand-chose, ouvrez l'application Activity Monitor située dans /Applications/Utilitaires et vérifiez le graphique de la mémoire sous l'onglet Mémoire. Si la pression de la mémoire est affichée en rouge lorsqu'une image est générée, fermez le processus de l'interface Web et ajoutez l'option de ligne de commande --medvram (c.-à-d. ./webui.sh --opt-split-attention-v1 --medvram). Si les performances sont toujours médiocres et que la pression mémoire est toujours rouge avec cette option, essayez plutôt --lowvram (i.e. ./webui.sh --opt-split-attention-v1 --lowvram). Si la génération d'une image 512x512 avec 20 pas prend toujours plus de quelques minutes avec n'importe quel échantillonneur, il se peut que vous deviez désactiver l'accélération GPU. Ouvrez webui-user.sh dans Xcode et remplacez #export COMMANDLINE_ARGS="" par export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all".

Installer le modèle Stable Diffusion 2.1

Si vous souhaitez utiliser le modèle 2.1 de Stable Diffusion, suivez ces instructions. Rendez vous sur la page du modèle sur Hugging Face :

stabilityai/stable-diffusion-2-1 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

Et téléchargez v2-1_768-ema-pruned.ckpt. Ensuite téléchargez le fichier .yaml associé ici : https://mega.nz/folder/V55i1CaK#FzP2G5b5aaFTaKtYi5ch6A/file/cg4GlRSL.  Ce fichier va aider Stable Diffusion à charger de la bonne façon le modèle 2.1.

Configurer Stable Diffusion 2.1

Placez ensuite les modèles et les fichiers .yaml que vous avez téléchargez dans le dossier stable-diffusion-webui/models/Stable-diffusion. Renommez le fichier .yaml pour qu'il porte le même nom que votre modèle.

Les 2 fichiers ont le même nom

Si Stable Diffusion est toujours ouvert, vous pouvez faire Control+C dans le terminal pour terminer la tâche. Puis relancer avec ./webui.sh --no-half. Une fois Stable Diffusion de nouveau lancé, retournez sur l'URL et changez le modèle pour la version 2.1.

⚠️
Attention, pensez bien à rajouter --no-half à la fin de la commande
Modèle 2.1
⚠️
Attention, pour faire fonctionner Stable Diffusion 2.1 vous devez régler Height & Width sur 768 au minimum

Utiliser Stable Diffusion 2.1

Je fais une génération de test avec le prompt a digital painting of a robot with flowers, cyberpunk art by Mike Winkelmann, cgsociety, panfuturism, made of flowers, dystopian art, vaporwave.

La génération sera beaucoup plus longue qu'avec le modèle 1.5, il faudra être patient. Mais après plusieurs minutes, voilà le résultat final :

Génération avec Stable Diffusion 2.1

Conclusion

Et voila, vous savez désormais comment installer et utiliser Stable Diffusion 1.5 & 2.1 en local sur un Mac avec processeur M1. Un guide sera bientôt disponible sur notre site pour apprendre à utiliser Stable Diffusion plus en détail.

À voir aussi :

Comment installer Llama CPP (Meta) en local sur un Mac (Apple Silicon M1)
Avec l’intérêt croissant pour l’intelligence artificielle et son utilisation dans la vie quotidienne, de nombreux modèles exemplaires tels que LLaMA de Meta, GPT-3 d’OpenAI et Kosmos-1 de Microsoft rejoignent le groupe des grands modèles de langage (LLM). Le seul problème de ces modèles est qu’ils n…